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 '
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.
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.
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 ?
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.