Bug 665130 - gstreamer applications cannot listen some .m4a (aac) files anymore
gstreamer applications cannot listen some .m4a (aac) files anymore
Product: Fedora
Classification: Fedora
Component: gstreamer-plugins-good (Show other bugs)
x86_64 Linux
low Severity medium
: ---
: ---
Assigned To: Benjamin Otte
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2010-12-22 14:54 EST by Jean-Christophe G.
Modified: 2011-06-03 17:30 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-06-03 17:30:32 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jean-Christophe G. 2010-12-22 14:54:47 EST
Description of problem:
Message "This file is invalid and cannot be played." when I try to listen some .m4a files with gstreamer applications (totem, rhythmbox).

Version-Release number of selected component (if applicable):

This problem is only occurring with last version of gstreamer-plugins-good package.
I am not encountering this problem with previous version of gstreamer-plugins-good package (gstreamer-plugins-good-0.10.25-1.fc14.x86_64)

How reproducible:

Try to listen some aac .m4a files.
Not all .m4a files are impacted.
I don't know if some .aac files could also be impacted.
Actual results:

When I replace "/usr/lib64/gstreamer-0.10/libgstqtdemux.so" library with the version found in gstreamer-plugins-good-0.10.25-1.fc14.x86_64.rpm package, the problem is solved

Additional info:
No problem to listen impacted .m4a files with vlc.
When I inspect impacted .m4a files with Nautilus, all fields, in Audio/Video tab, are filled out with "Unknown" or 0 or N/A.

32 bit edition (i686 harware) is also concerned about this problem

I do not have example of free impacted .m4a file for the moment. I will try to find one

Finally, here are debugging messages when totem is trying to open a file named "test.m4a" :

$ totem --gst-debug-level=1
** Message: pygobject_register_sinkfunc is deprecated (GstObject)

** (totem:2995): WARNING **: chapters: failed to load CMML file file:///tmp/test.cmml: Error opening file: No such file or directory
0:00:03.234853530  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:411:bvw_error_msg: message = This file is invalid and cannot be played.
0:00:03.234910601  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:413:bvw_error_msg: domain  = 3344 (gst-stream-error-quark)
0:00:03.234944956  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:414:bvw_error_msg: code    = 9
0:00:03.234974252  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:415:bvw_error_msg: debug   = qtdemux.c(1852): gst_qtdemux_loop_state_header (): /GstPlayBin2:play/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0:
Header atom '
0:00:03.235013673  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:416:bvw_error_msg: source  = <qtdemux0>
0:00:03.235072170  2995      0x1ac3240 ERROR                  totem bacon-video-widget-gst-0.10.c:417:bvw_error_msg: uri     = file:///tmp/test.m4a
** Message: Error: This file is invalid and cannot be played.
qtdemux.c(1852): gst_qtdemux_loop_state_header (): /GstPlayBin2:play/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0:
Header atom '
Comment 1 Jean-Christophe G. 2010-12-22 17:06:23 EST
It seems to be a tag issue. With faad, I can see some strange characters in the tag fields of an impacted .m4a file.

Here is an example :

$ faad -i 02\ The\ Heart\ At\ Rest.m4a
 *********** Ahead Software MPEG-4 AAC Decoder V2.7 ******************

 Build: Mar 26 2009
 Copyright 2002-2004: Ahead Software AG
 Floating point version

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License.


02 The Heart At Rest.m4a file info:

LC AAC	238.422 secs, 2 ch, 44100 Hz

title: The Heart At Rest
artist: Robin Frederick
album_artist: Robin Frederick
album: How Far? How Fast?
genre: Vocal
track: 2
totaltracks: 10
disc: 1
totaldiscs: 1
date: 1992-04-18T07:00:00Z
unknown: beta-pictoris@sfr.fr
unknown: ℗ 1992 Higher Octave Music, Inc.
unknown: "7H
unknown: 2007-08-06 21:07:36
cover: ���

After an opening and a saving with easytag, I can listen the file with a gstreamer appication, (for ex totem). But faad is freezing when I try to inspect the file again.
Comment 2 Benjamin Otte 2011-01-05 22:09:05 EST
I guess the file is broken. Maybe it's possible to improve the handling of broken files in GStreamer, If you could make one of those files available - ideally by filing a bug in the GStreamer bugtracker - they could try to improve the situation.
Comment 3 Jean-Christophe G. 2011-01-25 19:22:42 EST
I have not found a broken .m4a file without copyright yet, but I have succeeded to play my .m4a files with gstreamer like that :

gst-launch filesrc location="My broken file.m4a" ! ffdemux_mov_mp4_m4a_3gp_3g2_mj2 ! faad ! pulsesink

When I try to play my broken files with "qtdemux" instead of "ffdemux_mov_mp4_m4a_3gp_3g2_mj2", I meet the problem again.

It seems to me "qtdemux" plugin has replaced "ffdemux_mov_mp4_m4a_3gp_3g2_mj2" plugin. Could you confirm ?
Comment 4 Jean-Christophe G. 2011-06-03 17:30:32 EDT
The problem is solved with Fedora 15 :

$ gst-launch filesrc location="My broken file.m4a" ! qtdemux ! ffdec_aac ! fakesink

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 397054444 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

So, I think this report can be closed.

Note You need to log in before you can comment on or make changes to this bug.