[gst-devel] Setting pad properties at commandline

Stefan Kost ensonic at hora-obscura.de
Sat Oct 20 18:00:00 CEST 2007


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