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

Unified 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, 4 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 side-by-side diff with in-line comments
Download patch
Index: media/cast/rtp_common/rtp_defines.h
diff --git a/media/cast/rtp_common/rtp_defines.h b/media/cast/rtp_common/rtp_defines.h
new file mode 100644
index 0000000000000000000000000000000000000000..1bd0fea0ff6f627953377ff4f3798e3b6238d813
--- /dev/null
+++ b/media/cast/rtp_common/rtp_defines.h
@@ -0,0 +1,64 @@
+#ifndef MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
+#define MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
+
+#include "media/cast/cast_config.h"
+#include "media/cast/rtcp/rtcp_defines.h"
+#include "third_party/webrtc/modules/interface/module_common_types.h"
+
+namespace media {
+namespace cast {
+
+const uint8 kRtpMarkerBitMask = 0x80;
+
+struct RtpCastHeader {
+ void InitRTPVideoHeaderCast() {
+ is_key_frame = false;
+ frame_id = 0;
+ packet_id = 0;
+ max_packet_id = 0;
+ is_reference = false;
+ reference_frame_id = 0;
+ }
+ webrtc::WebRtcRTPHeader webrtc;
+ bool is_key_frame;
+ uint8 frame_id;
+ uint16 packet_id;
+ uint16 max_packet_id;
+ bool is_reference; // Set to true if the previous frame is not available,
+ // and the reference frame id is available.
+ uint8 reference_frame_id;
+};
+
+class RtpPayloadFeedback {
+ public:
+ virtual void CastFeedback(const RtcpCastMessage& cast_feedback) = 0;
+ virtual void RequestKeyFrame() = 0; // TODO(pwestin): can we remove this?
+
+ protected:
+ virtual ~RtpPayloadFeedback() {}
+};
+
+inline bool IsNewerFrameId(uint8 frame_id, uint8 prev_frame_id) {
+ return (frame_id != prev_frame_id) &&
+ static_cast<uint8>(frame_id - prev_frame_id) < 0x80;
+}
+
+inline bool IsOlderFrameId(uint8 frame_id, uint8 prev_frame_id) {
+ return (frame_id == prev_frame_id) || IsNewerFrameId(prev_frame_id, frame_id);
+}
+
+inline bool IsNewerPacketId(uint16 packet_id, uint16 prev_packet_id) {
+ return (packet_id != prev_packet_id) &&
+ static_cast<uint16>(packet_id - prev_packet_id) < 0x8000;
+}
+
+inline bool IsNewerSequenceNumber(uint16 sequence_number,
+ uint16 prev_sequence_number) {
+ // Same function as IsNewerPacketId just different data and name.
+ return IsNewerPacketId(sequence_number, prev_sequence_number);
+}
+
+} // namespace cast
+} // namespace media
+
+#endif // MEDIA_CAST_RTP_COMMON_RTP_DEFINES_H_
« 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