| Index: media/mp4/avc.cc
|
| diff --git a/media/mp4/avc.cc b/media/mp4/avc.cc
|
| index 29994661387e3448af446958842323bfd09553a2..72b9b49b494755eb18888b661ffcb193a252849a 100644
|
| --- a/media/mp4/avc.cc
|
| +++ b/media/mp4/avc.cc
|
| @@ -59,32 +59,30 @@ bool AVC::ConvertToAnnexB(int length_size, std::vector<uint8>* buffer) {
|
| }
|
|
|
| // static
|
| -bool AVC::InsertParameterSets(const AVCDecoderConfigurationRecord& avc_config,
|
| - std::vector<uint8>* buffer) {
|
| +bool AVC::ConvertParameterSets(const AVCDecoderConfigurationRecord& avc_config,
|
| + std::vector<uint8>* buffer) {
|
| + DCHECK(buffer->empty());
|
| + buffer->clear();
|
| int total_size = 0;
|
| for (size_t i = 0; i < avc_config.sps_list.size(); i++)
|
| total_size += avc_config.sps_list[i].size() + kAnnexBStartCodeSize;
|
| for (size_t i = 0; i < avc_config.pps_list.size(); i++)
|
| total_size += avc_config.pps_list[i].size() + kAnnexBStartCodeSize;
|
| -
|
| - std::vector<uint8> temp;
|
| - temp.reserve(total_size);
|
| + buffer->reserve(total_size);
|
|
|
| for (size_t i = 0; i < avc_config.sps_list.size(); i++) {
|
| - temp.insert(temp.end(), kAnnexBStartCode,
|
| + buffer->insert(buffer->end(), kAnnexBStartCode,
|
| kAnnexBStartCode + kAnnexBStartCodeSize);
|
| - temp.insert(temp.end(), avc_config.sps_list[i].begin(),
|
| + buffer->insert(buffer->end(), avc_config.sps_list[i].begin(),
|
| avc_config.sps_list[i].end());
|
| }
|
|
|
| for (size_t i = 0; i < avc_config.pps_list.size(); i++) {
|
| - temp.insert(temp.end(), kAnnexBStartCode,
|
| - kAnnexBStartCode + kAnnexBStartCodeSize);
|
| - temp.insert(temp.end(), avc_config.pps_list[i].begin(),
|
| - avc_config.pps_list[i].end());
|
| + buffer->insert(buffer->end(), kAnnexBStartCode,
|
| + kAnnexBStartCode + kAnnexBStartCodeSize);
|
| + buffer->insert(buffer->end(), avc_config.pps_list[i].begin(),
|
| + avc_config.pps_list[i].end());
|
| }
|
| -
|
| - buffer->insert(buffer->begin(), temp.begin(), temp.end());
|
| return true;
|
| }
|
|
|
|
|