Chromium Code Reviews| Index: webrtc/modules/video_coding/main/source/encoded_frame.cc |
| diff --git a/webrtc/modules/video_coding/main/source/encoded_frame.cc b/webrtc/modules/video_coding/main/source/encoded_frame.cc |
| index 2830399dd6ed129e742b67dac2cb3ca848f2ccb2..ef247c78cf7814e8d03c4c8d08ef0f6305e88900 100644 |
| --- a/webrtc/modules/video_coding/main/source/encoded_frame.cc |
| +++ b/webrtc/modules/video_coding/main/source/encoded_frame.cc |
| @@ -132,6 +132,70 @@ void VCMEncodedFrame::CopyCodecSpecific(const RTPVideoHeader* header) |
| } |
| break; |
| } |
| + case kRtpVideoVp9: { |
| + if (_codecSpecificInfo.codecType != kVideoCodecVP9) { |
| + // This is the first packet for this frame. |
| + _codecSpecificInfo.codecSpecific.VP9.pictureId = -1; |
| + _codecSpecificInfo.codecSpecific.VP9.temporalIdx = 0; |
| + _codecSpecificInfo.codecSpecific.VP9.spatialIdx = 0; |
| + _codecSpecificInfo.codecSpecific.VP9.gofIdx = 0; |
| + _codecSpecificInfo.codecSpecific.VP9.interLayerPredicted = false; |
| + _codecSpecificInfo.codecSpecific.VP9.tl0PicIdx = -1; |
| + _codecSpecificInfo.codecType = kVideoCodecVP9; |
| + } |
| + _codecSpecificInfo.codecSpecific.VP9.interPicPredicted = |
| + header->codecHeader.VP9.interPicPredicted; |
| + _codecSpecificInfo.codecSpecific.VP9.flexibleMode = |
| + header->codecHeader.VP9.flexibleMode; |
| + _codecSpecificInfo.codecSpecific.VP9.beginningOfFrame = |
| + header->codecHeader.VP9.beginningOfFrame; |
| + _codecSpecificInfo.codecSpecific.VP9.endOfFrame = |
| + header->codecHeader.VP9.endOfFrame; |
| + _codecSpecificInfo.codecSpecific.VP9.ssDataAvailable = |
| + header->codecHeader.VP9.ssDataAvailable; |
| + if (header->codecHeader.VP9.pictureId != kNoPictureId) { |
| + _codecSpecificInfo.codecSpecific.VP9.pictureId = |
| + header->codecHeader.VP9.pictureId; |
| + } |
| + if (header->codecHeader.VP9.tl0PicIdx != kNoTl0PicIdx) { |
| + _codecSpecificInfo.codecSpecific.VP9.tl0PicIdx = |
| + header->codecHeader.VP9.tl0PicIdx; |
| + } |
| + if (header->codecHeader.VP9.temporalIdx != kNoTemporalIdx) { |
| + _codecSpecificInfo.codecSpecific.VP9.temporalIdx = |
| + header->codecHeader.VP9.temporalIdx; |
| + _codecSpecificInfo.codecSpecific.VP9.temporalUpSwitch = |
| + header->codecHeader.VP9.temporalUpSwitch; |
| + } |
| + if (header->codecHeader.VP9.spatialIdx != kNoSpatialIdx) { |
| + _codecSpecificInfo.codecSpecific.VP9.spatialIdx = |
| + header->codecHeader.VP9.spatialIdx; |
| + _codecSpecificInfo.codecSpecific.VP9.interLayerPredicted = |
| + header->codecHeader.VP9.interLayerPredicted; |
| + } |
| + if (header->codecHeader.VP9.gofIdx != kNoGofIdx) { |
| + _codecSpecificInfo.codecSpecific.VP9.gofIdx = |
| + header->codecHeader.VP9.gofIdx; |
| + } |
| + if (header->codecHeader.VP9.ssDataAvailable) { |
| + _codecSpecificInfo.codecSpecific.VP9.numSpatialLayers = |
| + header->codecHeader.VP9.numSpatialLayers; |
| + _codecSpecificInfo.codecSpecific.VP9.spatialLayerResolutionPresent = |
| + header->codecHeader.VP9.spatialLayerResolutionPresent; |
| + if (header->codecHeader.VP9.spatialLayerResolutionPresent) { |
| + for (uint8_t s = 0; s < header->codecHeader.VP9.numSpatialLayers; |
|
stefan-webrtc
2015/07/09 14:49:00
Index i instead of s
åsapersson
2015/07/29 12:10:12
Done.
|
| + s++) { |
|
stefan-webrtc
2015/07/09 14:49:00
++i
åsapersson
2015/07/29 12:10:13
Done.
|
| + _codecSpecificInfo.codecSpecific.VP9.width[s] = |
| + header->codecHeader.VP9.width[s]; |
| + _codecSpecificInfo.codecSpecific.VP9.height[s] = |
| + header->codecHeader.VP9.height[s]; |
| + } |
| + } |
| + _codecSpecificInfo.codecSpecific.VP9.gof.CopyGofInfoVP9( |
| + header->codecHeader.VP9.gof); |
| + } |
| + break; |
| + } |
| case kRtpVideoH264: { |
| _codecSpecificInfo.codecType = kVideoCodecH264; |
| break; |