Index: webrtc/modules/video_coding/main/source/generic_encoder.cc |
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.cc b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
index f2cdd599ae85ef8c3104ec6e3653ddc8658175f9..30177ffe1043c6ab57efa79b2afc061ca93be181 100644 |
--- a/webrtc/modules/video_coding/main/source/generic_encoder.cc |
+++ b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
@@ -36,6 +36,43 @@ void CopyCodecSpecific(const CodecSpecificInfo* info, RTPVideoHeader* rtp) { |
rtp->simulcastIdx = info->codecSpecific.VP8.simulcastIdx; |
return; |
} |
+ case kVideoCodecVP9: { |
+ rtp->codec = kRtpVideoVp9; |
+ rtp->codecHeader.VP9.InitRTPVideoHeaderVP9(); |
+ rtp->codecHeader.VP9.interPicPredicted = |
+ info->codecSpecific.VP9.interPicPredicted; |
+ rtp->codecHeader.VP9.flexibleMode = info->codecSpecific.VP9.flexibleMode; |
+ rtp->codecHeader.VP9.beginningOfFrame = |
+ info->codecSpecific.VP9.beginningOfFrame; |
+ rtp->codecHeader.VP9.endOfFrame = info->codecSpecific.VP9.endOfFrame; |
+ rtp->codecHeader.VP9.ssDataAvailable = |
+ info->codecSpecific.VP9.ssDataAvailable; |
+ rtp->codecHeader.VP9.pictureId = info->codecSpecific.VP9.pictureId; |
+ rtp->codecHeader.VP9.tl0PicIdx = info->codecSpecific.VP9.tl0PicIdx; |
+ rtp->codecHeader.VP9.temporalIdx = info->codecSpecific.VP9.temporalIdx; |
+ rtp->codecHeader.VP9.spatialIdx = info->codecSpecific.VP9.spatialIdx; |
+ rtp->codecHeader.VP9.temporalUpSwitch = |
+ info->codecSpecific.VP9.temporalUpSwitch; |
+ rtp->codecHeader.VP9.interLayerPredicted = |
+ info->codecSpecific.VP9.interLayerPredicted; |
+ rtp->codecHeader.VP9.gofIdx = info->codecSpecific.VP9.gofIdx; |
+ |
+ if (info->codecSpecific.VP9.ssDataAvailable) { |
+ rtp->codecHeader.VP9.numSpatialLayers = |
+ info->codecSpecific.VP9.numSpatialLayers; |
+ rtp->codecHeader.VP9.spatialLayerResolutionPresent = |
+ info->codecSpecific.VP9.spatialLayerResolutionPresent; |
+ if (info->codecSpecific.VP9.spatialLayerResolutionPresent) { |
+ for (uint8_t s = 0; s < info->codecSpecific.VP9.numSpatialLayers; |
+ s++) { |
+ rtp->codecHeader.VP9.width[s] = info->codecSpecific.VP9.width[s]; |
+ rtp->codecHeader.VP9.height[s] = info->codecSpecific.VP9.height[s]; |
+ } |
+ } |
+ rtp->codecHeader.VP9.gof.CopyGofInfoVP9(info->codecSpecific.VP9.gof); |
+ } |
+ return; |
+ } |
case kVideoCodecH264: |
rtp->codec = kRtpVideoH264; |
return; |