X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Faudio_decoder%2Faudio_decoder.h;h=afc685b0036b0da4292380eabd1af6babf7d8b73;hb=42e8a2e6e4db3d3fe1d3e8b3a80f28a4db53371a;hp=e9dac8aa513067eeef4f4d0cf879e88a12cb4132;hpb=da6f02087bfee96959a327e22dedc0820824392f;p=vlc diff --git a/src/audio_decoder/audio_decoder.h b/src/audio_decoder/audio_decoder.h index e9dac8aa51..afc685b003 100644 --- a/src/audio_decoder/audio_decoder.h +++ b/src/audio_decoder/audio_decoder.h @@ -1,5 +1,5 @@ /***************************************************************************** - * audio_decoder.h : audio decoder interface + * audio_decoder.h : audio decoder thread interface ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN * @@ -21,71 +21,40 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ -/**** audio decoder API - public audio decoder structures */ - -typedef struct audiodec_s audiodec_t; - -typedef struct adec_sync_info_s { - int sample_rate; /* sample rate in Hz */ - int frame_size; /* frame size in bytes */ - int bit_rate; /* nominal bit rate in kbps */ -} adec_sync_info_t; - -typedef struct adec_byte_stream_s { - u8 * p_byte; - u8 * p_end; - void * info; -} adec_byte_stream_t; - -/**** audio decoder API - functions publically provided by the audio dec. ****/ - -int adec_init (audiodec_t * p_adec); -int adec_sync_frame (audiodec_t * p_adec, adec_sync_info_t * p_sync_info); -int adec_decode_frame (audiodec_t * p_adec, s16 * buffer); -static adec_byte_stream_t * adec_byte_stream (audiodec_t * p_adec); - -/**** audio decoder API - user functions to be provided to the audio dec. ****/ - -void adec_byte_stream_next (adec_byte_stream_t * p_byte_stream); - -/**** EVERYTHING AFTER THIS POINT IS PRIVATE ! DO NOT USE DIRECTLY ****/ - -/**** audio decoder internal structures ****/ - -typedef struct adec_bank_s { - float v1[512]; - float v2[512]; - float * actual; - int pos; -} adec_bank_t; - -typedef struct adec_bit_stream_s { - u32 buffer; - int i_available; - adec_byte_stream_t byte_stream; - int total_bytes_read; -} adec_bit_stream_t; +/***************************************************************************** + * adec_thread_t : audio decoder thread descriptor + *****************************************************************************/ +typedef struct adec_thread_s +{ + /* + * Thread properties + */ + vlc_thread_t thread_id; /* id for thread functions */ + boolean_t b_die; /* `die' flag */ + boolean_t b_error; /* `error' flag */ -struct audiodec_s { /* * Input properties */ + decoder_fifo_t * p_fifo; /* stores the PES stream data */ + data_packet_t * p_data; + adec_config_t * p_config; - /* The bit stream structure handles the PES stream at the bit level */ - adec_bit_stream_t bit_stream; /* * Decoder properties */ - u32 header; - int frame_size; - adec_bank_t bank_0; - adec_bank_t bank_1; -}; + audiodec_t audio_decoder; -/**** audio decoder inline functions ****/ + /* + * Output properties + */ + aout_fifo_t * p_aout_fifo; /* stores the decompressed audio frames */ + aout_thread_t * p_aout; /* needed to create the audio fifo */ -static adec_byte_stream_t * adec_byte_stream (audiodec_t * p_adec) -{ - return &(p_adec->bit_stream.byte_stream); -} +} adec_thread_t; + +/***************************************************************************** + * Prototypes + *****************************************************************************/ +vlc_thread_t adec_CreateThread ( adec_config_t * p_config );