querry : how the chain function and the activate_push function is called by the gstreamer core?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

querry : how the chain function and the activate_push function is called by the gstreamer core?

arnabsamanta
 Hi ,
        there are two functions in the queue element namely
                        gst_queue_chain() which does all the data processing
                        gst_queue_src_activate_push() which pushes away the data out of the
plugin

        Can any body tell me how exactly these two functions - gst_plugin_chain()
and gst_plugin_src_activate_push() will be called ?

        both the functions are declared in the plugin_init ()

        is it like once the chain() is called and then the src_activate_push () is
called and the loop gets repeated with chain () and src_activate_push()
alternately ? but then i added a counter in both these functions and
displayed once they are called and observed that only the chain() function
is displayed and not the other one in the src_activate_push
                                                        or,
                        the chain() function is called and after its data processing is
completely over , then the src_activate_push () is called ? if this is
the case , then how the data is sent to the source element from the
filesrc element which send 4K bytes each time ? because to my understanding
if the chain() is executed at a time , then the entire file has to be
read and stord at once , which is quite not possible. am i right ?


        I am unable to understand the squence by which the gstreamer core calls the
functions declared in the init()


The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments contained in it.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: querry : how the chain function and the activate_push function is called by the gstreamer core?

ved kpl
HI,

activate_push() is used by the core to decide the scheduling mode.
You probably need to understand scheduling in gstreamer.

http://webcvs.freedesktop.org/gstreamer/gstreamer/docs/design/part-scheduling.txt?view=markup

Ved

On Mon, Oct 6, 2008 at 12:39 PM, arnabsamanta
<[hidden email]> wrote:

>  Hi ,
>        there are two functions in the queue element namely
>                        gst_queue_chain() which does all the data processing
>                        gst_queue_src_activate_push() which pushes away the data out of the
> plugin
>
>        Can any body tell me how exactly these two functions - gst_plugin_chain()
> and gst_plugin_src_activate_push() will be      called ?
>
>        both the functions are declared in the plugin_init ()
>
>        is it like once the chain() is called and then the src_activate_push () is
> called and the loop gets repeated with chain                            () and src_activate_push()
> alternately ? but then i added a counter in both these functions and
> displayed once they are called and observed that only the chain() function
> is displayed and not the                                other one in the src_activate_push
>                                                        or,
>                        the chain() function is called and after its data processing is
> completely over , then the                                              src_activate_push () is called ? if this is
> the case , then how the data is sent to the source                                      element from the
> filesrc element which send 4K bytes each time ? because to my understanding
> if the                          chain() is executed at a time , then the entire file has to be
> read and stord at once , which is                               quite not possible. am i right ?
>
>
>        I am unable to understand the squence by which the gstreamer core calls the
> functions declared in the init()
>
>
> The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments contained in it.
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: querry : how the chain function and the activate_push function is called by the gstreamer core?

Sudarshan Bisht
In reply to this post by arnabsamanta
Hi Arnb ,
             Actually gst_plugin_src_activate_push function is used to activate src pad in push mode , that means src pad can only push the data to next element , and  gst_plugin_chain funcion does all the processing and  pushes the data to next element using gst_pad_push funcion  .
          So gst_plugin_src_activate_push will be called only once in order to set some variables but gst_plugin_chain will be called till the data is there in the file .  And by default filesrc element sends 4096 bytes of data eveytime to next element . but that can be changed using "blocksize" property of filesrc  .  
 

 
On Mon, Oct 6, 2008 at 12:39 PM, arnabsamanta <[hidden email]> wrote:
 Hi ,
       there are two functions in the queue element namely
                       gst_queue_chain() which does all the data processing
                       gst_queue_src_activate_push() which pushes away the data out of the
plugin

       Can any body tell me how exactly these two functions - gst_plugin_chain()
and gst_plugin_src_activate_push() will be      called ?

       both the functions are declared in the plugin_init ()

       is it like once the chain() is called and then the src_activate_push () is
called and the loop gets repeated with chain                            () and src_activate_push()
alternately ? but then i added a counter in both these functions and
displayed once they are called and observed that only the chain() function
is displayed and not the                                other one in the src_activate_push
                                                       or,
                       the chain() function is called and after its data processing is
completely over , then the                                              src_activate_push () is called ? if this is
the case , then how the data is sent to the source                                      element from the
filesrc element which send 4K bytes each time ? because to my understanding
if the                          chain() is executed at a time , then the entire file has to be
read and stord at once , which is                               quite not possible. am i right ?


       I am unable to understand the squence by which the gstreamer core calls the
functions declared in the init()


The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments contained in it.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



--
Regards,

Sudarshan Bisht

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel