Bug 665130 - gstreamer applications cannot listen some .m4a (aac) files anymore
Summary: gstreamer applications cannot listen some .m4a (aac) files anymore
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer-plugins-good
Version: 14
Hardware: x86_64
OS: Linux
low
medium
Target Milestone: ---
Assignee: Benjamin Otte
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-12-22 19:54 UTC by Jean-Christophe G.
Modified: 2011-06-03 21:30 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-03 21:30:32 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Jean-Christophe G. 2010-12-22 19:54:47 UTC
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):
gstreamer-python-0.10.19-1.fc14.x86_64
gstreamer-ffmpeg-0.10.11-1.fc14.x86_64
gstreamer-plugins-ugly-0.10.16-2.fc14.x86_64
gstreamer-plugins-base-0.10.31-1.fc14.x86_64
gstreamer-plugins-good-0.10.26-1.fc14.x86_64
PackageKit-gstreamer-plugin-0.6.9-4.fc14.x86_64
gstreamer-plugins-bad-0.10.20-2.fc14.x86_64
gstreamer-rtsp-0.10.5-2.fc14.x86_64
gstreamer-tools-0.10.31-1.fc14.x86_64
gstreamer-0.10.31-1.fc14.x86_64
gstreamer-plugins-bad-free-0.10.20-3.fc14.1.x86_64
phonon-backend-gstreamer-4.4.3-2.fc14.x86_64

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 22:06:23 UTC
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
 http://www.audiocoding.com
 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: 
unknown: beta-pictoris
unknown: ℗ 1992 Higher Octave Music, Inc.
unknown: "7H
unknown: 
unknown: 
unknown: 
unknown: 
unknown: 
unknown: 
unknown: 
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-06 03:09:05 UTC
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-26 00:22:42 UTC
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 21:30:32 UTC
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.