Hi,
I am a newbee to gstreamer. I am trying to explore about push and pull based scheduling in gstreamer. I wrote pushreader, pullreader plugins. In pushreader - sink pad is exposed with chain function, src pad with set_getrange function. In chain function whatever data got from alsasrc, I stored that buffer into plugin internal buffer. Getrange function is using this internal buffer. In pullreader – sink pad is exposed with getrange function, it tries to get data from pushreader and push that data to alsasink. Pipeline is alsasrc ! pushreader ! pullreader ! Alsasink When I tried to execute the above pipeline, only getrange is scheduling, Chain function is not scheduling. Please help me to solve this problem. Thanks Nagaraju K |
Did you implement the the appropriate activate_push () and
_activate_pull() functions? On 7/28/09, raju03e <[hidden email]> wrote: > > Hi, > > I am a newbee to gstreamer. I am trying to explore about push and pull based > scheduling in gstreamer. > > I wrote pushreader, pullreader plugins. > > In pushreader - sink pad is exposed with chain function, src pad with > set_getrange function. In chain function whatever data got from alsasrc, I > stored that buffer into plugin internal buffer. Getrange function is using > this internal buffer. > > In pullreader – sink pad is exposed with getrange function, it tries to get > data from pushreader and push that data to alsasink. > > Pipeline is alsasrc ! pushreader ! pullreader ! Alsasink > > When I tried to execute the above pipeline, only getrange is scheduling, > Chain function is not scheduling. > > Please help me to solve this problem. > > Thanks > Nagaraju K > -- > View this message in context: > http://www.nabble.com/Scheduling-Problem-tp24693862p24693862.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by raju03e
hi ,
i cant predict the exact reason, but according to me the pipeline u r trying to implement is not correct approach.
the pull elements should be most upstream , otherwise u have to handle the pad activation functions properly. activate_push () , activate_pull().
Alternatively,
the pipeline can be alsasrc ! pushreader ! alsasink
where the pushreader is a push element .
whereas in push reader u can have async data queue , which will receive data from alsasrc and on a separate thread push data to alsasink.
let the push reader be a completey push element.
or may be this approach alsasrc ! push reader ! queue ! alsasink
regards
antwan rockamora
On Tue, Jul 28, 2009 at 12:59 PM, raju03e <[hidden email]> wrote:
------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by raju03e
hi
may be this helps , besides check ur code
On Tue, Jul 28, 2009 at 12:59 PM, raju03e <[hidden email]> wrote:
------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by ved kpl
how the pullreader tries to get data from the push reader and push it
downstream?... There should be a loop running on its sink pad to do so (by doing a get_range upstream ) Is the get_range from alsasink, (I m not sure though because, normally the upstream elements push data to alsasink) proxied to the push reader? On 7/28/09, ved kpl <[hidden email]> wrote: > Did you implement the the appropriate activate_push () and > _activate_pull() functions? > > On 7/28/09, raju03e <[hidden email]> wrote: >> >> Hi, >> >> I am a newbee to gstreamer. I am trying to explore about push and pull >> based >> scheduling in gstreamer. >> >> I wrote pushreader, pullreader plugins. >> >> In pushreader - sink pad is exposed with chain function, src pad with >> set_getrange function. In chain function whatever data got from alsasrc, >> I >> stored that buffer into plugin internal buffer. Getrange function is >> using >> this internal buffer. >> >> In pullreader – sink pad is exposed with getrange function, it tries to >> get >> data from pushreader and push that data to alsasink. >> >> Pipeline is alsasrc ! pushreader ! pullreader ! Alsasink >> >> When I tried to execute the above pipeline, only getrange is scheduling, >> Chain function is not scheduling. >> >> Please help me to solve this problem. >> >> Thanks >> Nagaraju K >> -- >> View this message in context: >> http://www.nabble.com/Scheduling-Problem-tp24693862p24693862.html >> Sent from the GStreamer-devel mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 >> 30-Day >> trial. Simplify your report design, integration and deployment - and >> focus >> on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Hi,
how the pullreader tries to get data from the push reader and push it downstream?... There should be a loop running on its sink pad to do so (by doing a get_range upstream ) yes, in pullreader sinkpad have the pull_range function which will call pushreader set_getrange function. Loop function is running on pullreader sinkpad. Is the get_range from alsasink, (I m not sure though because, normally the upstream elements push data to alsasink) proxied to the push reader? No, get_range from pullreader. In loop function, i am pushing data to alsasink using pad_push. Thanks Nagaraju K On Tue, Jul 28, 2009 at 5:23 AM, ved kpl <[hidden email]> wrote: how the pullreader tries to get data from the push reader and push it -- Nagaraju K Software Engineer Aricent Communications 9886490554 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by pritesh kumar-3
Hi,
Thank you for your reply. In this pipeline pull element is in middle. I added activate_pull in pullreader plugin. i am using chain function in pushreader plugin. where should i use activate_push. Thanks Nagaraju K On Tue, Jul 28, 2009 at 5:03 AM, pritesh kumar <[hidden email]> wrote:
-- Nagaraju K Software Engineer Aricent Communications 9886490554 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Have you added the _activate() on pullreader's sink pad?
This function is necessary when activating your element in pull mode, as I guess by default, the pads are activated in push mode. You can implement your custom activate() , which will inturn start the task on the sinkpad of the pullreader (depending upon upstream supporting get_range or not), hence operating in pull mode. for eg. qtdemux_sink_activate() in qtdemux.c As far as activate_push() is concerned... it depends on whether you want to start the task on the srcpad of pushreader(like queue) and push downstream. But in your case the downstream element (pullreader) does a get_range.. On 7/28/09, kodam naga <[hidden email]> wrote: > Hi, > Thank you for your reply. > In this pipeline pull element is in middle. > I added activate_pull in pullreader plugin. > i am using chain function in pushreader plugin. > where should i use activate_push. > > Thanks > Nagaraju K > > On Tue, Jul 28, 2009 at 5:03 AM, pritesh kumar > <[hidden email]>wrote: > >> hi , >> i cant predict the exact reason, but according to me the pipeline u r >> trying to implement is not correct approach. >> >> the pull elements should be most upstream , otherwise u have to handle the >> pad activation functions properly. activate_push () , activate_pull(). >> >> >> Alternatively, >> >> the pipeline can be alsasrc ! pushreader ! alsasink >> >> where the pushreader is a push element . >> >> whereas in push reader u can have async data queue , which will receive >> data from alsasrc and on a separate thread push data to alsasink. >> >> >> let the push reader be a completey push element. >> >> or may be this approach alsasrc ! push reader ! queue ! alsasink >> >> >> regards >> antwan rockamora >> >> >> >> >> >> >> >> On Tue, Jul 28, 2009 at 12:59 PM, raju03e <[hidden email]> wrote: >> >>> >>> Hi, >>> >>> I am a newbee to gstreamer. I am trying to explore about push and pull >>> based >>> scheduling in gstreamer. >>> >>> I wrote pushreader, pullreader plugins. >>> >>> In pushreader - sink pad is exposed with chain function, src pad with >>> set_getrange function. In chain function whatever data got from alsasrc, >>> I >>> stored that buffer into plugin internal buffer. Getrange function is >>> using >>> this internal buffer. >>> >>> In pullreader – sink pad is exposed with getrange function, it tries to >>> get >>> data from pushreader and push that data to alsasink. >>> >>> Pipeline is alsasrc ! pushreader ! pullreader ! Alsasink >>> >>> When I tried to execute the above pipeline, only getrange is scheduling, >>> Chain function is not scheduling. >>> >>> Please help me to solve this problem. >>> >>> Thanks >>> Nagaraju K >>> -- >>> View this message in context: >>> http://www.nabble.com/Scheduling-Problem-tp24693862p24693862.html >>> Sent from the GStreamer-devel mailing list archive at Nabble.com. >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 >>> 30-Day >>> trial. Simplify your report design, integration and deployment - and >>> focus >>> on >>> what you do best, core application coding. Discover what's new with >>> Crystal Reports now. http://p.sf.net/sfu/bobj-july >>> _______________________________________________ >>> gstreamer-devel mailing list >>> [hidden email] >>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >>> >> >> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 >> 30-Day >> trial. Simplify your report design, integration and deployment - and focus >> on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel >> >> > > > -- > Nagaraju K > Software Engineer > Aricent Communications > 9886490554 > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Hi,
i am using _activate function in pullreader plugin. In this function i am checking gst_pad_check_pull_range() to check upstream element supporting pull based method. If supports i am starting task like gst_pullreader_getdata_loop. In this function i am using gst_pad_pull_range to get the data from upstream element. alsasrc ! pushreader ! pullreader ! alsasink When i run in pipeline gst_pad_pull_range calling getrange funtion of pushreader. It is coming into getrange of pushreader, but upto that time no data pushed by alsasrc into pushreader so buffer is NULL, so getrange of pushreader return error message to gst_pad_pull_range. This pullreader loop is running continously and checking for data. Chain function of pushreader not executing. When i run alsasrc ! pullreader ! pushreader ! alsasink (pushreader - Removed set_getrange function from pushreader. Pushreader push the data which it got from pullreader to alsasink.) This pipeline is working properly. But when i try to push data from pushreader to pullreader it is not working. wheather it is the pipline problem or in gstreamer this type of schduling itself is not possible. please help me. Thanks Nagaraju K On Tue, Jul 28, 2009 at 7:20 AM, ved kpl <[hidden email]> wrote: Have you added the _activate() on pullreader's sink pad? -- Nagaraju K Software Engineer Aricent Communications 9886490554 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I found the solution in below link.
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/chapter-scheduling.html |
Free forum by Nabble | Edit this page |