[gst-devel] Firewire cameras with DirectShow

Phil Rendell philrendell at gmail.com
Fri Jun 26 14:29:24 CEST 2009


2009/6/26 Julien Isorce <julien.isorce at gmail.com>

>
> 2009/6/26 Phil Rendell <philrendell at gmail.com>
>>
>>
>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090626/316d9738/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Firewire filters.png
Type: image/png
Size: 31821 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090626/316d9738/attachment.png>


More information about the gstreamer-devel mailing list