VLC 4.0.0-dev
|
Go to the source code of this file.
Data Structures | |
struct | vlc_input_decoder_callbacks |
struct | vlc_input_decoder_cfg |
struct | vlc_input_decoder_status |
Functions | |
vlc_input_decoder_t * | vlc_input_decoder_New (vlc_object_t *parent, const struct vlc_input_decoder_cfg *cfg) |
Spawns a new decoder thread from the input thread. More... | |
void | vlc_input_decoder_ChangePause (vlc_input_decoder_t *, bool b_paused, vlc_tick_t i_date) |
This function changes the pause state. More... | |
void | vlc_input_decoder_ChangeRate (vlc_input_decoder_t *dec, float rate) |
Changes the decoder rate. More... | |
void | vlc_input_decoder_StartWait (vlc_input_decoder_t *) |
This function makes the decoder start waiting for a valid data block from its fifo. More... | |
void | vlc_input_decoder_Wait (vlc_input_decoder_t *) |
This function waits for the decoder to actually receive data. More... | |
void | vlc_input_decoder_StopWait (vlc_input_decoder_t *) |
This function exits the waiting mode of the decoder. More... | |
bool | vlc_input_decoder_IsEmpty (vlc_input_decoder_t *) |
This function returns true if the decoder fifo is empty and false otherwise. More... | |
int | vlc_input_decoder_SetCcState (vlc_input_decoder_t *, vlc_fourcc_t, int i_channel, bool b_decode) |
This function activates the request closed caption channel. More... | |
int | vlc_input_decoder_GetCcState (vlc_input_decoder_t *, vlc_fourcc_t, int i_channel, bool *pb_decode) |
This function returns an error if the requested channel does not exist and set pb_decode to the channel status(active or not) otherwise. More... | |
void | vlc_input_decoder_GetCcDesc (vlc_input_decoder_t *, decoder_cc_desc_t *) |
This function get cc channels descriptions. More... | |
void | vlc_input_decoder_FrameNext (vlc_input_decoder_t *p_dec) |
This function forces the display of the next picture. More... | |
void | vlc_input_decoder_GetStatus (vlc_input_decoder_t *p_dec, struct vlc_input_decoder_status *status) |
Get the last status of the decoder. More... | |
size_t | vlc_input_decoder_GetFifoSize (vlc_input_decoder_t *p_dec) |
This function returns the current size in bytes of the decoder fifo. More... | |
int | vlc_input_decoder_GetVbiPage (vlc_input_decoder_t *, bool *opaque) |
int | vlc_input_decoder_SetVbiPage (vlc_input_decoder_t *, unsigned page) |
int | vlc_input_decoder_SetVbiOpaque (vlc_input_decoder_t *, bool opaque) |
void | vlc_input_decoder_SetVoutMouseEvent (vlc_input_decoder_t *, vlc_mouse_event, void *) |
int | vlc_input_decoder_AddVoutOverlay (vlc_input_decoder_t *, subpicture_t *, size_t *) |
int | vlc_input_decoder_DelVoutOverlay (vlc_input_decoder_t *, size_t) |
int vlc_input_decoder_AddVoutOverlay | ( | vlc_input_decoder_t * | owner, |
subpicture_t * | sub, | ||
size_t * | channel | ||
) |
References subpicture_t::b_ephemer, vlc_input_decoder_t::dec, decoder_t::fmt_in, es_format_t::i_cat, subpicture_t::i_channel, subpicture_t::i_order, subpicture_t::i_start, subpicture_t::i_stop, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_vout, VIDEO_ES, VLC_EGENERIC, vlc_fifo_Lock(), vlc_fifo_Unlock(), VLC_SUCCESS, vlc_tick_now(), vout_PutSubpicture(), and vout_RegisterSubpictureChannel().
Referenced by EsOutVaControlLocked().
void vlc_input_decoder_ChangePause | ( | vlc_input_decoder_t * | p_owner, |
bool | b_paused, | ||
vlc_tick_t | i_date | ||
) |
This function changes the pause state.
The date parameter MUST hold the exact date at which the change has been done for proper vout/aout pausing.
References vlc_input_decoder_t::frames_countdown, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::pause_date, vlc_input_decoder_t::paused, vlc_fifo_Lock(), vlc_fifo_Signal(), and vlc_fifo_Unlock().
Referenced by EsOutCreateDecoder(), and EsOutDecodersChangePause().
void vlc_input_decoder_ChangeRate | ( | vlc_input_decoder_t * | dec, |
float | rate | ||
) |
Changes the decoder rate.
This function changes rate of the intended playback speed to nominal speed.
dec | decoder |
rate | playback rate (default is 1) |
References vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::rate, vlc_fifo_Lock(), and vlc_fifo_Unlock().
Referenced by EsOutChangeRate(), and EsOutCreateDecoder().
int vlc_input_decoder_DelVoutOverlay | ( | vlc_input_decoder_t * | owner, |
size_t | channel | ||
) |
void vlc_input_decoder_FrameNext | ( | vlc_input_decoder_t * | p_dec | ) |
This function forces the display of the next picture.
References vlc_input_decoder_t::dec, decoder_t::fmt_in, vlc_input_decoder_t::frames_countdown, es_format_t::i_cat, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_vout, vlc_input_decoder_t::paused, VIDEO_ES, vlc_fifo_Lock(), vlc_fifo_Signal(), vlc_fifo_Unlock(), and vout_NextPicture().
Referenced by EsOutFrameNext().
void vlc_input_decoder_GetCcDesc | ( | vlc_input_decoder_t * | , |
decoder_cc_desc_t * | |||
) |
This function get cc channels descriptions.
int vlc_input_decoder_GetCcState | ( | vlc_input_decoder_t * | p_owner, |
vlc_fourcc_t | codec, | ||
int | i_channel, | ||
bool * | pb_decode | ||
) |
This function returns an error if the requested channel does not exist and set pb_decode to the channel status(active or not) otherwise.
References vlc_input_decoder_t::cc, vlc_input_decoder_t::lock, vlc_input_decoder_t::pp_decoder, VLC_EGENERIC, vlc_input_decoder_HasCCChanFlag(), vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.
Referenced by EsIsSelected().
size_t vlc_input_decoder_GetFifoSize | ( | vlc_input_decoder_t * | p_dec | ) |
This function returns the current size in bytes of the decoder fifo.
References block_FifoSize, and vlc_input_decoder_t::p_fifo.
Referenced by EsOutIsExtraBufferingAllowed().
void vlc_input_decoder_GetStatus | ( | vlc_input_decoder_t * | p_dec, |
struct vlc_input_decoder_status * | status | ||
) |
Get the last status of the decoder.
References vlc_input_decoder_t::b_fmt_description, vlc_input_decoder_t::cc, vlc_input_decoder_status::cc, vlc_input_decoder_status::changed, vlc_input_decoder_t::desc, vlc_input_decoder_status::desc, es_format_Copy(), vlc_input_decoder_t::fmt, vlc_input_decoder_status::fmt, vlc_input_decoder_status::format, es_format_t::i_cat, vlc_input_decoder_status::meta, vlc_input_decoder_t::p_description, vlc_input_decoder_t::p_fifo, UNKNOWN_ES, vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_meta_Merge(), and vlc_meta_New().
Referenced by EsOutSend().
int vlc_input_decoder_GetVbiPage | ( | vlc_input_decoder_t * | owner, |
bool * | opaque | ||
) |
References vlc_input_decoder_t::dec, DecoderHasVbi(), var_GetBool(), and var_GetInteger().
Referenced by EsOutSelectEs().
bool vlc_input_decoder_IsEmpty | ( | vlc_input_decoder_t * | p_owner | ) |
This function returns true if the decoder fifo is empty and false otherwise.
References AUDIO_ES, vlc_input_decoder_t::b_draining, vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::fmt, es_format_t::i_cat, vlc_input_decoder_t::p_astream, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, VIDEO_ES, vlc_aout_stream_IsDrained(), vlc_fifo_IsEmpty(), vlc_fifo_Lock(), vlc_fifo_Unlock(), and vout_IsEmpty().
Referenced by EsOutDecodersIsEmpty(), EsOutDrainDecoder(), and EsOutVaPrivControlLocked().
vlc_input_decoder_t * vlc_input_decoder_New | ( | vlc_object_t * | parent, |
const struct vlc_input_decoder_cfg * | cfg | ||
) |
Spawns a new decoder thread from the input thread.
p_input | the input thread |
p_es | the es descriptor |
References decoder_New().
Referenced by EsOutCreateDecoder(), EsOutSetRecord(), and vlc_input_decoder_SetCcState().
int vlc_input_decoder_SetCcState | ( | vlc_input_decoder_t * | p_owner, |
vlc_fourcc_t | codec, | ||
int | i_channel, | ||
bool | b_decode | ||
) |
This function activates the request closed caption channel.
References _, subs_format_t::cc, vlc_input_decoder_t::cc, vlc_input_decoder_t::dec, DecoderUnsupportedCodec(), vlc_input_decoder_t::desc, es_format_Init(), vlc_input_decoder_cfg::fmt, subs_format_t::i_channel, decoder_cc_desc_t::i_reorder_depth, subs_format_t::i_reorder_depth, INPUT_TYPE_NONE, vlc_input_decoder_t::lock, msg_Err, vlc_input_decoder_t::p_clock, decoder_t::p_module, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_sout, vlc_input_decoder_t::pp_decoder, vlc_input_decoder_t::psz_id, SPU_ES, es_format_t::subs, vlc_dialog_display_error, VLC_EGENERIC, vlc_input_decoder_Delete(), vlc_input_decoder_Flush(), vlc_input_decoder_HasCCChanFlag(), vlc_input_decoder_New(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, and VLC_SUCCESS.
Referenced by EsOutSelectEs(), EsOutUnselectEs(), and vlc_input_decoder_Delete().
int vlc_input_decoder_SetVbiOpaque | ( | vlc_input_decoder_t * | owner, |
bool | opaque | ||
) |
References vlc_input_decoder_t::dec, DecoderHasVbi(), var_SetBool(), and VLC_EGENERIC.
Referenced by EsOutVaPrivControlLocked().
int vlc_input_decoder_SetVbiPage | ( | vlc_input_decoder_t * | owner, |
unsigned | page | ||
) |
References vlc_input_decoder_t::dec, DecoderHasVbi(), var_SetInteger(), and VLC_EGENERIC.
Referenced by EsOutVaPrivControlLocked().
void vlc_input_decoder_SetVoutMouseEvent | ( | vlc_input_decoder_t * | owner, |
vlc_mouse_event | mouse_event, | ||
void * | user_data | ||
) |
void vlc_input_decoder_StartWait | ( | vlc_input_decoder_t * | p_owner | ) |
This function makes the decoder start waiting for a valid data block from its fifo.
References vlc_input_decoder_t::b_first, vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::p_fifo, vlc_cond_signal(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_input_decoder_IsSynchronous(), and vlc_input_decoder_t::wait_request.
Referenced by EsOutChangePosition(), EsOutCreateDecoder(), and EsOutSetRecord().
void vlc_input_decoder_StopWait | ( | vlc_input_decoder_t * | p_owner | ) |
This function exits the waiting mode of the decoder.
References vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::p_fifo, vlc_cond_signal(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_input_decoder_IsSynchronous(), and vlc_input_decoder_t::wait_request.
Referenced by EsOutDecodersStopBuffering().
void vlc_input_decoder_Wait | ( | vlc_input_decoder_t * | p_owner | ) |
This function waits for the decoder to actually receive data.
References vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_idle, vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::dec, msg_Err, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::paused, vlc_fifo_IsEmpty(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_fifo_WaitCond(), vlc_input_decoder_IsSynchronous(), and vlc_input_decoder_t::wait_acknowledge.
Referenced by EsOutDecodersStopBuffering().