Help needed regarding buffering

Vijay Vikram vikram.kvijay at gmail.com
Tue Oct 30 06:22:28 PDT 2012


Hi Wim,
By the way, I forgot to inform you that I am using gstreamer 0.10 not 1.0.
Hope this will help you in giving out info in a better way?

Regards,
Vikram

On Tue, Oct 30, 2012 at 6:07 PM, Vijay Vikram <vikram.kvijay at gmail.com>wrote:

> Hi Wim,
> As I have mentioned in my previous emails, after handling buffering
> messages I am always getting either 0% or 100% from *
> gst_message_parse_buffering*.
>
> I would like to understand how queue sets its low and high watermark.
>
> As I have mentioned in my previous mail, my queue has  "max-size-bytes"
> set to 10MB.
> And by default low-percent=10 and high-percent=99.
>
>
> So does that mean that the data will be pushed out of the queue when queue
> has 1MB data queued i.e. to say
> is low watermark = 1MB,
> and high watermark = 9.9MB
>
> As explained in the documentation, a BUFFERING message with 100% will be
> posted only when high watermark is reached. But as I have already told
> queue pushes data down stream as soon as first chunk(about 1KB) is queued
> up.
>
> I am sure I am missing some minute details of the queue.
>
> Regards,
> Vikram
>
>  On Tue, Oct 30, 2012 at 3:16 PM, Wim Taymans <wim.taymans at gmail.com>wrote:
>
>> On 10/30/2012 07:14 AM, Vijay Vikram wrote:
>>
>>> Hi ,
>>> Thanks for your response to my queries but my prob still remains in the
>>> same state.
>>> I would restate my issue first.
>>> I have a pipeline which has the following elements in the same sequence
>>> as mentioned below
>>> httpsrc->queue2->demux
>>> For queue, my code snippet looks like this-
>>> GstElement *queue = gst_element_factory_make( "queue2", "data" );
>>> g_object_set (G_OBJECT (queue ), "max-size-bytes", 10MB,
>>> "max-size-time", 0, "max-size-buffers", 0, "use-buffering", true, NULL);
>>> httpsrc pushes data in chunks. I am expecting the queue to hold the data
>>> chunks till 1MB(10 percent of the max size) is filled. But what i see is
>>> , queue pushes data to the demux as soon as it gets the first chunk.
>>> I tried using "temp-location" property, but in that case data is always
>>> pushed to the file specified in the "temp-location", and it never comes
>>> to the queue.
>>> Please suggest (if possible with code snippet) how to achieve it.
>>> Please correct me if I am going wrong with my pipe itself.
>>>
>>
>> You need to watch for buffering messages and keep the pipeline paused
>> while buffering. This is explained here:
>>
>> http://gstreamer.freedesktop.**org/data/doc/gstreamer/head/**
>> manual/html/chapter-buffering.**html<http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-buffering.html>
>>
>> Wim
>>
>> Regards,
>>> Vikram
>>>
>>> On Tue, Oct 23, 2012 at 5:41 PM, Bernhard Graaf <bernhard.graaf at gmx.de
>>> <mailto:bernhard.graaf at gmx.de>**> wrote:
>>>
>>>     Hi Vikram,____
>>>
>>>     __ __
>>>
>>>
>>>     I’ve implemented the buffer with setting all max values (bytes,
>>>     frames and time) and set only the min value for time. It’s runs fine
>>>     for me.____
>>>
>>>     __ __
>>>
>>>     Regards____
>>>
>>>     Bernhard____
>>>
>>>     __ __
>>>
>>>     ------------------------------**------------------------------**
>>> ------------
>>>
>>>     *Von:*gstreamer-devel-bounces+**bernhard.graaf=gmx.de at lists.**
>>> freedesktop.org <gmx.de at lists.freedesktop.org>
>>>     <mailto:gmx.de at lists.**freedesktop.org<gmx.de at lists.freedesktop.org>
>>> >
>>>     [mailto:gstreamer-devel-**bounces+bernhard.graaf<gstreamer-devel-bounces%2Bbernhard.graaf>
>>>     <mailto:gstreamer-devel-**bounces%2Bbernhard.graaf<gstreamer-devel-bounces%252Bbernhard.graaf>
>>> >=gmx.**de at lists.freedesktop.org <gmx.de at lists.freedesktop.org>
>>>     <mailto:gmx.de at lists.**freedesktop.org<gmx.de at lists.freedesktop.org>>]
>>> *Im Auftrag von *Vijay Vikram
>>>     *Gesendet:* Dienstag, 23. Oktober 2012 12:58
>>>     *An:* Discussion of the development of and with GStreamer
>>>     *Betreff:* Re: Help needed regarding buffering____
>>>
>>>     __ __
>>>
>>>     Hi Wim,____
>>>
>>>     Thanks a lot for your prompt reply.____
>>>
>>>     ____
>>>
>>>     I have tried this thing with queue2 too.____
>>>
>>>     ____
>>>
>>>     The steps are mentioned below____
>>>
>>>     1. Set max-size-bytes= 10MB(for queue's max capacity)____
>>>
>>>     2. Set low-percent=high-percent=5 initially.____
>>>
>>>     ____
>>>
>>>
>>>     Now I am listening to bus messages. On GST_MESSAGE_BUFFERING, when I
>>>     get the percent vlaue, I am always getting either 0 or 100. ____
>>>
>>>     ____
>>>
>>>
>>>     Is it that restrictin based on number of bytes is not correct.
>>>     rather we should restrict the percentage values based on time as
>>>     explained in the link you have shared?____
>>>
>>>     ____
>>>
>>>     Or Is there something wrong with my understanding?____
>>>
>>>     ____
>>>
>>>     Regards,____
>>>
>>>     Vikram____
>>>
>>>
>>>     On Tue, Oct 23, 2012 at 3:23 PM, Wim Taymans <wim.taymans at gmail.com
>>>     <mailto:wim.taymans at gmail.com>**> wrote:____
>>>
>>>     On 10/23/2012 11:45 AM, Vijay Vikram wrote:____
>>>
>>>
>>>     Hi,
>>>     I am trying to use queue element in my pipeline for buffering. My
>>>     goal is to start playback of content after some bytes are queued up.
>>>     According to my understanding of the queue, I was trying the
>>> following
>>>     1. Set max-size-bytes= some bytes(for queue's max capacity)
>>>     2. Set min-threshold-bytes=some bytes(say 100k)
>>>     souphttpsrc is downloading the data.
>>>     Now I was thinking that chunks will be queued up inside queue till
>>>     the min-threshold(100k bytes) is reached and queue will start
>>>     pushing the data downstream(thats a demux) after that.
>>>     But while testing, I realized that queue starts pushing as soon as
>>>     it gets the first chunk.
>>>     Looks like my understanding of queue is not correct.
>>>     Can someone help me out regarding this? If you can share some
>>>     insight or some documentation to help me do this, that would be
>>>     great of you.____
>>>
>>>     __ __
>>>
>>>
>>>     Don't use queue for this, the min-threshold-* is useless. Use queue2
>>>     to implement buffering and
>>>     check out the buffering documentation here:
>>>
>>>     http://gstreamer.freedesktop.**org/data/doc/gstreamer/head/**
>>> manual/html/chapter-buffering.**html<http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-buffering.html>
>>>
>>>     Wim
>>>
>>>     ____
>>>
>>>
>>>     Regards,
>>>     Vikram
>>>
>>>
>>>     ______________________________**_________________
>>>     gstreamer-devel mailing list
>>>     gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>>     <mailto:gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>> >
>>>     http://lists.freedesktop.org/**mailman/listinfo/gstreamer-**
>>> devel____<http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel____>
>>>
>>>
>>>
>>>     ______________________________**_________________
>>>     gstreamer-devel mailing list
>>>     gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>>     <mailto:gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>> >
>>>     http://lists.freedesktop.org/**mailman/listinfo/gstreamer-**
>>> devel____<http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel____>
>>>
>>>     __ __
>>>
>>>
>>>
>>>     ______________________________**_________________
>>>     gstreamer-devel mailing list
>>>     gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>>     <mailto:gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>>
>>>
>>>
>>>     http://lists.freedesktop.org/**mailman/listinfo/gstreamer-**devel<http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>
>>>
>>>
>>>
>>> ______________________________**_________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>>> http://lists.freedesktop.org/**mailman/listinfo/gstreamer-**devel<http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>
>>>
>> ______________________________**_________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.**freedesktop.org<gstreamer-devel at lists.freedesktop.org>
>> http://lists.freedesktop.org/**mailman/listinfo/gstreamer-**devel<http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20121030/45134f8d/attachment.html>


More information about the gstreamer-devel mailing list