Chromium Code Reviews| Index: webrtc/modules/video_coding/h264_sps_pps_tracker.cc |
| diff --git a/webrtc/modules/video_coding/h264_sps_pps_tracker.cc b/webrtc/modules/video_coding/h264_sps_pps_tracker.cc |
| index 5dfdb49146a5f6874feef864074a8ffa72854166..72ffad6824262f0bb86e761e47f867daa0e1c0dc 100644 |
| --- a/webrtc/modules/video_coding/h264_sps_pps_tracker.cc |
| +++ b/webrtc/modules/video_coding/h264_sps_pps_tracker.cc |
| @@ -45,6 +45,7 @@ H264SpsPpsTracker::PacketAction H264SpsPpsTracker::CopyAndFixBitstream( |
| bool insert_packet = codec_header.nalus_length == 0 ? true : false; |
| int pps_id = -1; |
| + int sps_id = -1; |
| size_t required_size = 0; |
| for (size_t i = 0; i < codec_header.nalus_length; ++i) { |
| const NaluInfo& nalu = codec_header.nalus[i]; |
| @@ -55,6 +56,8 @@ H264SpsPpsTracker::PacketAction H264SpsPpsTracker::CopyAndFixBitstream( |
| sps_data_[nalu.sps_id].data.reset(new uint8_t[nalu.size]); |
| memcpy(sps_data_[nalu.sps_id].data.get(), data + nalu.offset, |
| nalu.size); |
| + sps_data_[nalu.sps_id].width = packet->width; |
| + sps_data_[nalu.sps_id].height = packet->height; |
| break; |
| } |
| case H264::NaluType::kPps: { |
| @@ -90,6 +93,7 @@ H264SpsPpsTracker::PacketAction H264SpsPpsTracker::CopyAndFixBitstream( |
| return kRequestKeyframe; |
| } |
| + sps_id = pps->second.sps_id; |
| pps_id = nalu.pps_id; |
| required_size += pps->second.size + sizeof(start_code_h264); |
| required_size += sps->second.size + sizeof(start_code_h264); |
| @@ -177,6 +181,11 @@ H264SpsPpsTracker::PacketAction H264SpsPpsTracker::CopyAndFixBitstream( |
| memcpy(insert_at, data, data_size); |
| } |
| + if (sps_data_[sps_id].width > 0 && sps_data_[sps_id].height) { |
|
stefan-webrtc
2017/03/14 10:32:20
height > 0
Or, if you anyway initialize width/hei
philipel
2017/03/14 11:51:12
The problem is that I can't be certain that the SP
stefan-webrtc
2017/03/14 12:06:36
I'm fairly sure width/height is required in the sp
philipel
2017/03/14 13:52:41
I looked at the code and we only know the width/he
|
| + packet->width = sps_data_[sps_id].width; |
| + packet->height = sps_data_[sps_id].height; |
| + } |
| + |
| packet->dataPtr = buffer; |
| packet->sizeBytes = required_size; |
| return kInsert; |