[gst-devel] PULL mode and PUSH mode
LRN
lrn1986 at gmail.com
Tue Jun 23 18:43:18 CEST 2009
On 23.06.2009 17:01, Arnab Samanta wrote:
> Hello Developers,
>
> I have a very basic doubt mentioned below . Kindly clarify.
>
> Can we have a pipeline with some of its elements in PULL mode and
> some of its elements in PUSH mode ?
>
> lets say we have a pipeline as follows
>
> gst-launch src ! B ! C ! D ! E ! sink
>
> In which, D is the plugin in PULL mode and rest all plugins are in PUSH mode .
> In this case , i guess the gst_pad_push() of plugin C is not dependant on gst_pad_push()
> of plugin E as in between the plugin D itself pulls the data and the gst_pad_push() of plugin C
> returns irrespective of wheather the gst_pad_push() of plugin E is done or not .
>
> Is my above understanding correct ? Please clarify.
>
gst_pad_push() of plugin C seems to be irrelevant, because "src ! B ! C
! D" part of the pipeline works in pull mode, which means that
gst_pad_push() will never be called.
Push mode: gst_pad_push() -> _chain()
Pull mode: _get_range() <- gst_pad_pull_range()
Pull in upstream, push in downstream: _get_range() <-
gst_pad_pull_range(), _get_range() <- gst_pad_pull_range(),
gst_pad_push() -> _chain(), gst_pad_push() -> _chain()
P.S. At least i think so.
More information about the gstreamer-devel
mailing list