[gst-devel] problems when playing video files with

Stefan Kost ensonic at hora-obscura.de
Wed Oct 24 10:28:20 CEST 2007


Hi,

Quoting Joyious He <joyious at 163.com>:

>    Well, Now I'm focusing on the avi file play pipeline. Here I'm   
> trying this command line:
> gst-launch -v filesrc location=/convert.avi ! avidemux name=demux   
> demux.video_00 ! mpeg2dec ! ffmpegcolorspace !   
> video/x-raw-rgb,bpp=32,depth=32,width=128,height=112,framerate=25/1,endianness=4321,pixel-aspect-ratio=1/1,red_mask=65280, green_mask=16711680, blue_mask=-16777216, alpha_mask=255 !   
> dfbvideosink

just to be sure can you try to add demux.audio_00 ! queue ! fakesink.  
And also put a queue after demux.video_00.

Stefan



> And of course I get the format not negotiate err.
> More debug info:
> 0:00:02.713180000 1251 0xa1a28 DEBUG GST_PADS   
> gstpad.c:2216:gst_pad_acceptcaps_default:<capsfilter0:sink>   
> intersection gave empty caps
> 0:00:02.714144000 1251 0xa1a28 DEBUG GST_PADS   
> gstpad.c:2267:gst_pad_accept_caps:<capsfilter0:sink> acceptfunc   
> returned 0
> 0:00:02.715102000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<capsfilter0:sink> get pad caps
> 0:00:02.715967000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<capsfilter0:sink> get pad   
> caps
> 0:00:02.716858000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<capsfilter0:sink>   
> dispatching to pad getcaps function
> 0:00:02.717987000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:2082:gst_pad_peer_get_caps:<capsfilter0:src> get peer caps
> 0:00:02.718973000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<dfbvideosink0:sink> get pad caps
> 0:00:02.719922000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<dfbvideosink0:sink> get pad  
>  caps
> 0:00:02.720849000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<dfbvideosink0:sink>   
> dispatching to pad getcaps function
> 0:00:03.090930000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<dfbvideosink0:sink> pad   
> getcaps returned 0xa47c0
> 0:00:03.092095000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<capsfilter0:sink> pad   
> getcaps returned 0xa4840
> 0:00:03.093557000 1251 0xa1a28 DEBUG GST_CAPS   
> gstpad.c:2399:gst_pad_set_caps:<ffmpegcsp0:sink> caps 0x29ae0 could   
> not be set
> 0:00:03.094653000 1251 0xa1a28 DEBUG GST_PADS   
> gstpad.c:4338:gst_pad_pause_task:<demux:sink> pause task
> ERROR: from element /pipeline0/demux: Internal data stream error.
> Additional debug info:
> gstavidemux.c(3577): gst_avi_demux_loop (): /pipeline0/demux:
> streaming stopped, reason not-negotiated
> **************************************************************************************************************************************************
> I replace the dfbvideosink with fakesink, and the pipeline is OK:
> the debug info contrast to the dfb ones:
> 0:00:02.152112000 1208 0x8abb8 DEBUG GST_PADS   
> gstpad.c:2216:gst_pad_acceptcaps_default:<capsfilter0:sink>   
> intersection gave empty caps
> 0:00:02.153120000 1208 0x8abb8 DEBUG GST_PADS   
> gstpad.c:2267:gst_pad_accept_caps:<capsfilter0:sink> acceptfunc   
> returned 0
> 0:00:02.154107000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<capsfilter0:sink> get pad caps
> 0:00:02.155009000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<capsfilter0:sink> get pad   
> caps
> 0:00:02.155899000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<capsfilter0:sink>   
> dispatching to pad getcaps function
> 0:00:02.156810000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2082:gst_pad_peer_get_caps:<capsfilter0:src> get peer caps
> 0:00:02.157694000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<fakesink0:sink> get pad caps
> 0:00:02.158546000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<fakesink0:sink> get pad caps
> 0:00:02.159407000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<fakesink0:sink> dispatching  
>  to pad getcaps function
> 0:00:02.160215000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<fakesink0:sink> pad getcaps  
>  returned 0x2bc00
> 0:00:02.161589000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<capsfilter0:sink> pad   
> getcaps returned 0x97440
> 0:00:02.165843000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2256:gst_pad_accept_caps:<capsfilter0:sink> accept caps of   
> 0x97460
> 0:00:02.166784000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<capsfilter0:sink> get pad caps
> 0:00:02.167705000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<capsfilter0:sink> get pad   
> caps
> 0:00:02.168615000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<capsfilter0:sink>   
> dispatching to pad getcaps function
> 0:00:02.169443000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2082:gst_pad_peer_get_caps:<capsfilter0:src> get peer caps
> 0:00:02.170369000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2054:gst_pad_get_caps:<fakesink0:sink> get pad caps
> 0:00:02.171265000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1960:gst_pad_get_caps_unlocked:<fakesink0:sink> get pad caps
> 0:00:02.172188000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1964:gst_pad_get_caps_unlocked:<fakesink0:sink> dispatching  
>  to pad getcaps function
> 0:00:02.173154000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<fakesink0:sink> pad getcaps  
>  returned 0x2bc00
> 0:00:02.174390000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:1977:gst_pad_get_caps_unlocked:<capsfilter0:sink> pad   
> getcaps returned 0x974e0
> 0:00:02.175937000 1208 0x8abb8 DEBUG GST_PADS   
> gstpad.c:2267:gst_pad_accept_caps:<capsfilter0:sink> acceptfunc   
> returned 1
> 0:00:02.177213000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2372:gst_pad_set_caps:<ffmpegcsp0:src> caps 0x97460
> /pipeline0/ffmpegcsp0.src: caps = video/x-raw-rgb, bpp=(int)32,   
> depth=(int)32, width=(int)128, height=(int)112,   
> framerate=(fraction)25/1, endianness=(int)4321,   
> pixel-aspect-ratio=(fraction)1/1, red_mask=(int)65280,   
> green_mask=(int)16711680, blue_mask=(int)-16777216,   
> alpha_mask=(int)255
> 0:00:02.181074000 1208 0x8abb8 DEBUG GST_CAPS   
> gstpad.c:2372:gst_pad_set_caps:<ffmpegcsp0:sink> caps 0x29ae0
> ********************************************************************************************************************************************************
> Any Ideas about this? I'm digging the code and it's a real disaster to me :(
> OK, some answers for stefan:
> 1.And your sure that the dfbvideosink works. What does "gst-inspect   
> dfbvideosink" prints?
> Of course the dfbvideosink works, since i can get the test   
> application "dfb-example" which only generate a simple pipeline   
> between videotestsrc and dfbvideosink work on the board, and even   
> now I can get the raw video data play correctly on the target.
> 2. probably the audio inside the avi?
> Yes,now I use the mpeg2dec instead of decodebin, so nothing to do   
> with the auido things.i'm also facing some problems in audio   
> playback. So make them work separately first.
> 3. I was just curious what device your working on.
> Er,,, some kind of picture frame things, can view picture, play   
> video, play mp3 etc..
> BR
> Joyious
>
> 在2007-10-23,"Stefan Kost" <ensonic at hora-obscura.de> 写道:
> Quoting Joyious He <joyious at 163.com>: > Hi, > I tried the command   
> and got the response below: > > Joyious He schrieb: > > Hi all, > >   
> > > Now I'm going to test the video display on my target arm   
> borad.it use > > the directfb as the display layer.and I got   
> problems below: > > > > > > 1:The videotestsrc work well for that   
> dfb-example,but when i just get > > the command line "gst-launch -v   
> videotestsrc ! dfbvideosink", it threw > > out some err msg: "format  
>  can not negotiate". > gst-launch -v videotestsrc ! ffmpegcolorspace  
>  ! dfbvideosink > >   
> ************************************************************************************************* > gst-launch -v videotestsrc ! ffmpegcolorspace ! dfbvideosink > ERROR: from element /pipeline0/videotestsrc0: Could not negotiate format > Additional debug info: > gstbasesrc.c(1865): gst_base_src_start (): /pipeline0/videotestsrc0: > Check your filtered caps, if any > this work well on my PC, but not on the board, I tried to use > GST_DEBUG to get more msg, but at most condition it will got err: > Caught SIGSEGV accessing address (nil) > Spinning. Please run 'gdb gst-launch 1532' to continue debugging, > Ctrl-C to quit, or Ctrl-\ to dump core. > And your sure that the dfbvideosink works. What does "gst-inspect dfbvideosink" prints? ************************************************************************************************* > > > > 2:Then I put the videotestsrc away, try to play some AVI files.but when > > I try the application or the command line like : " gst-launch > -v filesrc > > location=/convertavi ! avidemux name=demux demux.video_00 ! queue ! > > decodebin ! ffmpegcolorspace ! videoscale ! dfbvideosink". > Iwas told the > > pipeline was pause. I check the debug message.I got the reason: > filesrc location=/convertavi ! decodebin name=demux > demux.video_00 ! queue ! > decodebin ! ffmpegcolorspace ! videoscale ! dfbvideosink > *************************************************************************************************** > gst-launch -v filesrc location=/convert.avi ! decodebin name=demux > demux.video_00 ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! > dfbvideosink > ERROR: from element /pipeline0/demux/avidemux0: Internal data stream error. > Additional debug info: > gstavidemux.c(3577): gst_avi_demux_loop (): /pipeline0/demux/avidemux0: > streaming stopped, reason not-linked > I got the debug message and the reason for this not-linked is when > using decodebin, it will try to get link to the demux.audio_00, I > did not get audio sink this pipeline, so it gave the not-link err. > filesrc location=/convertavi ! decodebin name=demux demux.src00 ! queue ! ffmpegcolorspace ! videoscale ! dfbvideosink gst-inspect tells you the names of the pads. ************************************************************************************************************ > then i replace this decodebin with mpeg2dec,thus : > gst-launch -v filesrc location=/convert.avi ! avidemux name=demux > demux.video_00 ! mpeg2dec ! ffmpegcolorspace ! videoscale ! > dfbvideosink > ERROR: from element /pipeline0/demux: Internal data stream error. > Additional debug info: > gstavidemux.c(3577): gst_avi_demux_loop (): /pipeline0/demux: > streaming stopped, reason not-negotiated > 0:00:12.098377000 968 0xa3920 WARN avidemux > gstavidemux.c:1616:gst_avi_demux_stream_index:<demux> skip LIST chunk > /pipeline0/mpeg2dec0.sink: caps = video/mpeg, > systemstream=(boolean)false, mpegversion=(int)2, > framerate=(fraction)25/1, width=(int)128, height=(int)112 > /pipeline0/mpeg2dec0.src: caps = video/x-raw-yuv, > format=(fourcc)I420, width=(int)128, height=(int)112, > pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)25/1 > 0:00:13.109244000 968 0xa3920 WARN avidemux > gstavidemux.c:3548:gst_avi_demux_loop: stream_movi flow: > not-negotiated / not-negotiated > 0:00:13.110534000 968 0xa3920 WARN avidemux > gstavidemux.c:3577:gst_avi_demux_loop:<demux> error: Internal data > stream error. > 0:00:13.111456000 968 0xa3920 WARN avidemux > gstavidemux.c:3577:gst_avi_demux_loop:<demux> error: streaming > stopped, reason not-negotiated > ERROR: from element /pipeline0/demux: Internal data stream error. > Additional debug info: > gstavidemux.c(3577): gst_avi_demux_loop (): /pipeline0/demux: > streaming stopped, reason not-negotiated probably the audio inside the avi? > ********************************************************************************************************************** > > > > "0:00:01.613967000 [332m 1633[00m 0x1af80 [32;01mINFO [00m [00;01;34m > > GST_EVENT > gstpad.c:4242:gst_pad_send_event:<mpeg2dec0:sink>[00m Received > > event on flushing pad. Discarding > > 0:00:01.614717000 [332m 1633[00m 0x1af80 [32;01mINFO [00m [00;01;34m > > GST_EVENT > gstpad.c:4242:gst_pad_send_event:<mpeg2dec0:sink>[00m Received > > event on flushing pad. Discarding > > 0:00:01.616135000 [332m 1633[00m 0x1af80 [32;01mINFO [00m [00;01;34m > > GST_EVENT > gstpad.c:4242:gst_pad_send_event:<mpeg2dec0:sink>[00m Received > > event on flushing pad. Discarding > > 0:00:01.617260000 [332m 1633[00m 0x1af80 [33;01mWARN [00m [00m avidemux > > gstavidemux.c:3548:gst_avi_demux_loop:[00m stream_movi flow: > wrong-state > > / ok" > > > > 3:I also tried another way. I convert a AVI file into a raw data as a > > temp file, and use filesrc and dfbvideo sink to play :"gst-launch -v > > filesrc location=/convert2 blocksize=65536 ! dfbvideosink". Some thing > > is coming out, but its not the correct video.I think it's probably the > > frame format mismatching. the temp file is using YV12(I > convert it using > > mplayer and its default value is YUV YV12) and my directfb is using > > RGB32. So how can i specify the caps convert, changing the format of > > mplayer default or specify it in the gstreamer commad line? I tried the > > ffmpegcolorspace like "gst-launch -v filesrc location=/convert2 > > blocksize=65536 ! ffmpegcolorspace ! dfbvideosink" and I was told the > > format can not negotiated. > *********************************************************************************************************************** > Here i got the frame displayed on the board,just using the > capsfilter to specify the caps format: > GST_DEBUG="dfbvideosink:3" gst-launch -v filesrc location="/t3" > blocksize=57344 ! > video/x-raw-rgb,bpp=32,depth=32,width=128,height=112,framerate=25/1,endianness=4321,pixel-aspect-ratio=1/1,red_mask=65280, green_mask=16711680, blue_mask=-16777216, alpha_mask=255 ! > dfbvideosink > ********************************************************************************************************************** > > > > Could you all give me any ideas about all the problems above ? > > > Do I get a free device when it gets released :) > If i can get some in hand, of cause I'll get one diliver to you. But > it seems not possible for me to get any then :( > Stefan > > > > Thanks very much. > > > > Best Regard > > Joyious hej, don't worry - I was just curious what device your working on. Stefan > > > > > > > > > ------------------------------------------------------------------------ > > LOGO ???????????????? > > <http://popme.163.com/link/003515_0929_938.html> > > ?????????????? > > <http://popme163.com/link/003515_0929_938.html> > > > > > > > ------------------------------------------------------------------------ > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > gstreamer-devel mailing list > > gstreamer-devel at lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel at lists.sourceforge.net   
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel






More information about the gstreamer-devel mailing list