diff --git a/src/modules/interface/module_common_types.h b/src/modules/interface/module_common_types.h index 686493fb00..6e35a9d3be 100644 --- a/src/modules/interface/module_common_types.h +++ b/src/modules/interface/module_common_types.h @@ -53,6 +53,8 @@ struct RTPVideoHeaderVP8 pictureId = kNoPictureId; tl0PicIdx = kNoTl0PicIdx; temporalIdx = kNoTemporalIdx; + partitionId = 0; + beginningOfPartition = false; } bool nonReference; // Frame is discardable. @@ -61,6 +63,9 @@ struct RTPVideoHeaderVP8 WebRtc_Word16 tl0PicIdx; // TL0PIC_IDX, 8 bits; // kNoTl0PicIdx means no value provided. WebRtc_Word8 temporalIdx; // Temporal layer index, or kNoTemporalIdx. + int partitionId; // VP8 partition ID + bool beginningOfPartition; // True if this packet is the first + // in a VP8 partition. Otherwise false }; union RTPVideoTypeHeader { @@ -372,11 +377,11 @@ public: struct VideoContentMetrics { VideoContentMetrics(): motionMagnitudeNZ(0), sizeZeroMotion(0), spatialPredErr(0), - spatialPredErrH(0), spatialPredErrV(0), motionPredErr(0), + spatialPredErrH(0), spatialPredErrV(0), motionPredErr(0), motionHorizontalness(0), motionClusterDistortion(0), nativeWidth(0), nativeHeight(0), contentChange(false) { } void Reset(){ motionMagnitudeNZ = 0; sizeZeroMotion = 0; spatialPredErr = 0; - spatialPredErrH = 0; spatialPredErrV = 0; motionPredErr = 0; + spatialPredErrH = 0; spatialPredErrV = 0; motionPredErr = 0; motionHorizontalness = 0; motionClusterDistortion = 0; nativeWidth = 0; nativeHeight = 0; contentChange = false; } diff --git a/src/modules/rtp_rtcp/source/rtp_receiver_video.cc b/src/modules/rtp_rtcp/source/rtp_receiver_video.cc index 9dd19e278e..535cf0e423 100644 --- a/src/modules/rtp_rtcp/source/rtp_receiver_video.cc +++ b/src/modules/rtp_rtcp/source/rtp_receiver_video.cc @@ -645,6 +645,8 @@ RTPReceiverVideo::ReceiveVp8Codec(WebRtcRTPHeader* rtpHeader, kNoTl0PicIdx; toHeader->temporalIdx = fromHeader->hasTID ? fromHeader->tID : kNoTemporalIdx; + toHeader->partitionId = fromHeader->partitionID; + toHeader->beginningOfPartition = fromHeader->beginningOfPartition; if(CallbackOfReceivedPayloadData(parsedPacket.info.VP8.data, parsedPacket.info.VP8.dataLength,