From: ye n. <buc...@ho...> - 2006-03-30 10:27:55
|
Hi, I can do it in the command line, just run the gst-lunch like this: gst-launch-0.10 v4lsrc ! video/x-raw-yuv, width = 320, height = 240 ! ffmpegcolorspace ! ximagesink But how can I implement this in my own programme? I created some elements, including v4lsrc, ffmpegcolorspace, and ximage: videosource = gst_element_factory_make("v4lsrc", "video_source"); videosink = gst_element_factory_make("ximagesink", "video_sink"); videoencconv = gst_element_factory_make("ffmpegcolorspace", "video_convert"); I also create a caps for the v4lsrc, and set format with video/x-raw-yuv, width = 320, height = 240: caps = gst_caps_new_simple("video/x-raw-yuv", "width", G_TYPE_INT, 320, "height", G_TYPE_INT, 240, NULL); sinkpad = gst_element_get_pad(videosource , "sink"); gst_pad_set_caps(sinkpad, caps); But these can make effect on the capture size of v4l streaming like the command line, it still a extremely small window, maybe only 80x60. Why? _________________________________________________________________ 享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com |
From: M. <loi...@gm...> - 2006-03-30 11:03:36
|
Hi Ye, Le jeudi 30 mars 2006 =C3=A0 18:27 +0800, ye nan a =C3=A9crit : > Hi, > I can do it in the command line, just run the gst-lunch like this: > gst-launch-0.10 v4lsrc ! video/x-raw-yuv, width =3D 320, height =3D 240= !=20 > ffmpegcolorspace ! ximagesink > But how can I implement this in my own programme? >=20 > I created some elements, including v4lsrc, ffmpegcolorspace, and ximage= : > videosource =3D gst_element_factory_make("v4lsrc", "video_source"); > videosink =3D gst_element_factory_make("ximagesink", "video_sink"); > videoencconv =3D gst_element_factory_make("ffmpegcolorspace",=20 > "video_convert"); > I also create a caps for the v4lsrc, and set format with video/x-raw-yu= v,=20 > width =3D 320, height =3D 240: > caps =3D gst_caps_new_simple("video/x-raw-yuv", "width", G_TYPE_INT, 32= 0,=20 > "height", G_TYPE_INT, 240, NULL); > sinkpad =3D gst_element_get_pad(videosource , "sink"); > gst_pad_set_caps(sinkpad, caps); You're using a source element, so I guess you don't want to get the sink but the source pad of v4lsrc. > But these can make effect on the capture size of v4l streaming like the= =20 > command line, it still a extremely small window, maybe only 80x60. Why? You shouldn't affect the pad anymore and try to link the elements with your filtering caps using the gst_element_link_filtered function. Lo=C3=AFc. --=20 Lo=C3=AFc Molinari <loi...@gm...> |
From: ye n. <buc...@ho...> - 2006-03-30 11:58:34
|
Great, It works now. Create filter cap and then link source and convert element with it. caps = gst_caps_new_simple("video/x-raw-yuv", "width", G_TYPE_INT, 320, "height", G_TYPE_INT, 240, NULL); gst_element_link_filtered(videosource, videoconv, caps); gst_element_link_many(videoconv, videosink, NULL); Thanks a lot.^_^ >From: Lo Molinari <loi...@gm...> >To: ye nan <buc...@ho...> >CC: gst...@li... >Subject: Re: [gst-devel] How to set capture size for a v4lsrc element? >Date: Thu, 30 Mar 2006 13:03:17 +0200 > >Hi Ye, > >Le jeudi 30 mars 2006 18:27 +0800, ye nan a 茅crit : > > Hi, > > I can do it in the command line, just run the gst-lunch like this: > > gst-launch-0.10 v4lsrc ! video/x-raw-yuv, width = 320, height = 240 ! > > ffmpegcolorspace ! ximagesink > > But how can I implement this in my own programme? > > > > I created some elements, including v4lsrc, ffmpegcolorspace, and ximage: > > videosource = gst_element_factory_make("v4lsrc", "video_source"); > > videosink = gst_element_factory_make("ximagesink", "video_sink"); > > videoencconv = gst_element_factory_make("ffmpegcolorspace", > > "video_convert"); > > I also create a caps for the v4lsrc, and set format with video/x-raw-yuv, > > width = 320, height = 240: > > caps = gst_caps_new_simple("video/x-raw-yuv", "width", G_TYPE_INT, 320, > > "height", G_TYPE_INT, 240, NULL); > > sinkpad = gst_element_get_pad(videosource , "sink"); > > gst_pad_set_caps(sinkpad, caps); > >You're using a source element, so I guess you don't want to get the sink >but the source pad of v4lsrc. > > > But these can make effect on the capture size of v4l streaming like the > > command line, it still a extremely small window, maybe only 80x60. Why? > >You shouldn't affect the pad anymore and try to link the elements with >your filtering caps using the gst_element_link_filtered function. > >Lo茂c. > >-- >Lo茂c Molinari <loi...@gm...> _________________________________________________________________ 与联机的朋友进行交流,请使用 MSN Messenger: http://messenger.msn.com/cn |