vlc_aout.h

来自「mips版本的VLC视频服务器」· C头文件 代码 · 共 456 行 · 第 1/2 页

H
456
字号
                                        vout_thread_t *, video_format_t * );    void *p_private;} aout_request_vout_t;/** audio output filter */typedef struct aout_filter_owner_sys_t aout_filter_owner_sys_t;typedef struct aout_filter_sys_t aout_filter_sys_t;struct aout_filter_t{    VLC_COMMON_MEMBERS    audio_sample_format_t   input;    audio_sample_format_t   output;    aout_alloc_t            output_alloc;    module_t *              p_module;    aout_filter_sys_t       *p_sys;    bool                    b_in_place;    bool                    b_continuity;    void                    (*pf_do_work)( aout_instance_t *, aout_filter_t *,                                           aout_buffer_t *, aout_buffer_t * );    /* Owner fieldS     * XXX You MUST not use them directly */    /* Vout callback     * XXX use aout_filter_RequestVout */    aout_request_vout_t request_vout;    /* Private structure for the owner of the filter */    aout_filter_owner_sys_t *p_owner;};#define AOUT_RESAMPLING_NONE     0#define AOUT_RESAMPLING_UP       1#define AOUT_RESAMPLING_DOWN     2/** an input stream for the audio output */struct aout_input_t{    /* When this lock is taken, the pipeline cannot be changed by a     * third-party. */    vlc_mutex_t             lock;    audio_sample_format_t   input;    aout_alloc_t            input_alloc;    /* pre-filters */    aout_filter_t *         pp_filters[AOUT_MAX_FILTERS];    int                     i_nb_filters;    aout_filter_t *         p_playback_rate_filter;    /* resamplers */    aout_filter_t *         pp_resamplers[AOUT_MAX_FILTERS];    int                     i_nb_resamplers;    int                     i_resampling_type;    mtime_t                 i_resamp_start_date;    int                     i_resamp_start_drift;    aout_fifo_t             fifo;    /* Mixer information */    uint8_t *               p_first_byte_to_mix;    audio_replay_gain_t     replay_gain;    float                   f_multiplier;    /* If b_restart == 1, the input pipeline will be re-created. */    bool              b_restart;    /* If b_error == 1, there is no input pipeline. */    bool              b_error;    /* Did we just change the output format? (expect buffer inconsistencies) */    bool              b_changed;    /* last rate from input */    int               i_last_input_rate;    /* */    int               i_buffer_lost;    /* */    bool              b_paused;    mtime_t           i_pause_date;    /* */    aout_request_vout_t request_vout; };/** an output stream for the audio output */typedef struct aout_output_t{    audio_sample_format_t   output;    /* Indicates whether the audio output is currently starving, to avoid     * printing a 1,000 "output is starving" messages. */    bool              b_starving;    /* post-filters */    aout_filter_t *         pp_filters[AOUT_MAX_FILTERS];    int                     i_nb_filters;    aout_fifo_t             fifo;    struct module_t *       p_module;    struct aout_sys_t *     p_sys;    void                 (* pf_play)( aout_instance_t * );    int                  (* pf_volume_get )( aout_instance_t *, audio_volume_t * );    int                  (* pf_volume_set )( aout_instance_t *, audio_volume_t );    int                  (* pf_volume_infos )( aout_instance_t *, audio_volume_t * );    int                     i_nb_samples;    /* Current volume for the output - it's just a placeholder, the plug-in     * may or may not use it. */    audio_volume_t          i_volume;    /* If b_error == 1, there is no audio output pipeline. */    bool              b_error;} aout_output_t;/** audio output thread descriptor */struct aout_instance_t{    VLC_COMMON_MEMBERS    /* Locks : please note that if you need several of these locks, it is     * mandatory (to avoid deadlocks) to take them in the following order :     * mixer_lock, p_input->lock, output_fifo_lock, input_fifos_lock.     * --Meuuh */    /* When input_fifos_lock is taken, none of the p_input->fifo structures     * can be read or modified by a third-party thread. */    vlc_mutex_t             input_fifos_lock;    /* When mixer_lock is taken, all decoder threads willing to mix a     * buffer must wait until it is released. The output pipeline cannot     * be modified. No input stream can be added or removed. */    vlc_mutex_t             mixer_lock;    /* When output_fifo_lock is taken, the p_aout->output.fifo structure     * cannot be read or written  by a third-party thread. */    vlc_mutex_t             output_fifo_lock;    /* Input streams & pre-filters */    aout_input_t *          pp_inputs[AOUT_MAX_INPUTS];    int                     i_nb_inputs;    /* Mixer */    aout_mixer_t            mixer;    /* Output plug-in */    aout_output_t           output;};/** * It describes the audio channel order VLC except. */static const uint32_t pi_vlc_chan_order_wg4[] ={    AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT,    AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT,    AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT, AOUT_CHAN_REARCENTER,    AOUT_CHAN_CENTER, AOUT_CHAN_LFE, 0};/***************************************************************************** * Prototypes *****************************************************************************//* From common.c : */VLC_EXPORT( void, aout_DateInit, ( audio_date_t *, uint32_t ) );VLC_EXPORT( void, aout_DateSet, ( audio_date_t *, mtime_t ) );VLC_EXPORT( void, aout_DateMove, ( audio_date_t *, mtime_t ) );VLC_EXPORT( mtime_t, aout_DateGet, ( const audio_date_t * ) LIBVLC_USED);VLC_EXPORT( mtime_t, aout_DateIncrement, ( audio_date_t *, uint32_t ) );VLC_EXPORT( aout_buffer_t *, aout_OutputNextBuffer, ( aout_instance_t *, mtime_t, bool ) LIBVLC_USED );/** * This function computes the reordering needed to go from pi_chan_order_in to * pi_chan_order_out. * If pi_chan_order_in or pi_chan_order_out is NULL, it will assume that vlc * internal (WG4) order is requested. */VLC_EXPORT( int, aout_CheckChannelReorder, ( const uint32_t *pi_chan_order_in, const uint32_t *pi_chan_order_out, uint32_t i_channel_mask, int i_channels, int *pi_chan_table ) );VLC_EXPORT( void, aout_ChannelReorder, ( uint8_t *, int, int, const int *, int ) );VLC_EXPORT( unsigned int, aout_FormatNbChannels, ( const audio_sample_format_t * p_format ) LIBVLC_USED );VLC_EXPORT( unsigned int, aout_BitsPerSample, ( vlc_fourcc_t i_format ) LIBVLC_USED );VLC_EXPORT( void, aout_FormatPrepare, ( audio_sample_format_t * p_format ) );VLC_EXPORT( void, aout_FormatPrint, ( aout_instance_t * p_aout, const char * psz_text, const audio_sample_format_t * p_format ) );VLC_EXPORT( const char *, aout_FormatPrintChannels, ( const audio_sample_format_t * ) LIBVLC_USED );VLC_EXPORT( mtime_t, aout_FifoFirstDate, ( aout_instance_t *, aout_fifo_t * ) LIBVLC_USED );VLC_EXPORT( aout_buffer_t *, aout_FifoPop, ( aout_instance_t * p_aout, aout_fifo_t * p_fifo ) LIBVLC_USED );/* From intf.c : */VLC_EXPORT( void, aout_VolumeSoftInit, ( aout_instance_t * ) );VLC_EXPORT( void, aout_VolumeNoneInit, ( aout_instance_t * ) );#define aout_VolumeGet(a, b) __aout_VolumeGet(VLC_OBJECT(a), b)VLC_EXPORT( int, __aout_VolumeGet, ( vlc_object_t *, audio_volume_t * ) );#define aout_VolumeSet(a, b) __aout_VolumeSet(VLC_OBJECT(a), b)VLC_EXPORT( int, __aout_VolumeSet, ( vlc_object_t *, audio_volume_t ) );#define aout_VolumeInfos(a, b) __aout_VolumeInfos(VLC_OBJECT(a), b)VLC_EXPORT( int, __aout_VolumeInfos, ( vlc_object_t *, audio_volume_t * ) );#define aout_VolumeUp(a, b, c) __aout_VolumeUp(VLC_OBJECT(a), b, c)VLC_EXPORT( int, __aout_VolumeUp, ( vlc_object_t *, int, audio_volume_t * ) );#define aout_VolumeDown(a, b, c) __aout_VolumeDown(VLC_OBJECT(a), b, c)VLC_EXPORT( int, __aout_VolumeDown, ( vlc_object_t *, int, audio_volume_t * ) );#define aout_VolumeMute(a, b) __aout_VolumeMute(VLC_OBJECT(a), b)VLC_EXPORT( int, __aout_VolumeMute, ( vlc_object_t *, audio_volume_t * ) );VLC_EXPORT( int, aout_FindAndRestart, ( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ) );VLC_EXPORT( int, aout_ChannelsRestart, ( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ) );VLC_EXPORT( void, aout_EnableFilter, (vlc_object_t *, const char *, bool ));#define aout_VisualNext(a) aout_VisualChange( VLC_OBJECT(a),1 )#define aout_VisualPrev(a) aout_VisualChange( VLC_OBJECT(a),-1 )VLC_EXPORT( char *, aout_VisualChange, (vlc_object_t *, int ) );/* */VLC_EXPORT( vout_thread_t *, aout_filter_RequestVout, ( aout_filter_t *, vout_thread_t *p_vout, video_format_t *p_fmt ) );# ifdef __cplusplus}# endif#endif /* _VLC_AOUT_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?