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

Unified Diff: webrtc/modules/video_coding/packet.cc

Issue 2007743003: Add sender controlled playout delay limits (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@cleanup_rtp_hdr_extensions
Patch Set: Rename OnReceivedRtcpReport to OnReceivedRtcpReportBlocks Created 4 years, 6 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: webrtc/modules/video_coding/packet.cc
diff --git a/webrtc/modules/video_coding/packet.cc b/webrtc/modules/video_coding/packet.cc
index e8c06a69771e86aaaa57aacc8e9237ba455927ec..aa27c5da6b868c73e7fa6fe65b136314d3d7b706 100644
--- a/webrtc/modules/video_coding/packet.cc
+++ b/webrtc/modules/video_coding/packet.cc
@@ -32,7 +32,9 @@ VCMPacket::VCMPacket()
insertStartCode(false),
width(0),
height(0),
- codecSpecificHeader() {}
+ video_header() {
+ video_header.playout_delay = {-1, -1};
+}
VCMPacket::VCMPacket(const uint8_t* ptr,
const size_t size,
@@ -45,7 +47,6 @@ VCMPacket::VCMPacket(const uint8_t* ptr,
sizeBytes(size),
markerBit(rtpHeader.header.markerBit),
timesNacked(-1),
-
frameType(rtpHeader.frameType),
codec(kVideoCodecUnknown),
isFirstPacket(rtpHeader.type.Video.isFirstPacket),
@@ -53,8 +54,18 @@ VCMPacket::VCMPacket(const uint8_t* ptr,
insertStartCode(false),
width(rtpHeader.type.Video.width),
height(rtpHeader.type.Video.height),
- codecSpecificHeader(rtpHeader.type.Video) {
+ video_header(rtpHeader.type.Video) {
CopyCodecSpecifics(rtpHeader.type.Video);
+
+ if (markerBit) {
+ video_header.rotation = rtpHeader.type.Video.rotation;
+ }
+ // Playout decisions are made entirely based on first packet in a frame.
+ if (isFirstPacket) {
+ video_header.playout_delay = rtpHeader.type.Video.playout_delay;
+ } else {
+ video_header.playout_delay = {-1, -1};
+ }
}
VCMPacket::VCMPacket(const uint8_t* ptr,
@@ -70,7 +81,6 @@ VCMPacket::VCMPacket(const uint8_t* ptr,
sizeBytes(size),
markerBit(mBit),
timesNacked(-1),
-
frameType(kVideoFrameDelta),
codec(kVideoCodecUnknown),
isFirstPacket(false),
@@ -78,7 +88,7 @@ VCMPacket::VCMPacket(const uint8_t* ptr,
insertStartCode(false),
width(0),
height(0),
- codecSpecificHeader() {}
+ video_header() {}
void VCMPacket::Reset() {
payloadType = 0;
@@ -96,13 +106,10 @@ void VCMPacket::Reset() {
insertStartCode = false;
width = 0;
height = 0;
- memset(&codecSpecificHeader, 0, sizeof(RTPVideoHeader));
+ memset(&video_header, 0, sizeof(RTPVideoHeader));
}
void VCMPacket::CopyCodecSpecifics(const RTPVideoHeader& videoHeader) {
- if (markerBit) {
- codecSpecificHeader.rotation = videoHeader.rotation;
- }
switch (videoHeader.codec) {
case kRtpVideoVp8:
// Handle all packets within a frame as depending on the previous packet

Powered by Google App Engine
This is Rietveld 408576698