Hi,<br>i am using _activate function in pullreader plugin.<br>In this function i am checking gst_pad_check_pull_range() to <br>check upstream element supporting pull based method. <br>If supports i am starting task like gst_pullreader_getdata_loop.<br>
In this function i am using gst_pad_pull_range to get the data from upstream element.<br><br>alsasrc ! pushreader ! pullreader ! alsasink<br><br>When i run in pipeline gst_pad_pull_range calling getrange funtion of pushreader. <br>
It is coming into getrange of pushreader, but upto that time no data pushed by alsasrc <br>into pushreader so buffer is NULL, so getrange of pushreader return error message to gst_pad_pull_range.<br>This pullreader loop is running continously and checking for data. <br>
Chain function of pushreader not executing.<br><br><br>When i run <br><br>alsasrc ! pullreader ! pushreader ! alsasink<br><br>(pushreader - Removed set_getrange function from pushreader. <br> Pushreader push the data which it got from pullreader to alsasink.)<br>
<br>This pipeline is working properly. <br><br>But when i try to push data from pushreader to pullreader it is not working.<br>wheather it is the pipline problem or in gstreamer this type of schduling itself is not possible.<br>
please help me.<br><br>Thanks<br>Nagaraju K<br><br> <br><br><br><div class="gmail_quote">On Tue, Jul 28, 2009 at 7:20 AM, ved kpl <span dir="ltr"><<a href="mailto:ved.kpl@gmail.com">ved.kpl@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Have you added the _activate() on pullreader's sink pad?<br>
This function is necessary when activating your element in pull mode,<br>
as I guess by default, the pads are activated in push mode.<br>
You can implement your custom activate() , which will inturn start the<br>
task on the sinkpad of the pullreader (depending upon upstream<br>
supporting get_range or not), hence operating in pull mode.<br>
for eg. qtdemux_sink_activate() in qtdemux.c<br>
<br>
As far as activate_push() is concerned... it depends on whether you<br>
want to start the task on the srcpad of pushreader(like queue) and<br>
push downstream. But in your case the downstream element (pullreader)<br>
does a get_range..<br>
<div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
On 7/28/09, kodam naga <<a href="mailto:raju01e@gmail.com">raju01e@gmail.com</a>> wrote:<br>
> Hi,<br>
> Thank you for your reply.<br>
> In this pipeline pull element is in middle.<br>
> I added activate_pull in pullreader plugin.<br>
> i am using chain function in pushreader plugin.<br>
> where should i use activate_push.<br>
><br>
> Thanks<br>
> Nagaraju K<br>
><br>
> On Tue, Jul 28, 2009 at 5:03 AM, pritesh kumar<br>
> <<a href="mailto:pritesh.kumar2@gmail.com">pritesh.kumar2@gmail.com</a>>wrote:<br>
><br>
>> hi ,<br>
>> i cant predict the exact reason, but according to me the pipeline u r<br>
>> trying to implement is not correct approach.<br>
>><br>
>> the pull elements should be most upstream , otherwise u have to handle the<br>
>> pad activation functions properly. activate_push () , activate_pull().<br>
>><br>
>><br>
>> Alternatively,<br>
>><br>
>> the pipeline can be alsasrc ! pushreader ! alsasink<br>
>><br>
>> where the pushreader is a push element .<br>
>><br>
>> whereas in push reader u can have async data queue , which will receive<br>
>> data from alsasrc and on a separate thread push data to alsasink.<br>
>><br>
>><br>
>> let the push reader be a completey push element.<br>
>><br>
>> or may be this approach alsasrc ! push reader ! queue ! alsasink<br>
>><br>
>><br>
>> regards<br>
>> antwan rockamora<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> On Tue, Jul 28, 2009 at 12:59 PM, raju03e <<a href="mailto:raju01e@gmail.com">raju01e@gmail.com</a>> wrote:<br>
>><br>
>>><br>
>>> Hi,<br>
>>><br>
>>> I am a newbee to gstreamer. I am trying to explore about push and pull<br>
>>> based<br>
>>> scheduling in gstreamer.<br>
>>><br>
>>> I wrote pushreader, pullreader plugins.<br>
>>><br>
>>> In pushreader - sink pad is exposed with chain function, src pad with<br>
>>> set_getrange function. In chain function whatever data got from alsasrc,<br>
>>> I<br>
>>> stored that buffer into plugin internal buffer. Getrange function is<br>
>>> using<br>
>>> this internal buffer.<br>
>>><br>
>>> In pullreader – sink pad is exposed with getrange function, it tries to<br>
>>> get<br>
>>> data from pushreader and push that data to alsasink.<br>
>>><br>
>>> Pipeline is alsasrc ! pushreader ! pullreader ! Alsasink<br>
>>><br>
>>> When I tried to execute the above pipeline, only getrange is scheduling,<br>
>>> Chain function is not scheduling.<br>
>>><br>
>>> Please help me to solve this problem.<br>
>>><br>
>>> Thanks<br>
>>> Nagaraju K<br>
>>> --<br>
>>> View this message in context:<br>
>>> <a href="http://www.nabble.com/Scheduling-Problem-tp24693862p24693862.html" target="_blank">http://www.nabble.com/Scheduling-Problem-tp24693862p24693862.html</a><br>
>>> Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
>>><br>
>>><br>
>>><br>
>>> ------------------------------------------------------------------------------<br>
>>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008<br>
>>> 30-Day<br>
>>> trial. Simplify your report design, integration and deployment - and<br>
>>> focus<br>
>>> on<br>
>>> what you do best, core application coding. Discover what's new with<br>
>>> Crystal Reports now. <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
>>> _______________________________________________<br>
>>> gstreamer-devel mailing list<br>
>>> <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
>>> <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
>>><br>
>><br>
>><br>
>><br>
>> ------------------------------------------------------------------------------<br>
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008<br>
>> 30-Day<br>
>> trial. Simplify your report design, integration and deployment - and focus<br>
>> on<br>
>> what you do best, core application coding. Discover what's new with<br>
>> Crystal Reports now. <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
>> _______________________________________________<br>
>> gstreamer-devel mailing list<br>
>> <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
>> <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
>><br>
>><br>
><br>
><br>
> --<br>
> Nagaraju K<br>
> Software Engineer<br>
> Aricent Communications<br>
> 9886490554<br>
><br>
<br>
------------------------------------------------------------------------------<br>
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day<br>
trial. Simplify your report design, integration and deployment - and focus on<br>
what you do best, core application coding. Discover what's new with<br>
Crystal Reports now. <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Nagaraju K<br>Software Engineer<br>Aricent Communications<br>9886490554<br>