Re: AAC 5.1 audio is broken in xine-lib-1.2

"Torsten Jager" <[email protected]> Wed, 27 Mar 2013 17:26:26 +0100
Newsgroups gmane.comp.video.xine.devel
Message-ID <[email protected]>
Hello,

I'm quite angry with you about reverting my patch that
quick (and breaking another patch of mine as well this way).
A simple change of faad decoder priority would have done it, too.

> Hi,
> I have a couple of movie trailer files that use AAC 5.1 audio.
> This used to be decoded by libfaad, but is now being decoded by
> FFmpeg instead

This is my intention. At least with ffmpeg 1.1.2, it does fix
most of my issues from my "hifi aac" thread.

Your file is indeed broken. It supplies invalid settings
in container head. Maybe you should improve your taste of movies ;-)

Anyway, this should fix it - if those earlier patches would be
still there...

Torsten

------------------------------------------------------------------------------
Own the Future-Intel&reg; Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest.
Compete for recognition, cash, and the chance to get your game 
on Steam. $5K grand prize plus 10 genre and skill prizes. 
Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d

_______________________________________________
xine-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xine-devel
aac_wrong_header_fix.diff (application/octet-stream, 1.2 KB)
--- xine-lib-1.2-20130318/src/combined/ffmpeg/ff_audio_decoder.c	2013-03-18 13:25:00.000000000 +0100
+++ xine-lib-1.2-20130318/src/combined/ffmpeg/ff_audio_decoder.c	2013-03-27 15:52:12.000000000 +0100
@@ -581,14 +593,13 @@ static void ff_audio_decode_data (audio_
           return;
         }
 
-        if (this->output_open) {
-          if (this->audio_bits        != this->context->bits_per_sample ||
-              this->audio_sample_rate != this->context->sample_rate ||
-              this->audio_channels    != this->context->channels) {
-            xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
-                    _("ffmpeg_audio_dec: codec parameters changed\n"));
-            ff_audio_output_close(this);
-          }
+        if (this->audio_bits        != this->context->bits_per_sample ||
+            this->audio_sample_rate != this->context->sample_rate ||
+            this->audio_channels    != this->context->channels) {
+          xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+                  _("ffmpeg_audio_dec: codec parameters changed\n"));
+          /* close if it was open, and always trigger 1 new open attempt below */
+          ff_audio_output_close(this);
         }
 
 	if (!this->output_open) {