[FFmpeg-cvslog] avplay: properly close/ reopen AVAudioResampleContext on channel layout change

Justin Ruggles git at videolan.org
Tue May 8 22:07:19 CEST 2012


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Thu May  3 18:57:02 2012 -0400| [85e5b866dca776ba259113604c56136c2c8531b3] | committer: Justin Ruggles

avplay: properly close/reopen AVAudioResampleContext on channel layout change

fixes Bug#280

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=85e5b866dca776ba259113604c56136c2c8531b3
---

 avplay.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/avplay.c b/avplay.c
index e18b2e4..9bd83f3 100644
--- a/avplay.c
+++ b/avplay.c
@@ -2060,15 +2060,17 @@ static int audio_decode_frame(VideoState *is, double *pts_ptr)
                                dec->channel_layout != is->resample_channel_layout;
 
             if ((!is->avr && audio_resample) || resample_changed) {
+                int ret;
                 if (is->avr)
                     avresample_close(is->avr);
                 else if (audio_resample) {
-                    int ret;
                     is->avr = avresample_alloc_context();
                     if (!is->avr) {
                         fprintf(stderr, "error allocating AVAudioResampleContext\n");
                         break;
                     }
+                }
+                if (audio_resample) {
                     av_opt_set_int(is->avr, "in_channel_layout",  dec->channel_layout,    0);
                     av_opt_set_int(is->avr, "in_sample_fmt",      dec->sample_fmt,        0);
                     av_opt_set_int(is->avr, "in_sample_rate",     dec->sample_rate,       0);



More information about the ffmpeg-cvslog mailing list