| 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..0fa44250d7e92055cb864f5bd3268a409a3bcd3a 100644
|
| --- a/webrtc/modules/video_coding/main/source/encoded_frame.cc
|
| +++ b/webrtc/modules/video_coding/main/source/encoded_frame.cc
|
| @@ -132,6 +132,67 @@ void VCMEncodedFrame::CopyCodecSpecific(const RTPVideoHeader* header)
|
| }
|
| break;
|
| }
|
| + case kRtpVideoVp9: {
|
| + if (_codecSpecificInfo.codecType != kVideoCodecVP9) {
|
| + // This is the first packet for this frame.
|
| + _codecSpecificInfo.codecSpecific.VP9.picture_id = -1;
|
| + _codecSpecificInfo.codecSpecific.VP9.temporal_idx = 0;
|
| + _codecSpecificInfo.codecSpecific.VP9.spatial_idx = 0;
|
| + _codecSpecificInfo.codecSpecific.VP9.gof_idx = 0;
|
| + _codecSpecificInfo.codecSpecific.VP9.inter_layer_predicted = false;
|
| + _codecSpecificInfo.codecSpecific.VP9.tl0_pic_idx = -1;
|
| + _codecSpecificInfo.codecType = kVideoCodecVP9;
|
| + }
|
| + _codecSpecificInfo.codecSpecific.VP9.inter_pic_predicted =
|
| + header->codecHeader.VP9.inter_pic_predicted;
|
| + _codecSpecificInfo.codecSpecific.VP9.flexible_mode =
|
| + header->codecHeader.VP9.flexible_mode;
|
| + _codecSpecificInfo.codecSpecific.VP9.ss_data_available =
|
| + header->codecHeader.VP9.ss_data_available;
|
| + if (header->codecHeader.VP9.picture_id != kNoPictureId) {
|
| + _codecSpecificInfo.codecSpecific.VP9.picture_id =
|
| + header->codecHeader.VP9.picture_id;
|
| + }
|
| + if (header->codecHeader.VP9.tl0_pic_idx != kNoTl0PicIdx) {
|
| + _codecSpecificInfo.codecSpecific.VP9.tl0_pic_idx =
|
| + header->codecHeader.VP9.tl0_pic_idx;
|
| + }
|
| + if (header->codecHeader.VP9.temporal_idx != kNoTemporalIdx) {
|
| + _codecSpecificInfo.codecSpecific.VP9.temporal_idx =
|
| + header->codecHeader.VP9.temporal_idx;
|
| + _codecSpecificInfo.codecSpecific.VP9.temporal_up_switch =
|
| + header->codecHeader.VP9.temporal_up_switch;
|
| + }
|
| + if (header->codecHeader.VP9.spatial_idx != kNoSpatialIdx) {
|
| + _codecSpecificInfo.codecSpecific.VP9.spatial_idx =
|
| + header->codecHeader.VP9.spatial_idx;
|
| + _codecSpecificInfo.codecSpecific.VP9.inter_layer_predicted =
|
| + header->codecHeader.VP9.inter_layer_predicted;
|
| + }
|
| + if (header->codecHeader.VP9.gof_idx != kNoGofIdx) {
|
| + _codecSpecificInfo.codecSpecific.VP9.gof_idx =
|
| + header->codecHeader.VP9.gof_idx;
|
| + }
|
| + if (header->codecHeader.VP9.ss_data_available) {
|
| + _codecSpecificInfo.codecSpecific.VP9.num_spatial_layers =
|
| + header->codecHeader.VP9.num_spatial_layers;
|
| + _codecSpecificInfo.codecSpecific.VP9
|
| + .spatial_layer_resolution_present =
|
| + header->codecHeader.VP9.spatial_layer_resolution_present;
|
| + if (header->codecHeader.VP9.spatial_layer_resolution_present) {
|
| + for (size_t i = 0; i < header->codecHeader.VP9.num_spatial_layers;
|
| + ++i) {
|
| + _codecSpecificInfo.codecSpecific.VP9.width[i] =
|
| + header->codecHeader.VP9.width[i];
|
| + _codecSpecificInfo.codecSpecific.VP9.height[i] =
|
| + header->codecHeader.VP9.height[i];
|
| + }
|
| + }
|
| + _codecSpecificInfo.codecSpecific.VP9.gof.CopyGofInfoVP9(
|
| + header->codecHeader.VP9.gof);
|
| + }
|
| + break;
|
| + }
|
| case kRtpVideoH264: {
|
| _codecSpecificInfo.codecType = kVideoCodecH264;
|
| break;
|
|
|