GNOME Bugzilla – Bug 338928
[ffdemux_aac] shouldn't be autoplugged, as it can't work push-based as a decoder
Last modified: 2006-05-02 16:15:25 UTC
Please describe the problem: Gstreamer cannot handle specific mp4 files that play fine with faad and mplayer. Steps to reproduce: 1. Play the specific file 2. 3. Actual results: gst-launch complains about unimplemented feature. Expected results: Does this happen every time? yes Other information: zyga@falcon:/media/ipod/iPod_Control/Music/F00$ gst-launch-0.10 playbin uri="file:///media/ipod/iPod_Control/Music/F00/BMRH.m4a" Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/decoder/ffdemux_aac0: Element doesn't implement handling of this stream. Please file a bug. Additional debug info: gstffmpegdemux.c(987): gst_ffmpegdemux_sink_activate (): /playbin0/decoder/ffdemux_aac0: failed to activate sinkpad in pull mode, push mode not implemented yet ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... with bad-multiverse-plugins and without ffmpeg plugin zyga@falcon:/media/ipod/iPod_Control/Music/F00$ gst-launch-0.10 playbin uri="file:///media/ipod/iPod_Control/Music/F00/BMRH.m4a" Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/source: Internal data flow error. Additional debug info: gstbasesrc.c(1416): gst_base_src_loop (): /playbin0/source: streaming task paused, reason not-linked ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ...
You want qtdemux from gst-plugins-bad for this. The gst-ffmpeg demuxers should work as well of course, they've been rewritten a few days ago in gst-ffmpeg CVS, maybe you could give that a shot to see whether it works now.
Hi Tim-Philipp, I'm seeing the same error as above, and I have the 'bad' set installed in my Debian machine. I have: /usr/lib/gstreamer-0.10/libgstqtdemux.so /usr/lib/gstreamer-0.8/libgstqtdemux.so Any ideas? Thanks! P.S. this used to work. I'm not sure what happened.
(In reply to comment #1) > You want qtdemux from gst-plugins-bad for this. > > The gst-ffmpeg demuxers should work as well of course, they've been rewritten a > few days ago in gst-ffmpeg CVS, maybe you could give that a shot to see whether > it works now. > Just tried CVS. Got the same output as the reporter: gst-launch-0.10 playbin uri=file://$(pwd)/rb_06_apr_21.mov [~] Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/decoder/ffdemux_aac0: Element doesn't implement handling of this stream. Please file a bug. Additional debug info: gstffmpegdemux.c(1280): gst_ffmpegdemux_sink_activate (): /playbin0/decoder/ffdemux_aac0: failed to activate sinkpad in pull mode, push mode not implemented yet ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... You can download the video file from the rocketboom site: http://www.rocketboom.net/video/rb_06_apr_21.mov If i run it directly from the rocketboom site playbin apparently selects a different plugin, but with the same result: gst-launch-0.10 playbin uri=http://www.rocketboom.net/video/rb_06_apr_12.mov Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/decoder/ffdemux_mov_mp4_m4a_3gp_3g20: Element doesn't implement handling of this stream. Please file a bug. Additional debug info: gstffmpegdemux.c(1280): gst_ffmpegdemux_sink_activate (): /playbin0/decoder/ffdemux_mov_mp4_m4a_3gp_3g20: failed to activate sinkpad in pull mode, push mode not implemented yet ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ...
Sorry, I didn't catch the actual problem before. What you really need is the 'faad' plugin from gst-plugins-bad. The ffdemux_aac element shouldn't be autoplugged for this, that needs to be fixed. We should probably add a 'framed = (boolean) false' to the sink template's caps for ffdemux_aac or set the rank to NONE.
(In reply to comment #4) > Sorry, I didn't catch the actual problem before. > > What you really need is the 'faad' plugin from gst-plugins-bad. > > The ffdemux_aac element shouldn't be autoplugged for this, that needs to be > fixed. We should probably add a 'framed = (boolean) false' to the sink > template's caps for ffdemux_aac or set the rank to NONE. Yeah, i also just noticed that gst tries to autoplug it for decoding instead of demuxing... Now the aac demux in ffmpeg is just a raw demux (it doesn't actually do any demuxing).. So i guess it shouldn't be registered as a demuxer at all (just like other raw demuxers/``emulators'' arent) Proposed fix in attached patch
Created attachment 64604 [details] [review] Proposed patch (don't register a raw aac demuxer)
2006-05-02 Tim-Philipp Müller <tim at centricular dot net> * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register): Give ffmpeg demuxers a rank of NONE for the time being, so that they are not auto-plugged; they are not stable enough for that yet (e.g. #337785). Don't register AAC demuxer, it's not really useful and can't be used as faad replacement (#338928).