[gst-devel] Setting pad properties at commandline

Sameer Naik sameer at damagehead.com
Mon Oct 22 08:08:55 CEST 2007


Opened bug and submitted patch...
http://bugzilla.gnome.org/show_bug.cgi?id=488879

~sameer

On Sat, 2007-10-20 at 19:00 +0300, Stefan Kost wrote:
> Hi,
> 
> Sameer Naik schrieb:
> > i carried out a simple TEST to narrow it down.
> > in the _videomixer_init() function, i made a request for a new pad with
> > name "sink_1". so when a plugin instance is created, it will have a pad
> > "sink_1".
> > and now the pipeline,
> > 
> > gst-launch videomixer name=mix sink_1::xpos=0 ! ffmpegcolorspace !
> > xvimagesink videotestsrc ! mix.sink_1
> > 
> > ,works fine
> > which means that the proxy interface is installed correctly. 
> 
> cool! thas good news.
> 
> > now the only thing i need to make sure of is that all the element pads
> > are created before the element properties are set on the object. so that
> > when _get_children_count is called on the object, the correct number of
> > sink pads on the object is returned.
> > 
> > need help in figuring this out. right now i have no idea of how this can
> > be achieved. 
> >
> I believe its a shortcoming of gst-launch. I will have a look at it. It needs to
> reattempt to set those properties at later stage (e.g. after READY and PAUSED).
> 
> It would be cool it you can put your current videomixer patch into bugzilla.
> 
> Stefan
> 
> > 
> > awaiting you reply.
> > ~sameer
> > 
> > On Fri, 2007-10-19 at 17:58 +0530, Sameer Naik wrote:
> >> hi, 
> >> i have registered the GstChildProxy interface on the videomixer. 
> >> the get_child_by_index and get_children_count have also been implemented
> >> now the gst-inspect videomixer include shows the following lines
> >> Implemented Interfaces:
> >>   GstChildProxy
> >>
> >> next, whenever a new sink pad is added to the videomixer element
> >> gst_child_proxy_child_added() is called and when a pad is removed
> >> gst_child_proxy_child_removed() is called.
> >>
> >> now if i execute the pipeline:
> >> gst-launch videomixer name=mix sink_1::xpos=0 ! ffmpegcolorspace !
> >> xvimagesink videotestsrc ! mix.sink_1
> >>
> >> i get the following error message
> >> "WARNING: erroneous pipeline: no property "sink_1::xpos" in element
> >> "mix""
> >> and the pipeline exits.
> >>
> >> on debugging i have found that the _child_count is queried before the
> >> pad is added to the element, as a result _child_count returns 0.
> >>
> >> is there a way to wait until all pads are generated, before any
> >> properties are set on the element and thus its children..
> >>
> >> ~sameer
> >>
> >>
> >> On Thu, 2007-10-18 at 15:55 +0200, Stefan Kost wrote:
> >>> Hi,
> >>>
> >>> also the GstBin implements it. Ask me if you need help and let me know  
> >>> when you have a patch (bst to put on bugzilla and post the ticket here.)
> >>>
> >>> Thanks for trying!
> >>>
> >>> Stefan
> >>>
> >>>
> >>> Quoting Sameer Naik <sameer at damagehead.com>:
> >>>
> >>>> i see it done in the equalizer plugin factory.
> >>>> i shall work on getting this functionality into the videomixer
> >>>> thanks for the help stefan
> >>>>
> >>>> ~sameer
> >>>>
> >>>> On Wed, 2007-10-17 at 20:41 +0300, Stefan Kost wrote:
> >>>>> hi,
> >>>>>
> >>>>> Sameer Naik schrieb:
> >>>>>> hi,
> >>>>>>
> >>>>>> im writing a n-1 element, and am using the videomixer plugin (from
> >>>>>> gst-plugins-good package) to get the plug-in architecture in place.
> >>>>>>
> >>>>>> in the videomixer plugin, i see that the gstpad object is overloaded and
> >>>>>> a new videomixerpad object is created to store information information
> >>>>>> about each input pad.
> >>>>>> the videomixerpad class has the following properties installed on it:
> >>>>>> alpha, xpos, ypos,...
> >>>>>> but if i run the following pipeline:
> >>>>>>
> >>>>>> gst-launch videotestsrc ! video/x-raw-yuv, xpos=320, ypos=240,
> >>>>>> alpha=0.1 ! ffmpegcolorspace ! xvimagesink
> >>>>> #1 there is no videomix there.
> >>>>> #2 you cannot specify pad-proerties on capsfilter - it simple does   
> >>>>> not make sense
> >>>>>
> >>>>> Videomixer should implement the childproxy iface. Then you can do:
> >>>>> gst-launch videotestsrc ! videomixer src_00::xpos=320 src_00::ypos=240
> >>>>> src_00::alpha=0.1 ! ffmpegcolorspace ! xvimagesink
> >>>>>
> >>>>> Its not difficult, do you wanna try?
> >>>>>
> >>>>> Stefan
> >>>>>
> >>>>>
> >>>>>> no change appears at the displayed output, or to the properties of the
> >>>>>> pad.
> >>>>>>
> >>>>>> is it that the pad properties cannot be set in the above manner. if so,
> >>>>>> is there a way to set the pad properties at the command line level.
> >>>>>>
> >>>>>> regards
> >>>>>> ~sameer
> >>>>>>
> >>>>>>
> >>>>>> -------------------------------------------------------------------------
> >>>>>> 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