[vlc-devel] commit: Fix decoder FIFO pacing. ( Rémi Denis-Courmont )
git version control
git at videolan.org
Thu Oct 23 20:41:50 CEST 2008
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Thu Oct 23 21:38:40 2008 +0300| [b64ada26f7e25a76c23b759be100d4b76e249b9f] | committer: Rémi Denis-Courmont
Fix decoder FIFO pacing.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b64ada26f7e25a76c23b759be100d4b76e249b9f
---
src/input/decoder.c | 10 +++-------
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/input/decoder.c b/src/input/decoder.c
index 06379e7..7043b4c 100644
--- a/src/input/decoder.c
+++ b/src/input/decoder.c
@@ -306,6 +306,7 @@ void input_DecoderDelete( decoder_t *p_dec )
/**
* Put a block_t in the decoder's fifo.
+ * Thread-safe w.r.t. the decoder. May be a cancellation point.
*
* \param p_dec the decoder object
* \param p_block the data block
@@ -316,17 +317,12 @@ void input_DecoderDecode( decoder_t *p_dec, block_t *p_block )
if( p_owner->p_input->p->b_out_pace_control )
{
- /* FIXME !!!!! */
- while( vlc_object_alive( p_dec ) &&
- block_FifoCount( p_owner->p_fifo ) > 10 )
- {
- msleep( 1000 );
- }
+ block_FifoPace( p_owner->p_fifo, 10, SIZE_MAX );
}
else if( block_FifoSize( p_owner->p_fifo ) > 50000000 /* 50 MB */ )
{
/* FIXME: ideally we would check the time amount of data
- * in the fifo instead of its size. */
+ * in the FIFO instead of its size. */
msg_Warn( p_dec, "decoder/packetizer fifo full (data not "
"consumed quickly enough), resetting fifo!" );
block_FifoEmpty( p_owner->p_fifo );
More information about the vlc-devel
mailing list