From b48820392d1044d6ee7c1adb19848e0b06b4798e Mon Sep 17 00:00:00 2001 From: Thomas Inskip Date: Wed, 14 Oct 2015 09:46:14 -0700 Subject: [PATCH] Added fallback to computed AVCDecoderConfigurationRecord if the one stored in the WVM metadata is invalid. Change-Id: I9e3c7ba4677f1ac7c19ec4d51f600d28bb427acb --- packager/media/formats/wvm/wvm_media_parser.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packager/media/formats/wvm/wvm_media_parser.cc b/packager/media/formats/wvm/wvm_media_parser.cc index ad74135d7f..03f3504a90 100644 --- a/packager/media/formats/wvm/wvm_media_parser.cc +++ b/packager/media/formats/wvm/wvm_media_parser.cc @@ -855,8 +855,16 @@ bool WvmMediaParser::Output(bool output_encrypted_sample) { if (!ExtractResolutionFromDecoderConfig( vector_as_array(stream_config), stream_config->size(), &coded_width, &coded_height, &pixel_width, &pixel_height)) { - LOG(ERROR) << "Failed to parse AVCDecoderConfigurationRecord."; - return false; + LOG(WARNING) << "Failed to parse AVCDecoderConfigurationRecord. " + "Using computed configuration record instead."; + video_stream_info->set_extra_data(decoder_config_record); + if (!ExtractResolutionFromDecoderConfig( + vector_as_array(&decoder_config_record), + decoder_config_record.size(), + &coded_width, &coded_height, &pixel_width, &pixel_height)) { + LOG(ERROR) << "Failed to parse AVCDecoderConfigurationRecord."; + return false; + } } if (pixel_width != video_stream_info->pixel_width() || pixel_height != video_stream_info->pixel_height()) {