[gst-devel] playbin Vs decodebin

Wim Taymans wim at fluendo.com
Thu Aug 31 17:54:14 CEST 2006


On Thu, 2006-08-31 at 16:37 +0100, alberto colombo wrote:
> I'm still trapped, and confused, by this problem:
> 
> I have a set of files, of different formats. I can open all of them
> using totem and using gst-launch playbin. However, when I try
> 
>         gst-launch filesrc location=... ! decodebin ! ffmpegcolorspace !
>         autovideosink
>         
> I either get an "internal data flow error" or the pipeline hangs, and I
> need to ctrl-C it to quit.

You probably need a videoscale element before the sink, assuming the
error you get is a negotiation problem. If the pipeline hangs without
any error message, it could be because there was no connection possible
between decodebin and ffmpegcolorspace (most likely due to aspect ratio
issues or because there is no decodable video in the file) and
gst-launch is not smart enough to handle that.  

Wim
> 
> I investigated the second case with a small application: the pipeline
> doesn't want to PAUSE, it's blocked in the READY state, and
> gst_element_get_state blocks if I don't use a timeout.
> 
> I'm using gstreamer 0.10.6 on the latest Ubuntu.
> 
> Thank you very much
> alb
> 
> 
> On Tue, 2006-08-29 at 16:58 +0100, alberto colombo wrote:
> > Hello again
> > 
> > sorry for spawning the mailing list with my questions. 
> > 
> > I'm trying to understand why this command works:
> > 
> >         gst-launch-0.10 playbin uri=file:///$PWD/firefly.mp4
> > 
> > while this one doesn't:
> > 
> >         gst-launch-0.10 filesrc -t location=firefly.mp4 ! decodebin !
> >         ffmpegcolorspace ! autovideosink
> >         
> >         Setting pipeline to PAUSED ...
> >         Pipeline is PREROLLING ...
> >         FOUND TAG      : found by element "qtdemux0".
> >             video codec: MPEG-4 video
> >         FOUND TAG      : found by element "qtdemux0".
> >             audio codec: MPEG-4 AAC audio
> >         FOUND TAG      : found by element "qtdemux0".
> >                   title: The Train Job
> >                  artist: Firefly
> >                   album: Season 1
> >            track number: 2
> >             track count: 14
> >                   genre: TV Shows
> >         ERROR: from element /pipeline0/decodebin0/queue0: Internal data
> >         flow error.
> >         Additional debug info:
> >         gstqueue.c(783): gst_queue_push_one
> >         (): /pipeline0/decodebin0/queue0:
> >         streaming stopped, reason not-negotiated
> >         ERROR: pipeline doesn't want to preroll.
> >         Setting pipeline to NULL ...
> >         FREEING pipeline ...
> > 
> > And neither does this one:
> > 
> >         gst-launch-0.10 filesrc -t location=firefly.mp4 !
> >         ffdemux_mov_mp4_m4a_3gp_3g2 ! ffdec_mpeg4  ! ffmpegcolorspace !
> >         autovideosink
> >         
> >         Setting pipeline to PAUSED ...
> >         Pipeline is PREROLLING ...
> >         FOUND TAG      : found by element
> >         "ffdemux_mov_mp4_m4a_3gp_3g20".
> >             video codec: MPEG-4 compatible video
> >         FOUND TAG      : found by element
> >         "ffdemux_mov_mp4_m4a_3gp_3g20".
> >             audio codec: MPEG-2/4 AAC audio
> >         
> >         (and here it hangs)
> >         
> > The file used is:
> >         file firefly.mp4
> >         firefly.mp4: ISO Media, MPEG v4 system, version 2
> >         
> >         gst-typefind-0.10 firefly.mp4
> >         firefly.mp4 - audio/x-m4a
> >         
> > I would like to use the decodebin, and I know gstreamer can read that
> > file somehow, but I just can't figure out how...
> > Thank you very much again
> > alb
-- 
Wim Taymans <wim at fluendo.com>





More information about the gstreamer-devel mailing list