Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(708)

Side by Side Diff: media/cast/rtp_common/rtp_defines.h

Issue 23467003: Added framer to cast. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rtcp
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #ifndef MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
2 #define MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
3
4 #include "media/cast/cast_config.h"
5 #include "media/cast/rtcp/rtcp_defines.h"
6 #include "third_party/webrtc/modules/interface/module_common_types.h"
7
8 namespace media {
9 namespace cast {
10
11 const uint8 kRtpMarkerBitMask = 0x80;
12
13 struct RtpCastHeader {
14 void InitRTPVideoHeaderCast() {
15 is_key_frame = false;
16 frame_id = 0;
17 packet_id = 0;
18 max_packet_id = 0;
19 is_reference = false;
20 reference_frame_id = 0;
21 }
22 webrtc::WebRtcRTPHeader webrtc;
23 bool is_key_frame;
24 uint8 frame_id;
25 uint16 packet_id;
26 uint16 max_packet_id;
27 bool is_reference; // Set to true if the previous frame is not available,
28 // and the reference frame id is available.
29 uint8 reference_frame_id;
30 };
31
32 class RtpPayloadFeedback {
33 public:
34 virtual void CastFeedback(const RtcpCastMessage& cast_feedback) = 0;
35 virtual void RequestKeyFrame() = 0; // TODO(pwestin): can we remove this?
36
37 protected:
38 virtual ~RtpPayloadFeedback() {}
39 };
40
41 inline bool IsNewerFrameId(uint8 frame_id, uint8 prev_frame_id) {
42 return (frame_id != prev_frame_id) &&
43 static_cast<uint8>(frame_id - prev_frame_id) < 0x80;
44 }
45
46 inline bool IsOlderFrameId(uint8 frame_id, uint8 prev_frame_id) {
47 return (frame_id == prev_frame_id) || IsNewerFrameId(prev_frame_id, frame_id);
48 }
49
50 inline bool IsNewerPacketId(uint16 packet_id, uint16 prev_packet_id) {
51 return (packet_id != prev_packet_id) &&
52 static_cast<uint16>(packet_id - prev_packet_id) < 0x8000;
53 }
54
55 inline bool IsNewerSequenceNumber(uint16 sequence_number,
56 uint16 prev_sequence_number) {
57 // Same function as IsNewerPacketId just different data and name.
58 return IsNewerPacketId(sequence_number, prev_sequence_number);
59 }
60
61 } // namespace cast
62 } // namespace media
63
64 #endif // MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
OLDNEW
« media/cast/framer/framer.gyp ('K') | « media/cast/rtp_common/mock_rtp_payload_feedback.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698