Index: media/filters/audio_file_reader.cc |
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc |
index 80f8ce60a624e66d0016224d1e0b6cd88476f8d5..a987b46ceb94e523ea4a01f14c345e6559311272 100644 |
--- a/media/filters/audio_file_reader.cc |
+++ b/media/filters/audio_file_reader.cc |
@@ -131,7 +131,6 @@ int AudioFileReader::Read(AudioBus* audio_bus) { |
// decoded from the packet; otherwise av_free_packet() will corrupt memory. |
AVPacket packet_temp = packet; |
do { |
- avcodec_get_frame_defaults(av_frame.get()); |
int frame_decoded = 0; |
int result = avcodec_decode_audio4( |
codec_context_, av_frame.get(), &frame_decoded, &packet_temp); |
@@ -155,6 +154,7 @@ int AudioFileReader::Read(AudioBus* audio_bus) { |
int frames_read = av_frame->nb_samples; |
if (frames_read < 0) { |
continue_decoding = false; |
+ av_frame_unref(av_frame.get()); |
break; |
} |
@@ -177,6 +177,7 @@ int AudioFileReader::Read(AudioBus* audio_bus) { |
// This is an unrecoverable error, so bail out. |
continue_decoding = false; |
+ av_frame_unref(av_frame.get()); |
break; |
} |
@@ -210,6 +211,7 @@ int AudioFileReader::Read(AudioBus* audio_bus) { |
} |
current_frame += frames_read; |
+ av_frame_unref(av_frame.get()); |
} while (packet_temp.size > 0); |
av_free_packet(&packet); |
} |