GNOME Bugzilla – Bug 377076
Cannot play aac/m4a files
Last modified: 2009-05-27 01:17:54 UTC
Please describe the problem: Gstreamer-based music players do not play aac/m4a files. The problem seems to be with gstreamer as other player (xine, etc) don't have any issues playing these files. Steps to reproduce: 1. try to play file with command: gst-launch-0.10 playbin uri=file://file.m4a Actual results: get : Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/decoder/faad0: Could not decode stream. Additional debug info: gstfaad.c(1314): gst_faad_chain (): /playbin0/decoder/faad0: faacDecInit2() failed ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... Expected results: to hear the sweet sound of music :) Does this happen every time? yes Other information: gst-inspect-0.10 | grep faad faad: faad: AAC audio decoder I'm using gstreamer from debian/sid and the 'bad' plugin set from Christian Marillat repository at debian-multimedia.org.
Probably a duplicate of one of the other faad bugs. What's your architecture/processor? (x86, amd64, etc.)
Hi Tim-Philipp, It's a thinkpad t42p (x86). Cheers, Carlos
I can reproduce the bug. Also x86. What info would be helpful?
do you have the first piece of a failing file handy?
Created attachment 84332 [details] test case 1 Here's the first part of a file that doesn't play. Bugzilla wouldn't let me upload the whole thing, but let me know if you need the rest.
It plays fine here. Which version of the faad library do you have. Could you please also report the gstreamer versions ($ gst-launch-0.10 --gst-version) $ gst-launch -t playbin uri=file://$PWD/xaa.m4a Pausiere Leitung ... Leitung wird gestartet ... KENNZEICHEN GEFUNDEN: Von Element »qtdemux0« gefunden. Audio-Codec: MPEG-4 AAC audio KENNZEICHEN GEFUNDEN: Von Element »qtdemux0« gefunden. Titel: Kimberly Austin Künstler: Porno For Pyros Album: Good God's Urge Datum: 1996-01-01 Kommentar: iTunes v4.0.1, QuickTime 6.3 Nummer des Stücks: 4 Anzahl der Stücke: 10 Nummer der Platte: 1 Anzahl der Platten: 1 Genre: Alternative & Punk Leitung ist gestrartet ... Setze Pipeline zum Abspielen... New clock: GstAudioSinkClock
Oh, I'm so glad it plays for you! That probably means that FC7 will play it as well. I'm using the latest-and-greatest that's now in the standard repos for FC6. $ rpm -q faad2 faad2-2.5-2.fc6 I don't know how useful that is; the latest entry in /usr/share/doc/faad2-2.5/ChangeLog is dated 21 january 2005. $ gst-launch-0.10 --gst-version GStreamer Core Library version 0.10.10 $ rpm -q gstreamer-plugins-ugly gstreamer-plugins-ugly-0.10.5-1.lvn6 $ rpm -q gstreamer-plugins-bad gstreamer-plugins-bad-0.10.3-3.fc6
here its ubuntu with faad2-2.0.0+cvs20040908+mp4v2+bmp-0ubuntu3 # zcat /usr/share/doc/faad/changelog.gz | more 8 september 2004 mbakker(at)nero.com - specrec.c: fixed compilation without PS sounds like another api incompatibility :/
Jack, is this still an issue for you? Fedora 7 is out.
I finally had a chance to test this on Fedora 7... and I'm afraid there's no improvement (although the error is a bit different). gst-launch filesrc location=xaa.mp4 Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... ERROR: from element /pipeline0/filesrc0: Internal data flow error. Additional debug info: gstbasesrc.c(1642): gst_base_src_loop (): /pipeline0/filesrc0: streaming task paused, reason not-linked (-1) Execution ended after 518000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ... $ rpm -q gstreamer-plugins-bad faad2 gstreamer-plugins-bad-0.10.4-2.lvn7.1 faad2-2.0-19.20050131.lvn6 $ gst-launch-0.10 --gst-version GStreamer Core Library version 0.10.12 $ gst-inspect-0.10 | grep faad faad: faad: AAC audio decoder I believe you that it plays fine on whatever combination of Ubuntu/faad2/gstreamer you have, but it's still an issue for me. Probably best to leave it open for ease of searching by others who have this problem.
The faad fixes you might need are in gst-plugin-bad-0.10.5. 0.10.4 was released 21-Dec-2006 and 0.10.5 was done on 19-Jun-2007
Filed http://bugzilla.livna.org/show_bug.cgi?id=1579
How do I install the latest version of the "bad" plugin that fixes this? I'm on "Feisty" and it shows 0.10.4-1ubuntu1 as the installed and most recent version. I have the same audio problem mentioned in this bug. Currently works only with GRip + FAAC commandline but not Sound Juicer CD Extractor & Rhythmbox Music Player.
Joel, you could build it yourself. I have no idea if there are updated packages for feisty available or if the gutsy one will work. Here are the source packages: http://gstreamer.freedesktop.org/src/gst-plugins-bad/
Hmm...running ./configure of the gst-plugins-bad-0.10.5 source eventually says: " Package gstreamer-check-0.10 was not found in the pkg-config search path. Perhaps you should add the directory containing `gstreamer-check-0.10.pc' to the PKG_CONFIG_PATH environment variable No package 'gstreamer-check-0.10' found configure: no gstreamer-check-0.10 >= 0.10.13 (GStreamer Check unittest Library) found" I have no clue where to get that.
Scratch that, I forgot to do the plugins-base one. So, I'm pretty sure I got it to install, but it still does the "skipping" when encoding aac files. Not sure if it helps if I also post what the original poster posted but: "$ gst-launch filesrc location="Evanescence - Everybody's Fool.m4a" Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /pipeline0/filesrc0: Internal data flow error. Additional debug info: gstbasesrc.c(1811): gst_base_src_loop (): /pipeline0/filesrc0: streaming task paused, reason not-linked (-1) Execution ended after 892000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ..." "$ gst-launch-0.10 --gst-version GStreamer Core Library version 0.10.13" "gst-inspect-0.10 | grep faad" doesn't return anything to me.
Joel, you don'T have the aac-decoder installed. See above.
Is this now working for everyone? if so I'd like to close. Otherwise please update with your status.
I decided to install Ubuntu 7.10 Gusty Beta and it has Gnome 2.20 final so I gave it another shot. The audio still has the issue of skipping when played back on Totem or Rhythmbox Music Player. If I try using VLC to play the resulting audio file, it just has no audio. However, now 'gst-launch-0.10 playbin' returns this: joel@laptop:~$ gst-launch-0.10 playbin uri=file:///home/joel/Under.m4a Setting pipeline to PAUSED ... Pipeline is PREROLLING ... sh: jackd: not found Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock WARNING: from element /playbin0/abin/audiosink/audiosink-actual-sink-alsa: Compensating for audio synchronisation problems Additional debug info: gstbaseaudiosink.c(1033): gst_base_audio_sink_render (): /playbin0/abin/audiosink/audiosink-actual-sink-alsa: Unexpected discontinuity in audio timestamps of more than half a second (0:00:00.557120181), resyncing and just keeps repeating everything from the word 'WARNING' to the word ', resynching'. Using gst-inspect-0.10 | grep faad returns: joel@laptop:~$ gst-inspect-0.10 | grep faad faad: faad: AAC audio decoder It probably has something to do with handling the encoding process because AAC files encoded directly with FAAC using Grip play fine in Totem and Rhythmbox. Currently, playback only becomes an issue when the songs are encoded using this plugin.
Joel, faad is a decoder, faac is the encoder. So if you rip with grip using faac, can you play them with totem/rythmbox (which is using faad). if not do they play with mplayer/vlc?
Yes, encoding AAC files with Grip allows them to be played without errors in Rythmbox, Totem and VLC. I've even encoded with faac directly in command-line with WAV files and had them work later on those previous programs. The garbled sound / errors only happen when the encoding is done using programs that use gstreamer. Maybe it has to do with how the audio is being extracted? Grip completely extracts them as WAV files onto the hard drive then encodes those files to AAC using faac. Does gstreamer do the encoding on-the-fly? The problem might be located in that section of the code.
which gsteamer apps did you tried for encoding? soundjuicer?
Yes, I used Sound Juicer to extract the audio from the CD. It has been a while but I think I used Rythmbox as well, I forget if it has CD extraction capabilities when a CD is inserted while it is open.
The question from comment #22 has been answered, thus reopening.
Not really sure what to do about this bug, there's not really much useful info to go on here. It works fine for me with the latest releases as in debian sid (ripped a jazzy piece from CD via s-j using .. faac ! ffmux_mp4) and the result sounds just fine. At best it's a but 'muffled', but no artefacts/skips/errors or the like. There have been quite a few fixes all over the place since April 2008 - maybe we should just close this for now? If the problem still exists, I'm sure someone will open another bug based on newer packages.
Sure, Closing as per comment #25. If this is still an issue for you, please file a new bug and reference this one.