VLC 4.0.0-dev
|
Macros | |
#define | aout_FormatPrint(o, t, f) aout_FormatPrint(VLC_OBJECT(o), t, f) |
Functions | |
unsigned | aout_CheckChannelReorder (const uint32_t *, const uint32_t *, uint32_t mask, uint8_t *table) |
This function computes the reordering needed to go from pi_chan_order_in to pi_chan_order_out. More... | |
void | aout_ChannelReorder (void *, size_t, uint8_t, const uint8_t *, vlc_fourcc_t) |
Reorders audio samples within a block of linear audio interleaved samples. More... | |
bool | aout_CheckChannelExtraction (int *pi_selection, uint32_t *pi_layout, int *pi_channels, const uint32_t pi_order_dst[9], const uint32_t *pi_order_src, int i_channels) |
This function will compute the extraction parameter into pi_selection to go from i_channels with their type given by pi_order_src[] into the order describe by pi_order_dst. More... | |
void | aout_ChannelExtract (void *p_dst, int i_dst_channels, const void *p_src, int i_src_channels, int i_sample_count, const int *pi_selection, int i_bits_per_sample) |
Do the actual channels extraction using the parameters created by aout_CheckChannelExtraction. More... | |
void | aout_Interleave (void *dst, const void *const *planes, unsigned samples, unsigned channels, vlc_fourcc_t fourcc) |
void | aout_Deinterleave (void *dst, const void *src, unsigned samples, unsigned channels, vlc_fourcc_t fourcc) |
static unsigned | aout_FormatNbChannels (const audio_sample_format_t *fmt) |
unsigned int | aout_BitsPerSample (vlc_fourcc_t i_format) |
void | aout_FormatPrepare (audio_sample_format_t *p_format) |
void | aout_FormatPrint (vlc_object_t *, const char *, const audio_sample_format_t *) |
Prints an audio sample format in a human-readable form. More... | |
const char * | aout_FormatPrintChannels (const audio_sample_format_t *) |
Variables | |
static const uint32_t | pi_vlc_chan_order_wg4 [] |
It describes the audio channel order VLC expect. More... | |
#define aout_FormatPrint | ( | o, | |
t, | |||
f | |||
) | aout_FormatPrint(VLC_OBJECT(o), t, f) |
unsigned int aout_BitsPerSample | ( | vlc_fourcc_t | i_format | ) |
References AUDIO_ES, VLC_CODEC_ALAW, VLC_CODEC_F32B, VLC_CODEC_F32L, VLC_CODEC_F64B, VLC_CODEC_F64L, VLC_CODEC_MULAW, VLC_CODEC_S16B, VLC_CODEC_S16L, VLC_CODEC_S24B, VLC_CODEC_S24B32, VLC_CODEC_S24L, VLC_CODEC_S24L32, VLC_CODEC_S32B, VLC_CODEC_S32L, VLC_CODEC_S8, VLC_CODEC_U16B, VLC_CODEC_U16L, VLC_CODEC_U24B, VLC_CODEC_U24L, VLC_CODEC_U32B, VLC_CODEC_U32L, VLC_CODEC_U8, and vlc_fourcc_GetCodec().
Referenced by aout_ChannelReorder(), aout_FormatPrepare(), and EsOutUpdateInfo().
void aout_ChannelExtract | ( | void * | p_dst, |
int | i_dst_channels, | ||
const void * | p_src, | ||
int | i_src_channels, | ||
int | i_sample_count, | ||
const int * | pi_selection, | ||
int | i_bits_per_sample | ||
) |
Do the actual channels extraction using the parameters created by aout_CheckChannelExtraction.
XXX this function does not work in place (p_dst and p_src must not overlap). XXX Only 8, 16, 32, 64 bits per sample are supported.
References ExtractChannel().
void aout_ChannelReorder | ( | void * | , |
size_t | , | ||
uint8_t | , | ||
const uint8_t * | , | ||
vlc_fourcc_t | |||
) |
Reorders audio samples within a block of linear audio interleaved samples.
ptr | start address of the block of samples |
bytes | size of the block in bytes (must be a multiple of the product of the channels count and the sample size) |
channels | channels count (also length of the chans_table table) |
chans_table | permutation table to reorder the channels (usually computed by aout_CheckChannelReorder()) |
fourcc | sample format (must be a linear sample format) |
bool aout_CheckChannelExtraction | ( | int * | pi_selection, |
uint32_t * | pi_layout, | ||
int * | pi_channels, | ||
const uint32_t | pi_order_dst[9], | ||
const uint32_t * | pi_order_src, | ||
int | i_channels | ||
) |
This function will compute the extraction parameter into pi_selection to go from i_channels with their type given by pi_order_src[] into the order describe by pi_order_dst.
It will also set :
It will return true if channel extraction is really needed, in which case aout_ChannelExtract must be used
XXX It must be used when the source may have channel type not understood by VLC. In this case the channel type pi_order_src[] must be set to 0. XXX It must also be used if multiple channels have the same type.
References AOUT_CHAN_MAX, and pi_vlc_chan_order_wg4.
unsigned aout_CheckChannelReorder | ( | const uint32_t * | , |
const uint32_t * | , | ||
uint32_t | mask, | ||
uint8_t * | table | ||
) |
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.
void aout_Deinterleave | ( | void * | dst, |
const void * | src, | ||
unsigned | samples, | ||
unsigned | channels, | ||
vlc_fourcc_t | fourcc | ||
) |
|
inlinestatic |
References audio_format_t::i_physical_channels, and vlc_popcount.
Referenced by aout_filter_Create(), aout_FiltersNewWithClock(), aout_FormatPrepare(), aout_OutputNew(), and vlc_aout_stream_New().
void aout_FormatPrepare | ( | audio_sample_format_t * | p_format | ) |
References aout_BitsPerSample(), aout_FormatNbChannels(), audio_format_t::i_bitspersample, audio_format_t::i_bytes_per_frame, audio_format_t::i_channels, audio_format_t::i_format, and audio_format_t::i_frame_length.
Referenced by aout_FiltersNewWithClock(), aout_FiltersPipelineCreate(), aout_OutputNew(), aout_SetWavePhysicalChannels(), aout_UpdateStereoMode(), ModuleThread_UpdateAudioFormat(), rtp_g722_init(), rtp_g726_init(), rtp_pcm_init(), and TryFormat().
void aout_FormatPrint | ( | vlc_object_t * | obj, |
const char * | psz_text, | ||
const audio_sample_format_t * | p_format | ||
) |
Prints an audio sample format in a human-readable form.
References aout_FormatPrintChannels(), audio_format_t::i_bytes_per_frame, audio_format_t::i_format, audio_format_t::i_frame_length, audio_format_t::i_rate, and msg_Dbg.
const char * aout_FormatPrintChannels | ( | const audio_sample_format_t * | p_format | ) |
References AOUT_CHAN_CENTER, AOUT_CHAN_LEFT, AOUT_CHAN_LFE, AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT, AOUT_CHAN_REARCENTER, AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT, AOUT_CHAN_RIGHT, AOUT_CHANMODE_DOLBYSTEREO, AOUT_CHANMODE_DUALMONO, AUDIO_CHANNEL_TYPE_AMBISONICS, audio_format_t::channel_type, audio_format_t::i_chan_mode, and audio_format_t::i_physical_channels.
Referenced by aout_AddMixModeChoice(), aout_FormatPrint(), aout_FormatsPrint(), and EsOutUpdateInfo().
void aout_Interleave | ( | void * | dst, |
const void *const * | planes, | ||
unsigned | samples, | ||
unsigned | channels, | ||
vlc_fourcc_t | fourcc | ||
) |
|
static |
It describes the audio channel order VLC expect.
Referenced by aout_CheckChannelExtraction(), and aout_CheckChannelReorder().