After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 377076 - Cannot play aac/m4a files
Cannot play aac/m4a files
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.3
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-11-19 17:59 UTC by Carlos Moffat
Modified: 2009-05-27 01:17 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
test case 1 (900.00 KB, application/octet-stream)
2007-03-10 04:10 UTC, Jack Tanner
Details

Description Carlos Moffat 2006-11-19 17:59:03 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.
Comment 1 Tim-Philipp Müller 2006-11-19 22:03:09 UTC
Probably a duplicate of one of the other faad bugs.

What's your architecture/processor? (x86, amd64, etc.)
Comment 2 Carlos Moffat 2006-11-19 22:15:49 UTC
Hi Tim-Philipp,

It's a thinkpad t42p (x86).

Cheers,
Carlos
Comment 3 Jack Tanner 2007-02-16 02:27:57 UTC
I can reproduce the bug. Also x86. What info would be helpful?
Comment 4 Wim Taymans 2007-03-06 09:02:45 UTC
do you have the first piece of a failing file handy?
Comment 5 Jack Tanner 2007-03-10 04:10:43 UTC
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.
Comment 6 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-13 09:01:24 UTC
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
Comment 7 Jack Tanner 2007-03-13 14:12:20 UTC
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
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2007-03-13 15:05:59 UTC
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 :/
Comment 9 Stefan Sauer (gstreamer, gtkdoc dev) 2007-06-25 06:30:51 UTC
Jack, is this still an issue for you? Fedora 7 is out.
Comment 10 Jack Tanner 2007-07-25 04:44:27 UTC
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.
Comment 11 Stefan Sauer (gstreamer, gtkdoc dev) 2007-07-25 05:44:44 UTC
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
Comment 12 Jack Tanner 2007-07-25 16:36:20 UTC
Filed http://bugzilla.livna.org/show_bug.cgi?id=1579
Comment 13 Joel Pardo 2007-08-09 11:27:34 UTC
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.
Comment 14 Stefan Sauer (gstreamer, gtkdoc dev) 2007-08-09 11:36:52 UTC
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/
Comment 15 Joel Pardo 2007-08-12 01:43:37 UTC
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.
Comment 16 Joel Pardo 2007-08-12 03:07:05 UTC
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.
Comment 17 Stefan Sauer (gstreamer, gtkdoc dev) 2007-08-17 18:17:40 UTC
Joel, you don'T have the aac-decoder installed. See above.
Comment 18 Stefan Sauer (gstreamer, gtkdoc dev) 2007-10-03 06:32:00 UTC
Is this now working for everyone? if so I'd like to close. Otherwise please update with your status.
Comment 19 Joel Pardo 2007-10-06 01:00:26 UTC
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.
Comment 20 Stefan Sauer (gstreamer, gtkdoc dev) 2008-04-15 07:58:08 UTC
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?
Comment 21 Joel Pardo 2008-04-18 02:28:43 UTC
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.
Comment 22 Stefan Sauer (gstreamer, gtkdoc dev) 2008-04-18 17:22:46 UTC
which gsteamer apps did you tried for encoding? soundjuicer?
Comment 23 Joel Pardo 2008-04-20 03:36:50 UTC
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.
Comment 24 Tobias Mueller 2009-01-23 23:41:30 UTC
The question from comment #22 has been answered, thus reopening.
Comment 25 Tim-Philipp Müller 2009-05-27 00:24:09 UTC
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.
 
Comment 26 Tobias Mueller 2009-05-27 01:17:54 UTC
Sure, Closing as per comment #25.
If this is still an issue for you, please file a new bug and reference this one.