vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon Oct 12 21:28:33 2020 +0300| [3bdfc181524273c01d09bef3388c7855e46b9398] | committer: Rémi Denis-Courmont
shine: avoid block_fifo_t No need for thread safety here. Fix deprecation warning. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3bdfc181524273c01d09bef3388c7855e46b9398 --- modules/codec/shine.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/modules/codec/shine.c b/modules/codec/shine.c index 525d97427a..45e8ca4114 100644 --- a/modules/codec/shine.c +++ b/modules/codec/shine.c @@ -46,7 +46,7 @@ typedef struct { shine_t s; unsigned int samples_per_frame; - block_fifo_t *p_fifo; + block_t *first, **lastp; unsigned int i_buffer; uint8_t *p_buffer; @@ -108,11 +108,8 @@ static int OpenEncoder( vlc_object_t *p_this ) if( !p_sys ) goto enomem; - if( !( p_sys->p_fifo = block_FifoNew() ) ) - { - free( p_sys ); - goto enomem; - } + p_sys->first = NULL; + p_sys->lastp = &p_sys->first; shine_config_t cfg = { .wave = { @@ -177,7 +174,8 @@ static block_t *GetPCM( encoder_t *p_enc, block_t *p_block ) p_block->i_buffer -= p_sys->samples_per_frame * 4 - i_buffer; - block_FifoPut( p_sys->p_fifo, p_pcm_block ); + *(p_sys->lastp) = p_pcm_block; + p_sys->lastp = &p_pcm_block->p_next; } /* We hadn't enough data to make a block, put it in standby */ @@ -207,7 +205,15 @@ static block_t *GetPCM( encoder_t *p_enc, block_t *p_block ) buffered: /* and finally get a block back */ - return block_FifoCount( p_sys->p_fifo ) > 0 ? block_FifoGet( p_sys->p_fifo ) : NULL; + p_pcm_block = p_sys->first; + + if( p_pcm_block != NULL ) { + p_sys->first = p_pcm_block->p_next; + if( p_pcm_block->p_next == NULL ) + p_sys->lastp = &p_sys->first; + } + + return p_pcm_block; } static block_t *EncodeFrame( encoder_t *p_enc, block_t *p_block ) @@ -279,6 +285,6 @@ static void CloseEncoder( vlc_object_t *p_this ) shine_close(p_sys->s); atomic_store(&busy, false); - block_FifoRelease( p_sys->p_fifo ); + block_ChainRelease(p_sys->first); free( p_sys ); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
