Discussion:
[gst-devel] Setting pad properties at commandline
Sameer Naik
2007-10-15 12:10:09 UTC
Permalink
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

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
Stefan Kost
2007-10-17 17:41:29 UTC
Permalink
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-18 05:18:29 UTC
Permalink
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
gst-launch videotestsrc ! video/x-raw-yuv, xpos=320, ypos=240,
alpha=0.1 ! ffmpegcolorspace ! xvimagesink
#1 there is no videomix there.
sorry about that, missed placing the videomixer element before the
colorspace
Post by Stefan Kost
#2 you cannot specify pad-proerties on capsfilter - it simple does not make sense
my bad
Post by Stefan Kost
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?
i would like to give it a shot. is there any plug-in in the gstreamer
packages, that implements the childproxy interface, that i can take a
look at?

~Sameer
Post by Stefan Kost
Stefan
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-18 05:40:00 UTC
Permalink
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Stefan Kost
2007-10-18 13:55:32 UTC
Permalink
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-18 19:04:17 UTC
Permalink
im at it..
great you pointed out to me that GstBin also implements GstChildProxy
Interface.it will help me understand the mechanics better.
shall ping you if i need any help and when the patch is ready.

also will be doing a few cleanups in the videomixer code, e.g. in
gst_videomixer_reset() the list data elements (GstVideoMixerCollect) are
freed but the list itself is not freed (via g_slist_free())

regards
~sameer
Post by Stefan Kost
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-19 12:28:23 UTC
Permalink
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
Post by Stefan Kost
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-20 09:07:50 UTC
Permalink
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.
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.

awaiting you reply.
~sameer
Post by Sameer Naik
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
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.
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
Post by Stefan Kost
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Stefan Kost
2007-10-20 16:00:00 UTC
Permalink
Hi,
Post by Sameer Naik
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.
Post by Sameer Naik
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
Post by Sameer Naik
awaiting you reply.
~sameer
Post by Sameer Naik
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
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.
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
Post by Stefan Kost
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Sameer Naik
2007-10-22 06:08:55 UTC
Permalink
Opened bug and submitted patch...
http://bugzilla.gnome.org/show_bug.cgi?id=488879

~sameer
Post by Stefan Kost
Hi,
Post by Sameer Naik
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.
Post by Sameer Naik
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
Post by Sameer Naik
awaiting you reply.
~sameer
Post by Sameer Naik
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
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.
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
Post by Stefan Kost
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
Post by Sameer Naik
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
Post by Stefan Kost
hi,
Post by Sameer Naik
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.
alpha, xpos, ypos,...
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
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
Post by Sameer Naik
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
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
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Loading...