Module: libav
Branch: master
Commit: 85e5b866dca776ba259113604c56136c2c8531b3

Author:    Justin Ruggles <[email protected]>
Committer: Justin Ruggles <[email protected]>
Date:      Thu May  3 18:57:02 2012 -0400

avplay: properly close/reopen AVAudioResampleContext on channel layout change

fixes Bug#280

---

 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);

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to