X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Fa52.c;h=554b00789b7486a38c381f3d137de3a45e5a47f5;hb=e2557f5690c01b6dc98ccd171905ff0b8193ac90;hp=d2768a46fb4d92bc6ec671fa5a09763ae00061b3;hpb=68dbf6ecee4df89e956ff45bcf8826f58a5b41e2;p=vlc diff --git a/modules/codec/a52.c b/modules/codec/a52.c index d2768a46fb..554b00789b 100644 --- a/modules/codec/a52.c +++ b/modules/codec/a52.c @@ -39,6 +39,8 @@ #include "a52.h" +#include "../packetizer/packetizer_helper.h" + /***************************************************************************** * Module descriptor *****************************************************************************/ @@ -85,20 +87,10 @@ struct decoder_sys_t vlc_a52_header_t frame; }; -enum { - - STATE_NOSYNC, - STATE_SYNC, - STATE_HEADER, - STATE_NEXT_SYNC, - STATE_GET_DATA, - STATE_SEND_DATA -}; - /**************************************************************************** * Local prototypes ****************************************************************************/ -static void *DecodeBlock ( decoder_t *, block_t ** ); +static block_t *DecodeBlock ( decoder_t *, block_t ** ); static uint8_t *GetOutBuffer ( decoder_t *, block_t ** ); static aout_buffer_t *GetAoutBuffer( decoder_t * ); @@ -150,11 +142,9 @@ static int OpenCommon( vlc_object_t *p_this, bool b_packetizer ) /* Set callback */ if( b_packetizer ) - p_dec->pf_packetize = (block_t *(*)(decoder_t *, block_t **)) - DecodeBlock; + p_dec->pf_packetize = DecodeBlock; else - p_dec->pf_decode_audio = (aout_buffer_t *(*)(decoder_t *, block_t **)) - DecodeBlock; + p_dec->pf_decode_audio = DecodeBlock; return VLC_SUCCESS; } @@ -176,7 +166,7 @@ static int OpenPacketizer( vlc_object_t *p_this ) **************************************************************************** * This function is called just after the thread is launched. ****************************************************************************/ -static void *DecodeBlock( decoder_t *p_dec, block_t **pp_block ) +static block_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block ) { decoder_sys_t *p_sys = p_dec->p_sys; uint8_t p_header[VLC_A52_HEADER_SIZE]; @@ -326,8 +316,6 @@ static void *DecodeBlock( decoder_t *p_dec, block_t **pp_block ) return p_out_buffer; } } - - return NULL; } /***************************************************************************** @@ -394,14 +382,14 @@ static uint8_t *GetOutBuffer( decoder_t *p_dec, block_t **pp_out_buffer ) static aout_buffer_t *GetAoutBuffer( decoder_t *p_dec ) { decoder_sys_t *p_sys = p_dec->p_sys; - aout_buffer_t *p_buf; - - p_buf = decoder_NewAudioBuffer( p_dec, p_sys->frame.i_samples ); - if( p_buf == NULL ) return NULL; - p_buf->i_pts = date_Get( &p_sys->end_date ); - p_buf->i_length = date_Increment( &p_sys->end_date, - p_sys->frame.i_samples ) - p_buf->i_pts; + aout_buffer_t *p_buf = decoder_NewAudioBuffer( p_dec, p_sys->frame.i_samples ); + if( p_buf ) + { + p_buf->i_pts = date_Get( &p_sys->end_date ); + p_buf->i_length = date_Increment( &p_sys->end_date, + p_sys->frame.i_samples ) - p_buf->i_pts; + } return p_buf; } @@ -412,15 +400,14 @@ static aout_buffer_t *GetAoutBuffer( decoder_t *p_dec ) static block_t *GetSoutBuffer( decoder_t *p_dec ) { decoder_sys_t *p_sys = p_dec->p_sys; - block_t *p_block; - - p_block = block_New( p_dec, p_sys->frame.i_size ); - if( p_block == NULL ) return NULL; - p_block->i_pts = p_block->i_dts = date_Get( &p_sys->end_date ); - - p_block->i_length = - date_Increment( &p_sys->end_date, p_sys->frame.i_samples ) - p_block->i_pts; + block_t *p_block = block_New( p_dec, p_sys->frame.i_size ); + if( p_block ) + { + p_block->i_pts = p_block->i_dts = date_Get( &p_sys->end_date ); + p_block->i_length = + date_Increment( &p_sys->end_date, p_sys->frame.i_samples ) - p_block->i_pts; + } return p_block; }