gstplaybasebin buffering and queue help

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

gstplaybasebin buffering and queue help

Israel Beliveau
Hi,
 
I'm trying to understand how the GstQueue and gstplaybasebin buffering works but I have a problem.
 
Here is my understanding using an example:
 
my min_threshold is 35% and upper threshold is 95% (following what gstplaybasebin uses)
0------35----------95-----100
I start with no data at 0, this fire a underrun: this mean playback is stopped but data continues to fill the queue. Data is displayed on the bus that there is buffering.
 
When it gets to 95%, if fires an overrun event and no more buffering is shown.
 
Threshold is set back to 35% and playback is resumed.
 
Correct me if you see anything wrong. 
 
What I don't understand is how it works when it gets to the end of the stream.
The buffer will go down to 35% has no more data is flowing in. But how will the rest of the data will be outputed if playback is stopped because it encountered the lower threshold? I probably missed something while browsing the source code but can't find why it works.
 
 
Thanks,
 
IPB

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gstplaybasebin buffering and queue help

Wim Taymans
On Tue, 2008-07-01 at 16:16 -0400, Israel Beliveau wrote:

> Hi,
>  
> I'm trying to understand how the GstQueue and gstplaybasebin buffering
> works but I have a problem.
>  
> Here is my understanding using an example:
>  
> my min_threshold is 35% and upper threshold is 95% (following what
> gstplaybasebin uses)
> 0------35----------95-----100
> I start with no data at 0, this fire a underrun: this mean playback is
> stopped but data continues to fill the queue. Data is displayed on the
> bus that there is buffering.
>  
> When it gets to 95%, if fires an overrun event and no more buffering
> is shown.
>  
> Threshold is set back to 35% and playback is resumed.
>  
> Correct me if you see anything wrong.
>  
> What I don't understand is how it works when it gets to the end of the
> stream.
> The buffer will go down to 35% has no more data is flowing in. But how
> will the rest of the data will be outputed if playback is stopped
> because it encountered the lower threshold? I probably missed
> something while browsing the source code but can't find why it works.

The EOS in the queue does not make it trigger the underflow signal
anymore.

Wim

>  
>  
> Thanks,
>  
> IPB
> -------------------------------------------------------------------------
> Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
> Studies have shown that voting for your favorite open source project,
> along with a healthy diet, reduces your potential for chronic lameness
> and boredom. Vote Now at http://www.sourceforge.net/community/cca08
> _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel