| Index: media/base/media_file_checker.cc
|
| diff --git a/media/base/media_file_checker.cc b/media/base/media_file_checker.cc
|
| index 418839d6f1d121268c9c32346d81e60a82aa76e1..4a49ac7c6a29c5c8bed2b8863e0d04ca6c812d4a 100644
|
| --- a/media/base/media_file_checker.cc
|
| +++ b/media/base/media_file_checker.cc
|
| @@ -84,18 +84,20 @@ bool MediaFileChecker::Start(base::TimeDelta check_time) {
|
| // decoded; otherwise av_free_packet() will corrupt memory.
|
| AVPacket temp_packet = packet;
|
| do {
|
| - avcodec_get_frame_defaults(frame.get());
|
| result = avcodec_decode_audio4(av_context, frame.get(), &frame_decoded,
|
| &temp_packet);
|
| if (result < 0)
|
| break;
|
| + av_frame_unref(frame.get());
|
| temp_packet.size -= result;
|
| temp_packet.data += result;
|
| + frame_decoded = 0;
|
| } while (temp_packet.size > 0);
|
| } else if (av_context->codec_type == AVMEDIA_TYPE_VIDEO) {
|
| - avcodec_get_frame_defaults(frame.get());
|
| result = avcodec_decode_video2(av_context, frame.get(), &frame_decoded,
|
| &packet);
|
| + if (result >= 0 && frame_decoded)
|
| + av_frame_unref(frame.get());
|
| }
|
| av_free_packet(&packet);
|
| } while (base::TimeTicks::Now() < deadline && read_ok && result >= 0);
|
|
|