From: Phil R. <phi...@gm...> - 2009-06-26 16:06:39
|
2009/6/26 Julien Isorce <jul...@gm...> > Forgot this problem then we will use true and false, instead of 0 and 1. > Sorry for waste of time. No problem - without your help I would be completely stuck and end up being forced to do something drastic like hunt around in the source code before giving up! > Phil, can you tell me if > gst-launch-0.10.exe dshowvideosrc ! "video/x-dv, systemstream=false, > width=640, height=480, framerate=10" ! fakesink > leads to the same result as true ? No, it doesn't. It gives me the usual link error: D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! "video/x-dv, systemstream=false, width=640, height=480, framerate=30" ! fakesink WARNING: erroneous pipeline: could not link dshowvideosrc0 to fakesink0 > About the screenshot. I can see that only the pin00 can be handled by > dshowvideosrc because it's > MEDIATYPE_Video and MEDIASUBTYPE_dvsd > but unfortunatelly grapedit does not tell us if it's FORMAT_DvInfo (case > systemstream=true) > or FORMAT_VideoInfo (case systemstream=false) > About the warnings, do not care about it, it seems that > granularityVideoWidth/Height are not set by your camera driver. > Or has no sense in case of systemstream=true. Ok, thanks. > Anyway, for now I just do not know how to decode or render a video/x-dv, > systemstream=true. > I am sure someone else knows ? Good idea with the ffdemux_dv. The command you suggested didn't quite work, but once I added the dv decoder you suggested in a previous email and added a deinterlacer I managed to get something to display, although I ended up with a pretty bad 0.5-1 fps. Could I be doing something wrong? Thanks, Phil Without the decoder (runs straight through with no visual output): D:\rendell_p\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! "video/x-dv, systemstream=true, width=720, height=576, framerate=25" ! ffdemux_dv ! ffmpegcolorspace ! directdrawsink Setting pipeline to PAUSED ... ** (gst-launch-0.10:2500): WARNING **: your desired video size is not valid : 720 mod 1244160 !=0 ** (gst-launch-0.10:2500): WARNING **: your desired video size is not valid : 576 mod 1577311108 !=0 /GstPipeline:pipeline0/GstDshowVideoSrc:dshowvideosrc0.GstPad:src: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-dv,systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:sink: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 ERROR: from element /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0: Internal data stream error. Additional debug info: ..\..\ext\ffmpeg\gstffmpegdemux.c(1456): gst_ffmpegdemux_loop (): /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0: streaming stopped, reason not-linked Execution ended after 187550000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:audio_01: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:audio_00: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:video_00: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDshowVideoSrc:dshowvideosrc0.GstPad:src: caps = NULL Setting pipeline to NULL ... FREEING pipeline ... With the decoder and deinterlacing (NOTE: there are no errors until I close the window): D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! "video/x-dv, systemstream=true, width=720, height=576, framerate=25" ! ffdemux_dv ! ffdec_dvvideo ! ffdeinterlace ! ffmpegcolorspace ! directdrawsink Setting pipeline to PAUSED ... ** (gst-launch-0.10:432): WARNING **: your desired video size is not valid : 720 mod 1244160 !=0 ** (gst-launch-0.10:432): WARNING **: your desired video size is not valid : 576 mod 1577311108 !=0 /GstPipeline:pipeline0/GstDshowVideoSrc:dshowvideosrc0.GstPad:src: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-dv,systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:sink: caps = video/x-dv, systemstream=(boolean)true, width=(int)720, height=(int)576, framerate=(int)25 /GstPipeline:pipeline0/ffdec_dvvideo:ffdec_dvvideo0.GstPad:sink: caps = video/x-dv, width=(int)720, height=(int)576, framerate=(fraction)25/1, systemstream=(boolean)false, format=(fourcc)I420 /GstPipeline:pipeline0/ffdec_dvvideo:ffdec_dvvideo0.GstPad:src: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420 /GstPipeline:pipeline0/GstFFMpegDeinterlace:ffmpegdeinterlace0.GstPad:src: caps= video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420 /GstPipeline:pipeline0/GstFFMpegDeinterlace:ffmpegdeinterlace0.GstPad:sink: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420 /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = video/x-raw-rgb, width=(int)720, height=(int)576, framerate=(fraction)25/1, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216 /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = video/x-raw-yuv, width=(int)720, height=(int)576, framerate=(fraction)25/1, format=(fourcc)I420 /GstPipeline:pipeline0/GstDirectDrawSink:directdrawsink0.GstPad:sink: caps = video/x-raw-rgb, width=(int)720, height=(int)576, framerate=(fraction)25/1, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216 ERROR: from element /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0: Internal data stream error. Additional debug info: ..\..\ext\ffmpeg\gstffmpegdemux.c(1456): gst_ffmpegdemux_loop (): /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0:streaming stopped, reason error Execution ended after 6375163000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstDirectDrawSink:directdrawsink0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstFFMpegDeinterlace:ffmpegdeinterlace0.GstPad:src: caps= NULL /GstPipeline:pipeline0/GstFFMpegDeinterlace:ffmpegdeinterlace0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/ffdec_dvvideo:ffdec_dvvideo0.GstPad:src: caps = NULL /GstPipeline:pipeline0/ffdec_dvvideo:ffdec_dvvideo0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:audio_01: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:audio_00: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:video_00: caps = NULL /GstPipeline:pipeline0/ffdemux_dv:ffdemux_dv0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstDshowVideoSrc:dshowvideosrc0.GstPad:src: caps = NULL Setting pipeline to NULL ... FREEING pipeline ... > > > Julien > > > > > 2009/6/26 Phil Rendell <phi...@gm...> > >> >> 2009/6/26 Julien Isorce <jul...@gm...> >> >>> >>> 2009/6/26 Phil Rendell <phi...@gm...> >>>> >>>> >>>> Sorry, no joy with this. Both complained about an erroneous pipeline. >>>> I don't think this could be the same error as before with feeding >>>> dshowvideosrc into ffmpegcolorspace, as if I remover the systemstream >>>> property, or set it to either true or false, gst-launch crashes. Setting it >>>> to anything else appears to cause the erroneous pipeline error. >>>> >>>> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >>>> "video/x-dv, systemstream=0" ! fakesink >>>> WARNING: erroneous pipeline: could not link dshowvideosrc0 to fakesink0 >>>> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >>>> "video/x-dv, systemstream=1" ! fakesink >>>> WARNING: erroneous pipeline: could not link dshowvideosrc0 to fakesink0 >>>> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >>>> "video/x-dv, systemstream=2" ! fakesink >>>> WARNING: erroneous pipeline: could not link dshowvideosrc0 to fakesink0 >>>> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >>>> fakesink >>>> Setting pipeline to PAUSED ... >>>> <Crash> >>>> D:\Camera\Common\GStreamer\bin> >>>> >>> >>> I am not sure t follow you. You said "as if I remover the systemstream >>> property, or set it to either true or false" >>> but you got a link error with "video/x-dv, systemstream=1". Then a crash >>> ? >>> >> >> Sorry, I probably should have laid that out clearer. I actually executed 4 >> commands there - one for systemstream=0, one for systemstream=1, one for >> systemstream=2 and the other as before. >> >> If I do a gst-inspect on dshowvideosrc I can see that systemstream is set >> to true in one case and false in another. No matter what I set it to I >> always got a crash. However, now when I execute 'gst-launch dshowvideosrc ! >> "video/x-dv, systemstream=true" ! fakesink' I get a lot of console output, >> which I assume means everything works fine. I'm really not sure what I'm >> doing differently now though. >> >> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >>>> "video/x-dv, format=dvsd, width=640, height=480, framerate=10" ! fakesink >>>> Setting pipeline to PAUSED ... >>>> ** (gst-launch-0.10:2448): WARNING **: your desired video size is not >>>> valid : 640 mod 1244160 !=0 >>>> >>>> ** (gst-launch-0.10:2448): WARNING **: your desired video size is not >>>> valid : 480 mod 1577311108 !=0 >>>> <Crash> >>>> >>> >>> Could you try to add systemstream property as following: >>> >>> gst-launch-0.10.exe -v dshowvideosrc ! "video/x-dv, format=dvsd, >>> width=640, height=480, framerate=10, systemstream=1" ! fakesink >>> and >>> gst-launch-0.10.exe -v dshowvideosrc ! "video/x-dv, format=dvsd, >>> width=640, height=480, framerate=10, systemstream=0" ! fakesink >>> >> >> I think my attempts at experimenting are a little bit of a red herring. >> gst-launch crashes whenever I pass in the format argument. If I run >> gst-launch without this property set I still get the warning about the >> desired video size being invalid and the same type of console output I >> experienced just setting the caps to "video/x-dv, systemstream=true": >> >> D:\Camera\Common\GStreamer\bin>gst-launch-0.10.exe -v dshowvideosrc ! >> "video/x-dv, systemstream=true, width=640, height=480, framerate=10" ! >> fakesink >> Setting pipeline to PAUSED ... >> >> ** (gst-launch-0.10:3556): WARNING **: your desired video size is not >> valid : 640 mod 1244160 !=0 >> >> ** (gst-launch-0.10:3556): WARNING **: your desired video size is not >> valid : 480 mod 1577311108 !=0 >> >> /GstPipeline:pipeline0/GstDshowVideoSrc:dshowvideosrc0.GstPad:src: caps = >> video/x-dv, systemstream=(boolean)true, width=(int)640, height=(int)480, >> framerate=(int)10 >> Pipeline is live and does not need PREROLL ... >> Setting pipeline to PLAYING ... >> New clock: GstSystemClock >> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = >> video/x-dv, systemstream=(boolean)true, width=(int)640, height=(int)480, >> framerate=(int)10 >> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = >> video/x-dv, systemstream=(boolean)true, width=(int)640, height=(int)480, >> framerate=(int)10 >> /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = >> video/x-dv, systemstream=(boolean)true, width=(int)640, height=(int)480, >> framerate=(int)10 >> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "preroll >> *******" >> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "event >> ******* E(type: 102, GstEventNewsegment, update=(boolean)false, >> rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_BYTES, >> start=(gint64)0, stop=(gint64)-1, position=(gint64)0;) 013379C0" >> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain >> ******* <(144000 bytes, timestamp: 0:00:00.078125000, duration: >> 0:00:00.040000000, offset: -1, offset_end: -1, flags: 32) 044D3320" >> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain >> ******* <(144000 bytes, timestamp: 0:00:00.125000000, duration: >> 0:00:00.040000000, offset: -1, offset_end: -1, flags: 0) 044D3378" >> ... >> >> Again, it doesn't appear to work when I set systemstream to 0, 1, or 2, >> only booleans. >> >> For some reason when I execute 'gst-launch dshowvideosrc ! "video/x-dv, >> systemstream=true, width=640, height=480, framerate=10" ! ffdec_dvvideo ! >> directdrawsink' I get the link error saying that it cannot link >> dshowvideosrc0 to ffdec_dvvideo0. Could this be something to do with the >> format parameter being missing? >> >> >>> >>> The thing I know is that dshowvideosrc implementation goes in a wrong way >>> in case of "video/x-dv, systemstream=1". >>> I mean it uses FORMAT_VideoInfos fields while it should use FORMAT_DvInfo >>> fields. >>> Even if I have no dv camera I could try something but >>> first I really have to know if it's systemstream=0 or 1. >>> >> You probably don't need it now, but I've attached a screenshot of the >> filter dialog in graphedit, which might be able to tell you which >> systemstream is being used. >> >> Thanks, >> >> Phil >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> gstreamer-devel mailing list >> gst...@li... >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > gstreamer-devel mailing list > gst...@li... > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > |