diff options
Diffstat (limited to 'media/cast/net/rtp/rtp_defines.h')
-rw-r--r-- | media/cast/net/rtp/rtp_defines.h | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/media/cast/net/rtp/rtp_defines.h b/media/cast/net/rtp/rtp_defines.h index 56df66d..fd71638 100644 --- a/media/cast/net/rtp/rtp_defines.h +++ b/media/cast/net/rtp/rtp_defines.h @@ -2,19 +2,60 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#ifndef MEDIA_CAST_NET_RTP_RTP_DEFINES_H_ +#define MEDIA_CAST_NET_RTP_RTP_DEFINES_H_ + +#include "base/basictypes.h" +#include "media/cast/net/rtcp/rtcp_defines.h" + namespace media { namespace cast { static const uint16 kRtpHeaderLength = 12; static const uint16 kCastHeaderLength = 7; + +// RTP Header static const uint8 kRtpExtensionBitMask = 0x10; +static const uint8 kRtpMarkerBitMask = 0x80; +static const uint8 kRtpNumCsrcsMask = 0x0f; + +// Cast Header static const uint8 kCastKeyFrameBitMask = 0x80; static const uint8 kCastReferenceFrameIdBitMask = 0x40; -static const uint8 kRtpMarkerBitMask = 0x80; static const uint8 kCastExtensionCountmask = 0x3f; // Cast RTP extensions. static const uint8 kCastRtpExtensionAdaptiveLatency = 1; +struct RtpCastHeader { + RtpCastHeader(); + // Elements from RTP packet header. + bool marker; + uint8 payload_type; + uint16 sequence_number; + uint32 rtp_timestamp; + uint32 sender_ssrc; + uint8 num_csrcs; + + // Elements from Cast header (at beginning of RTP payload). + bool is_key_frame; + bool is_reference; + uint32 frame_id; + uint16 packet_id; + uint16 max_packet_id; + uint32 reference_frame_id; + uint16 new_playout_delay_ms; +}; + +class RtpPayloadFeedback { + public: + virtual void CastFeedback(const RtcpCastMessage& cast_feedback) = 0; + + protected: + virtual ~RtpPayloadFeedback(); +}; + } // namespace cast } // namespace media + +#endif // MEDIA_CAST_NET_RTP_RTP_DEFINES_H_ |