|
VLC
2.1.0-git
|

Functions | |
| int | aout_DecNew (audio_output_t *p_aout, const audio_sample_format_t *p_format, const audio_replay_gain_t *p_replay_gain, const aout_request_vout_t *p_request_vout) |
| Creates an audio output. | |
| void | aout_DecDelete (audio_output_t *aout) |
| Stops all plugins involved in the audio output. | |
| static int | aout_CheckReady (audio_output_t *aout) |
| void | aout_RequestRestart (audio_output_t *aout, unsigned mode) |
| Marks the audio output for restart, to update any parameter of the output plug-in (e.g. | |
| block_t * | aout_DecNewBuffer (audio_output_t *aout, size_t samples) |
| void | aout_DecDeleteBuffer (audio_output_t *aout, block_t *block) |
| static void | aout_StopResampling (audio_output_t *aout) |
| static void | aout_DecSilence (audio_output_t *aout, mtime_t length, mtime_t pts) |
| static void | aout_DecSynchronize (audio_output_t *aout, mtime_t dec_pts, int input_rate) |
| int | aout_DecPlay (audio_output_t *aout, block_t *block, int input_rate) |
| int | aout_DecGetResetLost (audio_output_t *aout) |
| void | aout_DecChangePause (audio_output_t *aout, bool paused, mtime_t date) |
| void | aout_DecFlush (audio_output_t *aout) |
| bool | aout_DecIsEmpty (audio_output_t *aout) |
|
static |
References aout_FiltersDelete(), aout_FiltersNew(), aout_OutputDelete(), aout_OutputNew(), aout_owner(), AOUT_RESAMPLING_NONE, AOUT_RESTART_OUTPUT, aout_volume_SetFormat(), aout_owner_t::end, audio_format_t::i_format, aout_owner_t::input_format, aout_owner_t::mixer_format, msg_Dbg, aout_owner_t::request_vout, aout_owner_t::resamp_type, aout_owner_t::restart, aout_owner_t::sync, unlikely, VLC_TS_INVALID, and aout_owner_t::volume.
Referenced by aout_DecPlay().
| void aout_DecChangePause | ( | audio_output_t * | aout, |
| bool | paused, | ||
| mtime_t | date | ||
| ) |
References aout_OutputLock(), aout_OutputPause(), aout_OutputUnlock(), aout_owner(), aout_owner_t::end, audio_format_t::i_format, aout_owner_t::mixer_format, aout_owner_t::sync, and VLC_TS_INVALID.
Referenced by aout_new_buffer(), and DecoderOutputChangePause().
| void aout_DecDelete | ( | audio_output_t * | aout | ) |
Stops all plugins involved in the audio output.
References aout_FiltersDelete(), aout_OutputDelete(), aout_OutputLock(), aout_OutputUnlock(), aout_owner(), aout_volume_Delete(), audio_format_t::i_format, aout_owner_t::mixer_format, var_Destroy, and aout_owner_t::volume.
Referenced by aout_new_buffer(), and DeleteDecoder().
| void aout_DecDeleteBuffer | ( | audio_output_t * | aout, |
| block_t * | block | ||
| ) |
References block_Release().
Referenced by DecoderDecodeAudio().
| void aout_DecFlush | ( | audio_output_t * | aout | ) |
References aout_OutputFlush(), aout_OutputLock(), aout_OutputUnlock(), aout_owner(), aout_owner_t::end, audio_format_t::i_format, aout_owner_t::mixer_format, aout_owner_t::sync, and VLC_TS_INVALID.
Referenced by DecoderDecodeAudio(), DecoderProcessAudio(), and DeleteDecoder().
| int aout_DecGetResetLost | ( | audio_output_t * | aout | ) |
References aout_owner(), and aout_owner_t::buffers_lost.
Referenced by DecoderPlayAudio().
| bool aout_DecIsEmpty | ( | audio_output_t * | aout | ) |
References aout_OutputFlush(), aout_OutputLock(), aout_OutputUnlock(), aout_owner(), aout_owner_t::end, audio_format_t::i_format, mdate(), aout_owner_t::mixer_format, aout_owner_t::sync, and VLC_TS_INVALID.
Referenced by input_DecoderIsEmpty().
| int aout_DecNew | ( | audio_output_t * | p_aout, |
| const audio_sample_format_t * | p_format, | ||
| const audio_replay_gain_t * | p_replay_gain, | ||
| const aout_request_vout_t * | p_request_vout | ||
| ) |
Creates an audio output.
References aout_FiltersNew(), aout_FormatNbChannels(), aout_OutputDelete(), aout_OutputLock(), aout_OutputNew(), aout_OutputUnlock(), aout_owner(), AOUT_RESAMPLING_NONE, aout_volume_Delete(), aout_volume_New, aout_volume_SetFormat(), atomic_init, aout_owner_t::buffers_lost, aout_owner_t::discontinuity, aout_owner_t::end, audio_format_t::i_channels, audio_format_t::i_format, audio_format_t::i_rate, aout_owner_t::input_format, aout_owner_t::mixer_format, msg_Err, aout_owner_t::resamp_type, aout_owner_t::restart, aout_owner_t::sync, var_Destroy, VLC_TS_INVALID, and aout_owner_t::volume.
Referenced by aout_new_buffer().
| block_t* aout_DecNewBuffer | ( | audio_output_t * | aout, |
| size_t | samples | ||
| ) |
References aout_owner(), block_Alloc(), audio_format_t::i_bytes_per_frame, audio_format_t::i_frame_length, block_t::i_length, block_t::i_nb_samples, block_t::i_pts, aout_owner_t::input_format, and likely.
Referenced by aout_new_buffer().
| int aout_DecPlay | ( | audio_output_t * | aout, |
| block_t * | block, | ||
| int | input_rate | ||
| ) |
References aout_CheckReady(), aout_DecSynchronize(), aout_FiltersPlay(), AOUT_MAX_ADVANCE_TIME, AOUT_MAX_INPUT_RATE, AOUT_MAX_PTS_DELAY, aout_OutputLock(), aout_OutputPlay(), aout_OutputUnlock(), aout_owner(), aout_volume_Amplify(), BLOCK_FLAG_DISCONTINUITY, block_Release(), aout_owner_t::buffers_lost, CLOCK_FREQ, aout_owner_t::discontinuity, aout_owner_t::end, block_t::i_flags, block_t::i_length, block_t::i_nb_samples, block_t::i_pts, audio_format_t::i_rate, aout_owner_t::input_format, INPUT_RATE_DEFAULT, mdate(), msg_Err, msg_Warn, aout_owner_t::sync, unlikely, VLC_TS_0, and aout_owner_t::volume.
Referenced by DecoderPlayAudio().
|
static |
References AOUT_FMT_SPDIF, aout_OutputPlay(), aout_owner(), block_Alloc(), CLOCK_FREQ, block_t::i_buffer, audio_format_t::i_bytes_per_frame, block_t::i_dts, block_t::i_length, block_t::i_nb_samples, block_t::i_pts, audio_format_t::i_rate, aout_owner_t::mixer_format, msg_Dbg, block_t::p_buffer, and unlikely.
Referenced by aout_DecSynchronize().
|
static |
Depending on the drift between the actual and intended playback times, the audio core may ignore the drift, trigger upsampling or downsampling, insert silence or even discard samples. Future VLC versions may instead adjust the input rate.
The audio output plugin is responsible for estimating its actual playback time, or rather the estimated time when the next sample will be played. (The actual playback time is always the current time, that is to say mdate(). It is not an useful statistic.)
Most audio output plugins can estimate the delay until playback of the next sample to be written to the buffer, or equally the time until all samples in the buffer will have been played. Then: pts = mdate() + delay
References aout_DecSilence(), aout_FiltersAdjustResampling(), AOUT_MAX_PTS_ADVANCE, AOUT_MAX_PTS_DELAY, aout_OutputFlush(), aout_OutputTimeGet(), aout_owner(), AOUT_RESAMPLING_DOWN, AOUT_RESAMPLING_NONE, AOUT_RESAMPLING_UP, aout_StopResampling(), aout_owner_t::discontinuity, aout_owner_t::end, INPUT_RATE_DEFAULT, mdate(), msg_Dbg, msg_Warn, aout_owner_t::resamp_start_drift, aout_owner_t::resamp_type, aout_owner_t::sync, and VLC_TS_INVALID.
Referenced by aout_DecPlay().
| void aout_RequestRestart | ( | audio_output_t * | aout, |
| unsigned | mode | ||
| ) |
Marks the audio output for restart, to update any parameter of the output plug-in (e.g.
output device or channel mapping).
References aout_owner(), msg_Dbg, and aout_owner_t::restart.
Referenced by aout_InputRequestRestart(), and aout_RestartNotify().
|
static |
References aout_FiltersAdjustResampling(), aout_owner(), AOUT_RESAMPLING_NONE, aout_owner_t::resamp_type, and aout_owner_t::sync.
Referenced by aout_DecSynchronize().
1.8.1.2