VLC
4.0.0-dev
|
Data Structures | |
struct | vlc_input_decoder_t |
Macros | |
#define | PREROLL_NONE INT64_MIN |
#define | PREROLL_FORCED INT64_MAX |
#define | MAX_CC_DECODERS 64 /* The es_out only creates one type of es */ |
#define | DECODER_BOGUS_VIDEO_DELAY ((vlc_tick_t)(DEFAULT_PTS_DELAY * 30)) |
#define | DECODER_SPU_VOUT_WAIT_DURATION VLC_TICK_FROM_MS(200) |
#define | BLOCK_FLAG_CORE_PRIVATE_RELOADED (1 << BLOCK_FLAG_CORE_PRIVATE_SHIFT) |
#define | decoder_Notify(decoder_priv, event, ...) |
Enumerations | |
enum | reload { RELOAD_NO_REQUEST, RELOAD_DECODER, RELOAD_DECODER_AOUT } |
Functions | |
static vlc_input_decoder_t * | dec_get_owner (decoder_t *p_dec) |
static int | LoadDecoder (decoder_t *p_dec, bool b_packetizer, const es_format_t *restrict p_fmt) |
Load a decoder module. More... | |
static int | DecoderThread_Reload (vlc_input_decoder_t *p_owner, const es_format_t *restrict p_fmt, enum reload reload) |
static void | DecoderUpdateFormatLocked (vlc_input_decoder_t *p_owner) |
static void | MouseEvent (const vlc_mouse_t *newmouse, void *user_data) |
static bool | aout_replaygain_changed (const audio_replay_gain_t *a, const audio_replay_gain_t *b) |
static int | ModuleThread_UpdateAudioFormat (decoder_t *p_dec) |
static int | CreateVoutIfNeeded (vlc_input_decoder_t *, vout_thread_t **, enum vlc_vout_order *, vlc_decoder_device **) |
static int | ModuleThread_UpdateVideoFormat (decoder_t *p_dec, vlc_video_context *vctx) |
static vlc_decoder_device * | ModuleThread_GetDecoderDevice (decoder_t *p_dec) |
static picture_t * | ModuleThread_NewVideoBuffer (decoder_t *p_dec) |
static subpicture_t * | ModuleThread_NewSpuBuffer (decoder_t *p_dec, const subpicture_updater_t *p_updater) |
static int | InputThread_GetInputAttachments (decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment) |
static vlc_tick_t | ModuleThread_GetDisplayDate (decoder_t *p_dec, vlc_tick_t system_now, vlc_tick_t i_ts) |
static float | ModuleThread_GetDisplayRate (decoder_t *p_dec) |
block_t * | decoder_NewAudioBuffer (decoder_t *dec, int samples) |
This function will return a new audio buffer usable by a decoder as an output buffer. More... | |
static void | RequestReload (vlc_input_decoder_t *p_owner) |
static void | DecoderThread_AbortPictures (decoder_t *p_dec, bool b_abort) |
static void | DecoderWaitUnblock (vlc_input_decoder_t *p_owner) |
static void | DecoderUpdatePreroll (vlc_tick_t *pi_preroll, const block_t *p) |
static void | DecoderPlayCc (vlc_input_decoder_t *p_owner, block_t *p_cc, const decoder_cc_desc_t *p_desc) |
static void | PacketizerGetCc (vlc_input_decoder_t *p_owner, decoder_t *p_dec_cc) |
static void | ModuleThread_QueueCc (decoder_t *p_videodec, block_t *p_cc, const decoder_cc_desc_t *p_desc) |
static int | ModuleThread_PlayVideo (vlc_input_decoder_t *p_owner, picture_t *p_picture) |
static void | ModuleThread_UpdateStatVideo (vlc_input_decoder_t *p_owner, bool lost) |
static void | ModuleThread_QueueVideo (decoder_t *p_dec, picture_t *p_pic) |
static vlc_decoder_device * | thumbnailer_get_device (decoder_t *p_dec) |
static picture_t * | thumbnailer_buffer_new (decoder_t *p_dec) |
static void | ModuleThread_QueueThumbnail (decoder_t *p_dec, picture_t *p_pic) |
static int | ModuleThread_PlayAudio (vlc_input_decoder_t *p_owner, block_t *p_audio) |
static void | ModuleThread_UpdateStatAudio (vlc_input_decoder_t *p_owner, bool lost) |
static void | ModuleThread_QueueAudio (decoder_t *p_dec, block_t *p_aout_buf) |
static void | ModuleThread_PlaySpu (vlc_input_decoder_t *p_owner, subpicture_t *p_subpic) |
static void | ModuleThread_QueueSpu (decoder_t *p_dec, subpicture_t *p_spu) |
static void | DecoderThread_ProcessInput (vlc_input_decoder_t *p_owner, block_t *p_block) |
Decode a block. More... | |
static void | DecoderThread_DecodeBlock (vlc_input_decoder_t *p_owner, block_t *p_block) |
static void | DecoderThread_Flush (vlc_input_decoder_t *p_owner) |
static void | DecoderThread_ChangePause (vlc_input_decoder_t *p_owner, bool paused, vlc_tick_t date) |
static void | DecoderThread_ChangeRate (vlc_input_decoder_t *p_owner, float rate) |
static void | DecoderThread_ChangeDelay (vlc_input_decoder_t *p_owner, vlc_tick_t delay) |
static void * | DecoderThread (void *p_data) |
The decoding main loop. More... | |
static vlc_input_decoder_t * | CreateDecoder (vlc_object_t *p_parent, const es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *p_resource, sout_instance_t *p_sout, bool b_thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *cbs_userdata) |
Create a decoder object. More... | |
static void | DeleteDecoder (vlc_input_decoder_t *p_owner) |
Destroys a decoder object. More... | |
static void | DecoderUnsupportedCodec (decoder_t *p_dec, const es_format_t *fmt, bool b_decoding) |
static vlc_input_decoder_t * | decoder_New (vlc_object_t *p_parent, const es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *p_resource, sout_instance_t *p_sout, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *userdata) |
vlc_input_decoder_t * | vlc_input_decoder_New (vlc_object_t *parent, es_format_t *fmt, vlc_clock_t *p_clock, input_resource_t *resource, sout_instance_t *p_sout, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *cbs_userdata) |
Spawns a new decoder thread from the input thread. More... | |
vlc_input_decoder_t * | vlc_input_decoder_Create (vlc_object_t *p_parent, const es_format_t *fmt, input_resource_t *p_resource) |
Spawn a decoder thread outside of the input thread. More... | |
void | vlc_input_decoder_Delete (vlc_input_decoder_t *p_owner) |
Kills a decoder thread and waits until it's finished. More... | |
void | vlc_input_decoder_Decode (vlc_input_decoder_t *p_owner, block_t *p_block, bool b_do_pace) |
Put a block_t in the decoder's fifo. More... | |
bool | vlc_input_decoder_IsEmpty (vlc_input_decoder_t *p_owner) |
This function returns true if the decoder fifo is empty and false otherwise. More... | |
void | vlc_input_decoder_Drain (vlc_input_decoder_t *p_owner) |
Signals that there are no further blocks to decode, and requests that the decoder drain all pending buffers. More... | |
void | vlc_input_decoder_Flush (vlc_input_decoder_t *p_owner) |
Requests that the decoder immediately discard all pending buffers. More... | |
void | vlc_input_decoder_GetCcDesc (vlc_input_decoder_t *p_owner, decoder_cc_desc_t *p_desc) |
This function get cc channels descriptions. More... | |
static bool | vlc_input_decoder_HasCCChanFlag (vlc_input_decoder_t *p_owner, vlc_fourcc_t codec, int i_channel) |
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. More... | |
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. More... | |
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. More... | |
void | vlc_input_decoder_ChangeRate (vlc_input_decoder_t *owner, float rate) |
Changes the decoder rate. More... | |
void | vlc_input_decoder_ChangeDelay (vlc_input_decoder_t *owner, vlc_tick_t delay) |
This function changes the delay. More... | |
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. More... | |
void | vlc_input_decoder_StopWait (vlc_input_decoder_t *p_owner) |
This function exits the waiting mode of the decoder. More... | |
void | vlc_input_decoder_Wait (vlc_input_decoder_t *p_owner) |
This function waits for the decoder to actually receive data. More... | |
void | vlc_input_decoder_FrameNext (vlc_input_decoder_t *p_owner, vlc_tick_t *pi_duration) |
This function force the display of the next picture and fills the stream time consumed. More... | |
bool | vlc_input_decoder_HasFormatChanged (vlc_input_decoder_t *p_owner, es_format_t *p_fmt, vlc_meta_t **pp_meta) |
This function will return true if the ES format or meta data have changed since the last call. More... | |
size_t | vlc_input_decoder_GetFifoSize (vlc_input_decoder_t *p_owner) |
This function returns the current size in bytes of the decoder fifo. More... | |
static bool | DecoderHasVbi (decoder_t *dec) |
int | vlc_input_decoder_GetVbiPage (vlc_input_decoder_t *owner, bool *opaque) |
int | vlc_input_decoder_SetVbiPage (vlc_input_decoder_t *owner, unsigned page) |
int | vlc_input_decoder_SetVbiOpaque (vlc_input_decoder_t *owner, bool opaque) |
void | vlc_input_decoder_SetVoutMouseEvent (vlc_input_decoder_t *owner, vlc_mouse_event mouse_event, void *user_data) |
int | vlc_input_decoder_AddVoutOverlay (vlc_input_decoder_t *owner, subpicture_t *sub, size_t *channel) |
int | vlc_input_decoder_DelVoutOverlay (vlc_input_decoder_t *owner, size_t channel) |
int | vlc_input_decoder_SetSpuHighlight (vlc_input_decoder_t *p_owner, const vlc_spu_highlight_t *spu_hl) |
Variables | |
static const struct decoder_owner_callbacks | dec_video_cbs |
static const struct decoder_owner_callbacks | dec_thumbnailer_cbs |
static const struct decoder_owner_callbacks | dec_audio_cbs |
static const struct decoder_owner_callbacks | dec_spu_cbs |
#define BLOCK_FLAG_CORE_PRIVATE_RELOADED (1 << BLOCK_FLAG_CORE_PRIVATE_SHIFT) |
Referenced by DecoderThread_DecodeBlock(), and DecoderThread_ProcessInput().
#define DECODER_BOGUS_VIDEO_DELAY ((vlc_tick_t)(DEFAULT_PTS_DELAY * 30)) |
#define decoder_Notify | ( | decoder_priv, | |
event, | |||
... | |||
) |
Referenced by DeleteDecoder(), ModuleThread_NewSpuBuffer(), ModuleThread_QueueThumbnail(), ModuleThread_UpdateStatAudio(), ModuleThread_UpdateStatVideo(), and ModuleThread_UpdateVideoFormat().
#define DECODER_SPU_VOUT_WAIT_DURATION VLC_TICK_FROM_MS(200) |
Referenced by ModuleThread_NewSpuBuffer().
#define MAX_CC_DECODERS 64 /* The es_out only creates one type of es */ |
Referenced by CreateDecoder(), DecoderThread_Flush(), and vlc_input_decoder_Delete().
#define PREROLL_FORCED INT64_MAX |
Referenced by DecoderUpdatePreroll().
#define PREROLL_NONE INT64_MIN |
Referenced by CreateDecoder(), DecoderThread_Flush(), ModuleThread_PlayAudio(), and ModuleThread_PlayVideo().
enum reload |
|
static |
References AUDIO_REPLAY_GAIN_MAX, audio_replay_gain_t::pb_gain, and audio_replay_gain_t::pb_peak.
Referenced by ModuleThread_UpdateAudioFormat().
|
static |
Create a decoder object.
p_input | the input thread |
p_es | the es descriptor |
b_packetizer | instead of a decoder |
References AUDIO_ES, es_format_t::audio_replay_gain, AUDIO_REPLAY_GAIN_MAX, vlc_input_decoder_t::b_draining, vlc_input_decoder_t::b_first, vlc_input_decoder_t::b_fmt_description, vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_idle, es_format_t::b_packetized, vlc_input_decoder_t::b_sout_created, vlc_input_decoder_t::b_supported, vlc_input_decoder_t::b_waiting, block_FifoNew(), vlc_input_decoder_t::cbs, decoder_t::cbs, vlc_input_decoder_t::cbs_userdata, vlc_input_decoder_t::cc, vlc_input_decoder_t::dec, dec_audio_cbs, dec_spu_cbs, dec_thumbnailer_cbs, dec_video_cbs, vlc_input_decoder_t::delay, vlc_input_decoder_t::desc, vlc_input_decoder_t::drained, vlc_input_decoder_t::error, es_format_Init(), vlc_input_decoder_t::flushing, vlc_input_decoder_t::fmt, decoder_t::fmt_in, decoder_t::fmt_out, vlc_input_decoder_t::frames_countdown, decoder_cc_desc_t::i_608_channels, decoder_cc_desc_t::i_708_channels, es_format_t::i_cat, vlc_input_decoder_t::i_preroll_end, vlc_input_decoder_t::i_spu_channel, vlc_input_decoder_t::i_spu_order, LoadDecoder(), vlc_input_decoder_t::lock, MAX_CC_DECODERS, vlc_input_decoder_t::mouse_event, vlc_input_decoder_t::mouse_lock, vlc_input_decoder_t::mouse_opaque, msg_Err, vlc_input_decoder_t::output_rate, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_clock, vlc_input_decoder_t::p_description, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_packetizer, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_sout, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, vlc_input_decoder_t::pause_date, vlc_input_decoder_t::paused, audio_replay_gain_t::pb_gain, audio_replay_gain_t::pb_peak, audio_replay_gain_t::pf_gain, audio_replay_gain_t::pf_peak, vlc_input_decoder_t::pp_decoder, PREROLL_NONE, vlc_input_decoder_t::reload, RELOAD_NO_REQUEST, vlc_input_decoder_t::request_rate, vlc_input_decoder_t::reset_out_state, SPU_ES, static_assert, unlikely, VIDEO_ES, vlc_cond_init(), vlc_custom_create, vlc_mutex_init(), vlc_object_delete, VLC_TICK_INVALID, VOUT_SPU_CHANNEL_INVALID, vlc_input_decoder_t::vout_thread_started, vlc_input_decoder_t::wait_acknowledge, vlc_input_decoder_t::wait_fifo, and vlc_input_decoder_t::wait_request.
Referenced by decoder_New().
|
static |
References vlc_input_decoder_t::dec, DecoderUpdateFormatLocked(), vlc_input_decoder_t::fmt, decoder_t::fmt_out, video_format_t::i_chroma, es_format_t::i_codec, video_format_t::i_height, video_format_t::i_sar_den, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, video_format_t::i_x_offset, video_format_t::i_y_offset, input_resource_GetVoutDecoderDevice(), vlc_input_decoder_t::lock, msg_Dbg, msg_Err, video_format_t::multiview_mode, video_format_t::orientation, vlc_input_decoder_t::out_pool, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_vout, picture_pool_Release(), vlc_input_decoder_t::reset_out_state, es_format_t::video, vlc_decoder_device_Release(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_input_decoder_t::vout_order.
Referenced by ModuleThread_GetDecoderDevice(), ModuleThread_UpdateAudioFormat(), and ModuleThread_UpdateVideoFormat().
|
inlinestatic |
References container_of, and vlc_input_decoder_t::dec.
Referenced by DecoderThread_AbortPictures(), InputThread_GetInputAttachments(), ModuleThread_GetDecoderDevice(), ModuleThread_GetDisplayDate(), ModuleThread_GetDisplayRate(), ModuleThread_NewSpuBuffer(), ModuleThread_NewVideoBuffer(), ModuleThread_QueueAudio(), ModuleThread_QueueCc(), ModuleThread_QueueSpu(), ModuleThread_QueueThumbnail(), ModuleThread_QueueVideo(), ModuleThread_UpdateAudioFormat(), ModuleThread_UpdateVideoFormat(), MouseEvent(), and thumbnailer_buffer_new().
|
static |
References _, AUDIO_ES, es_format_t::b_packetized, CreateDecoder(), vlc_input_decoder_t::dec, DecoderThread(), DecoderUnsupportedCodec(), DeleteDecoder(), vlc_input_decoder_t::error, decoder_t::fmt_in, es_format_t::i_cat, es_format_t::i_codec, msg_Err, N_, decoder_t::p_module, vlc_input_decoder_t::p_sout, vlc_input_decoder_t::p_sout_input, sout_InputNew(), vlc_input_decoder_t::thread, UNKNOWN_ES, VIDEO_ES, vlc_clone(), vlc_dialog_display_error, vlc_gettext(), VLC_THREAD_PRIORITY_AUDIO, and VLC_THREAD_PRIORITY_VIDEO.
Referenced by vlc_input_decoder_Create(), and vlc_input_decoder_New().
This function will return a new audio buffer usable by a decoder as an output buffer.
It must be released with block_Release() or returned it to the caller as a decoder_QueueAudio parameter.
References es_format_t::audio, block_Alloc(), decoder_t::fmt_out, 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, and likely.
Referenced by decoder_UpdateAudioFormat().
|
static |
References decoder_t::fmt_in, es_format_t::i_cat, es_format_t::i_codec, SPU_ES, var_Type(), VLC_CODEC_TELETEXT, and VLC_VAR_INTEGER.
Referenced by vlc_input_decoder_GetVbiPage(), vlc_input_decoder_SetVbiOpaque(), and vlc_input_decoder_SetVbiPage().
|
static |
References block_Duplicate(), block_FifoPut(), block_Release(), vlc_input_decoder_t::cc, vlc_input_decoder_t::desc, decoder_cc_desc_t::i_608_channels, decoder_cc_desc_t::i_708_channels, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::pp_decoder, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ModuleThread_QueueCc(), and PacketizerGetCc().
|
static |
The decoding main loop.
p_dec | the decoder |
References vlc_input_decoder_t::aborting, aout_DecDrain(), AUDIO_ES, vlc_input_decoder_t::b_draining, vlc_input_decoder_t::b_idle, vlc_input_decoder_t::dec, DecoderThread_ChangeDelay(), DecoderThread_ChangePause(), DecoderThread_ChangeRate(), DecoderThread_Flush(), DecoderThread_ProcessInput(), vlc_input_decoder_t::delay, vlc_input_decoder_t::drained, vlc_input_decoder_t::flushing, decoder_t::fmt_out, vlc_input_decoder_t::frames_countdown, es_format_t::i_cat, likely, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::pause_date, vlc_input_decoder_t::paused, vlc_input_decoder_t::request_rate, vlc_input_decoder_t::reset_out_state, vlc_cond_signal(), vlc_fifo_DequeueUnlocked(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_fifo_Wait(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_input_decoder_t::wait_acknowledge, and vlc_input_decoder_t::wait_fifo.
Referenced by decoder_New().
|
static |
|
static |
References aout_DecChangeDelay(), AUDIO_ES, vlc_input_decoder_t::dec, decoder_t::fmt_out, es_format_t::i_cat, vlc_input_decoder_t::i_spu_channel, vlc_input_decoder_t::lock, msg_Dbg, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_vout, SPU_ES, VIDEO_ES, vlc_assert_unreachable, vlc_mutex_lock(), vlc_mutex_unlock(), vout_ChangeDelay(), vout_ChangeSpuDelay(), and VOUT_SPU_CHANNEL_INVALID.
Referenced by DecoderThread().
|
static |
References aout_DecChangePause(), AUDIO_ES, vlc_input_decoder_t::dec, decoder_t::fmt_out, es_format_t::i_cat, vlc_input_decoder_t::lock, msg_Dbg, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_vout, SPU_ES, VIDEO_ES, vlc_assert_unreachable, vlc_mutex_lock(), vlc_mutex_unlock(), and vout_ChangePause().
Referenced by DecoderThread().
|
static |
References aout_DecChangeRate(), AUDIO_ES, vlc_input_decoder_t::dec, decoder_t::fmt_out, es_format_t::i_cat, vlc_input_decoder_t::i_spu_channel, vlc_input_decoder_t::lock, msg_Dbg, vlc_input_decoder_t::output_rate, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_vout, SPU_ES, VIDEO_ES, vlc_assert_unreachable, vlc_mutex_lock(), vlc_mutex_unlock(), vout_ChangeRate(), vout_ChangeSpuRate(), and VOUT_SPU_CHANNEL_INVALID.
Referenced by DecoderThread().
|
static |
References BLOCK_FLAG_CORE_PRIVATE_RELOADED, block_Release(), vlc_input_decoder_t::dec, DecoderThread_ProcessInput(), vlc_input_decoder_t::error, block_t::i_flags, decoder_t::pf_decode, RequestReload(), unlikely, vlc_assert_unreachable, VLCDEC_ECRITICAL, VLCDEC_RELOAD, and VLCDEC_SUCCESS.
Referenced by DecoderThread_ProcessInput().
|
static |
References aout_DecFlush(), AUDIO_ES, vlc_input_decoder_t::b_supported, vlc_input_decoder_t::cc, vlc_input_decoder_t::dec, vlc_input_decoder_t::error, decoder_t::fmt_out, es_format_t::i_cat, vlc_input_decoder_t::i_preroll_end, vlc_input_decoder_t::i_spu_channel, vlc_input_decoder_t::lock, MAX_CC_DECODERS, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_packetizer, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, decoder_t::pf_flush, vlc_input_decoder_t::pp_decoder, PREROLL_NONE, sout_InputFlush(), SPU_ES, VIDEO_ES, vlc_mutex_lock(), vlc_mutex_unlock(), vout_FlushAll, vout_FlushSubpictureChannel(), VOUT_SPU_CHANNEL_INVALID, and vlc_input_decoder_t::vout_thread_started.
Referenced by DecoderThread().
|
static |
Decode a block.
p_dec | the decoder object |
p_block | the block to decode |
References block_ChainRelease(), BLOCK_FLAG_CORE_PRIVATE_RELOADED, block_Release(), vlc_input_decoder_t::dec, DecoderThread_DecodeBlock(), DecoderThread_Reload(), DecoderUpdatePreroll(), vlc_input_decoder_t::error, es_format_IsSimilar(), decoder_t::fmt_in, decoder_t::fmt_out, block_t::i_buffer, block_t::i_flags, vlc_input_decoder_t::i_preroll_end, vlc_input_decoder_t::lock, msg_Dbg, msg_Warn, block_t::p_next, vlc_input_decoder_t::p_packetizer, vlc_input_decoder_t::p_sout, PacketizerGetCc(), decoder_t::pf_get_cc, decoder_t::pf_packetize, vlc_input_decoder_t::reload, RELOAD_DECODER, RELOAD_DECODER_AOUT, RELOAD_NO_REQUEST, unlikely, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.
Referenced by DecoderThread(), DecoderThread_DecodeBlock(), and ModuleThread_QueueSpu().
|
static |
References aout_DecDelete(), AUDIO_ES, vlc_input_decoder_t::dec, decoder_Clean(), vlc_input_decoder_t::error, es_format_Clean(), es_format_Copy(), vlc_input_decoder_t::fmt, es_format_t::i_cat, input_resource_PutAout(), LoadDecoder(), vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_resource, RELOAD_DECODER_AOUT, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by DecoderThread_ProcessInput().
|
static |
References _, vlc_input_decoder_t::desc, es_format_t::i_cat, es_format_t::i_codec, msg_Err, N_, VLC_CODEC_UNKNOWN, vlc_dialog_display_error, and vlc_fourcc_GetDescription().
Referenced by decoder_New(), and vlc_input_decoder_SetCcState().
|
static |
References vlc_input_decoder_t::b_fmt_description, vlc_input_decoder_t::dec, es_format_Clean(), es_format_Copy(), vlc_input_decoder_t::fmt, decoder_t::fmt_out, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_description, decoder_t::p_description, vlc_meta_Delete(), and vlc_mutex_assert.
Referenced by CreateVoutIfNeeded(), DecoderUpdatePreroll(), ModuleThread_GetDecoderDevice(), and ModuleThread_UpdateAudioFormat().
|
inlinestatic |
References vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_sout_created, vlc_input_decoder_t::b_waiting, sout_instance_t::b_wants_substreams, block_ChainRelease(), BLOCK_FLAG_CORRUPTED, BLOCK_FLAG_DISCONTINUITY, BLOCK_FLAG_PREROLL, block_Release(), vlc_input_decoder_t::cc, subs_format_t::cc, vlc_input_decoder_t::dec, DecoderUpdateFormatLocked(), DecoderWaitUnblock(), vlc_input_decoder_t::desc, vlc_input_decoder_t::error, es_format_Clean(), es_format_Init(), vlc_input_decoder_t::fmt, decoder_t::fmt_in, block_t::i_buffer, es_format_t::i_codec, block_t::i_dts, block_t::i_flags, es_format_t::i_group, es_format_t::i_id, block_t::i_pts, decoder_cc_desc_t::i_reorder_depth, subs_format_t::i_reorder_depth, vlc_input_decoder_t::lock, msg_Err, block_t::p_next, vlc_input_decoder_t::p_sout, vlc_input_decoder_t::p_sout_input, decoder_t::pf_get_cc, decoder_t::pf_packetize, PREROLL_FORCED, es_format_t::psz_language, sout_InputNew(), sout_InputSendBuffer(), SPU_ES, strdup(), es_format_t::subs, VLC_CODEC_CEA608, vlc_cond_signal(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_INVALID, and vlc_input_decoder_t::wait_acknowledge.
Referenced by DecoderThread_ProcessInput().
|
static |
|
static |
Destroys a decoder object.
p_dec | the decoder object |
References aout_DecDelete(), AUDIO_ES, block_FifoRelease(), vlc_input_decoder_t::cc, DATA_ES, vlc_input_decoder_t::dec, decoder_Clean(), decoder_Destroy(), decoder_Notify, es_format_Clean(), vlc_input_decoder_t::fmt, decoder_t::fmt_in, es_format_t::i_cat, es_format_t::i_codec, vlc_input_decoder_t::i_spu_channel, input_resource_PutAout(), input_resource_PutVout(), msg_Dbg, vlc_input_decoder_t::out_pool, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_description, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_packetizer, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, picture_pool_Cancel(), picture_pool_Release(), sout_InputDelete(), SPU_ES, UNKNOWN_ES, vlc_input_decoder_t::vctx, VIDEO_ES, vlc_assert_unreachable, vlc_meta_Delete(), vlc_video_context_Release(), vout_Release(), VOUT_SPU_CHANNEL_INVALID, vout_StopDisplay(), vlc_input_decoder_t::vout_thread_started, and vout_UnregisterSubpictureChannel().
Referenced by decoder_New(), and vlc_input_decoder_Delete().
|
static |
|
static |
Load a decoder module.
References AUDIO_ES, decoder_t::b_frame_drop_allowed, decoder_Clean(), decoder_Init(), ES_CATEGORY_COUNT, decoder_t::fmt_in, es_format_t::i_cat, module_need_var, decoder_t::p_module, SPU_ES, and VIDEO_ES.
Referenced by CreateDecoder(), and DecoderThread_Reload().
|
static |
References CreateVoutIfNeeded(), dec_get_owner(), DecoderUpdateFormatLocked(), vlc_input_decoder_t::fmt, decoder_t::fmt_out, video_format_t::lighting, vlc_input_decoder_t::lock, video_format_t::mastering, video_format_t::MaxCLL, video_format_t::MaxFALL, msg_Dbg, var_InheritBool(), es_format_t::video, vlc_decoder_device_Release(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_input_decoder_t::vout_order.
|
static |
|
static |
|
static |
References subpicture_t::b_subtitle, dec_get_owner(), decoder_Notify, DECODER_SPU_VOUT_WAIT_DURATION, vlc_input_decoder_t::error, subpicture_t::i_channel, subpicture_t::i_order, vlc_input_decoder_t::i_spu_channel, vlc_input_decoder_t::i_spu_order, input_resource_HoldVout(), vlc_input_decoder_t::lock, msg_Warn, vlc_input_decoder_t::p_clock, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_vout, subpicture_New(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_tick_sleep, VLC_VOUT_ORDER_NONE, vlc_input_decoder_t::vout_order, vout_RegisterSubpictureChannelInternal(), vout_Release(), VOUT_SPU_CHANNEL_INVALID, vlc_input_decoder_t::vout_thread_started, and vout_UnregisterSubpictureChannel().
|
static |
References AOUT_DEC_CHANGED, AOUT_DEC_FAILED, aout_DecFlush(), aout_DecPlay(), vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_waiting, block_Release(), vlc_input_decoder_t::dec, DecoderWaitUnblock(), vlc_input_decoder_t::i_preroll_end, block_t::i_pts, vlc_input_decoder_t::lock, msg_Dbg, msg_Warn, vlc_input_decoder_t::p_aout, PREROLL_NONE, vlc_input_decoder_t::reload, RELOAD_DECODER_AOUT, RequestReload(), unlikely, vlc_cond_signal(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, VLC_TICK_INVALID, and vlc_input_decoder_t::wait_acknowledge.
Referenced by ModuleThread_QueueAudio().
|
static |
References vlc_input_decoder_t::b_has_data, vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::dec, DecoderWaitUnblock(), subpicture_t::i_start, vlc_input_decoder_t::lock, msg_Warn, vlc_input_decoder_t::p_vout, subpicture_Delete(), vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TICK_INVALID, vout_PutSubpicture(), and vlc_input_decoder_t::wait_acknowledge.
Referenced by ModuleThread_QueueSpu().
|
static |
References vlc_input_decoder_t::b_first, picture_t::b_force, vlc_input_decoder_t::b_has_data, picture_t::b_still, vlc_input_decoder_t::b_waiting, picture_t::date, vlc_input_decoder_t::dec, DecoderWaitUnblock(), vlc_input_decoder_t::frames_countdown, vlc_input_decoder_t::i_preroll_end, likely, vlc_input_decoder_t::lock, msg_Dbg, msg_Warn, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_vout, vlc_input_decoder_t::paused, picture_Release(), PREROLL_NONE, unlikely, vlc_cond_signal(), VLC_EGENERIC, vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, VLC_TICK_INVALID, vout_Flush(), vout_FlushAll, vout_PutPicture(), vlc_input_decoder_t::vout_thread_started, and vlc_input_decoder_t::wait_acknowledge.
Referenced by ModuleThread_QueueVideo().
References dec_get_owner(), ModuleThread_PlayAudio(), ModuleThread_UpdateStatAudio(), and VLC_SUCCESS.
|
static |
|
static |
References dec_get_owner(), ModuleThread_PlayVideo(), ModuleThread_UpdateStatVideo(), and VLC_SUCCESS.
|
static |
References AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT, AOUT_CHANMODE_DOLBYSTEREO, aout_DecDelete(), aout_DecNew(), AOUT_FMTS_IDENTICAL, aout_FormatPrepare(), aout_replaygain_changed(), es_format_t::audio, es_format_t::audio_replay_gain, CreateVoutIfNeeded(), dec_get_owner(), DecoderUpdateFormatLocked(), vlc_input_decoder_t::fmt, decoder_t::fmt_in, decoder_t::fmt_out, audio_format_t::i_bytes_per_frame, audio_format_t::i_chan_mode, es_format_t::i_codec, audio_format_t::i_format, audio_format_t::i_frame_length, audio_format_t::i_physical_channels, es_format_t::i_profile, input_resource_GetAout(), input_resource_PutAout(), vlc_input_decoder_t::lock, msg_Err, vlc_input_decoder_t::p_aout, vlc_input_decoder_t::p_clock, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::reset_out_state, var_InheritInteger(), var_TriggerCallback(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_mutex_lock(), and vlc_mutex_unlock().
|
static |
References aout_DecGetResetStats(), decoder_Notify, and vlc_input_decoder_t::p_aout.
Referenced by ModuleThread_QueueAudio().
|
static |
References decoder_Notify, vlc_input_decoder_t::p_vout, and vout_GetResetStatistic().
Referenced by ModuleThread_QueueVideo().
|
static |
References CreateVoutIfNeeded(), dec_get_owner(), decoder_Notify, decoder_t::fmt_in, decoder_t::fmt_out, video_format_t::i_chroma, es_format_t::i_codec, decoder_t::i_extra_picture_buffers, input_resource_StartVout(), MouseEvent(), msg_Err, vlc_input_decoder_t::out_pool, vlc_input_decoder_t::p_clock, vlc_input_decoder_t::p_resource, vlc_input_decoder_t::p_vout, picture_pool_NewFromFormat(), vlc_input_decoder_t::vctx, es_format_t::video, VLC_CODEC_AV1, VLC_CODEC_DIRAC, VLC_CODEC_H264, VLC_CODEC_HEVC, VLC_CODEC_MP4V, VLC_CODEC_VP5, VLC_CODEC_VP6, VLC_CODEC_VP6F, VLC_CODEC_VP8, vlc_video_context_Hold(), vlc_video_context_Release(), vout_configuration_t::vout, vout_ChangeSource(), vlc_input_decoder_t::vout_order, and vlc_input_decoder_t::vout_thread_started.
|
static |
|
static |
References vlc_input_decoder_t::b_supported, vlc_input_decoder_t::cc, DecoderPlayCc(), vlc_input_decoder_t::desc, and decoder_t::pf_get_cc.
Referenced by DecoderThread_ProcessInput().
|
static |
References vlc_input_decoder_t::reload, RELOAD_DECODER, and RELOAD_NO_REQUEST.
Referenced by DecoderThread_DecodeBlock(), and ModuleThread_PlayAudio().
|
static |
References VLC_UNUSED.
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::lock, vlc_input_decoder_t::p_vout, VIDEO_ES, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, vlc_tick_now(), vout_PutSubpicture(), and vout_RegisterSubpictureChannel().
Referenced by EsOutVaControlLocked().
void vlc_input_decoder_ChangeDelay | ( | vlc_input_decoder_t * | owner, |
vlc_tick_t | delay | ||
) |
This function changes the delay.
References vlc_input_decoder_t::delay, vlc_input_decoder_t::p_fifo, vlc_fifo_Lock(), and vlc_fifo_Unlock().
Referenced by EsOutDecoderChangeDelay().
void vlc_input_decoder_ChangePause | ( | vlc_input_decoder_t * | , |
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 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::request_rate, vlc_fifo_Lock(), and vlc_fifo_Unlock().
Referenced by EsOutChangeRate(), and EsOutCreateDecoder().
vlc_input_decoder_t* vlc_input_decoder_Create | ( | vlc_object_t * | p_parent, |
const es_format_t * | fmt, | ||
input_resource_t * | p_resource | ||
) |
Spawn a decoder thread outside of the input thread.
References decoder_New().
void vlc_input_decoder_Decode | ( | vlc_input_decoder_t * | p_owner, |
block_t * | p_block, | ||
bool | b_do_pace | ||
) |
Put a block_t in the decoder's fifo.
Thread-safe w.r.t. the decoder. May be a cancellation point.
p_dec | the decoder object |
p_block | the data block |
References vlc_input_decoder_t::b_waiting, block_ChainRelease(), BLOCK_FLAG_DISCONTINUITY, vlc_input_decoder_t::dec, block_t::i_flags, msg_Warn, vlc_input_decoder_t::p_fifo, vlc_fifo_DequeueAllUnlocked(), vlc_fifo_GetBytes(), vlc_fifo_GetCount(), vlc_fifo_Lock(), vlc_fifo_QueueUnlocked(), vlc_fifo_Unlock(), vlc_fifo_WaitCond(), and vlc_input_decoder_t::wait_fifo.
Referenced by EsOutSend().
void vlc_input_decoder_Delete | ( | vlc_input_decoder_t * | p_owner | ) |
Kills a decoder thread and waits until it's finished.
p_input | the input thread |
p_es | the es descriptor |
References vlc_input_decoder_t::aborting, vlc_input_decoder_t::b_supported, vlc_input_decoder_t::b_waiting, vlc_input_decoder_t::cc, vlc_input_decoder_t::dec, DeleteDecoder(), vlc_input_decoder_t::flushing, decoder_t::fmt_in, es_format_t::i_cat, vlc_input_decoder_t::lock, MAX_CC_DECODERS, vlc_input_decoder_t::out_pool, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_vout, picture_pool_Cancel(), vlc_input_decoder_t::thread, VIDEO_ES, VLC_CODEC_CEA608, vlc_cond_signal(), vlc_fifo_Lock(), vlc_fifo_Signal(), vlc_fifo_Unlock(), vlc_input_decoder_SetCcState(), vlc_join(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_input_decoder_t::vout_thread_started, and vlc_input_decoder_t::wait_request.
Referenced by EsOutDestroyDecoder(), EsOutSetRecord(), EsOutTerminate(), and vlc_input_decoder_SetCcState().
int vlc_input_decoder_DelVoutOverlay | ( | vlc_input_decoder_t * | owner, |
size_t | channel | ||
) |
void vlc_input_decoder_Drain | ( | vlc_input_decoder_t * | p_owner | ) |
Signals that there are no further blocks to decode, and requests that the decoder drain all pending buffers.
This is used to ensure that all intermediate buffers empty and no samples get lost at the end of the stream.
References vlc_input_decoder_t::b_draining, vlc_input_decoder_t::p_fifo, vlc_fifo_Lock(), vlc_fifo_Signal(), and vlc_fifo_Unlock().
Referenced by EsOutDrainCCChannels(), EsOutDrainDecoder(), and EsOutVaPrivControlLocked().
void vlc_input_decoder_Flush | ( | vlc_input_decoder_t * | p_owner | ) |
Requests that the decoder immediately discard all pending buffers.
This is useful when seeking or when deselecting a stream.
References block_ChainRelease(), vlc_input_decoder_t::dec, vlc_input_decoder_t::flushing, vlc_input_decoder_t::fmt, decoder_t::fmt_out, vlc_input_decoder_t::frames_countdown, es_format_t::i_cat, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_vout, vlc_input_decoder_t::paused, SPU_ES, VIDEO_ES, vlc_fifo_DequeueAllUnlocked(), vlc_fifo_Lock(), vlc_fifo_Signal(), vlc_fifo_Unlock(), vlc_mutex_lock(), vlc_mutex_unlock(), vout_FlushAll, and vlc_input_decoder_t::vout_thread_started.
Referenced by EsOutChangePosition().
void vlc_input_decoder_FrameNext | ( | vlc_input_decoder_t * | p_owner, |
vlc_tick_t * | pi_duration | ||
) |
This function force the display of the next picture and fills the stream time consumed.
References vlc_input_decoder_t::fmt, vlc_input_decoder_t::frames_countdown, es_format_t::i_cat, vlc_input_decoder_t::lock, 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(), vlc_mutex_lock(), vlc_mutex_unlock(), and vout_NextPicture().
Referenced by EsOutFrameNext().
void vlc_input_decoder_GetCcDesc | ( | vlc_input_decoder_t * | p_owner, |
decoder_cc_desc_t * | p_desc | ||
) |
This function get cc channels descriptions.
References vlc_input_decoder_t::cc, vlc_input_decoder_t::desc, vlc_input_decoder_t::lock, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutSend().
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_owner | ) |
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().
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().
|
static |
bool vlc_input_decoder_HasFormatChanged | ( | vlc_input_decoder_t * | p_dec, |
es_format_t * | p_fmt, | ||
vlc_meta_t ** | pp_meta | ||
) |
This function will return true if the ES format or meta data have changed since the last call.
In which case, it will do a copy of the current es_format_t if p_fmt is not NULL and will do a copy of the current description if pp_meta is non NULL. The es_format_t MUST be freed by es_format_Clean and *pp_meta MUST be freed by vlc_meta_Delete. Otherwise it will return false and will not initialize p_fmt and *pp_meta.
References vlc_input_decoder_t::b_fmt_description, es_format_Copy(), vlc_input_decoder_t::fmt, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_description, vlc_meta_Merge(), vlc_meta_New(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutSend().
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::drained, vlc_input_decoder_t::fmt, es_format_t::i_cat, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, sout_InputIsEmpty(), VIDEO_ES, vlc_fifo_IsEmpty(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_mutex_lock(), vlc_mutex_unlock(), and vout_IsEmpty().
Referenced by EsOutDecodersIsEmpty(), and EsOutDrainDecoder().
vlc_input_decoder_t* vlc_input_decoder_New | ( | vlc_object_t * | parent, |
es_format_t * | fmt, | ||
vlc_clock_t * | p_clock, | ||
input_resource_t * | resource, | ||
sout_instance_t * | p_sout, | ||
bool | thumbnailing, | ||
const struct vlc_input_decoder_callbacks * | cbs, | ||
void * | cbs_userdata | ||
) |
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 _, vlc_input_decoder_t::cc, subs_format_t::cc, vlc_input_decoder_t::dec, DecoderUnsupportedCodec(), vlc_input_decoder_t::desc, es_format_Init(), vlc_input_decoder_t::fmt, subs_format_t::i_channel, decoder_cc_desc_t::i_reorder_depth, subs_format_t::i_reorder_depth, 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, SPU_ES, es_format_t::subs, vlc_dialog_display_error, VLC_EGENERIC, vlc_input_decoder_Delete(), 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_SetSpuHighlight | ( | vlc_input_decoder_t * | p_owner, |
const vlc_spu_highlight_t * | spu_hl | ||
) |
References vlc_input_decoder_t::dec, decoder_t::fmt_in, es_format_t::i_cat, vlc_input_decoder_t::lock, vlc_input_decoder_t::p_sout_input, vlc_input_decoder_t::p_vout, SOUT_INPUT_SET_SPU_HIGHLIGHT, sout_InputControl(), SPU_ES, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_SUCCESS, and vout_SetSpuHighlight().
Referenced by EsOutVaControlLocked().
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::lock, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), 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::lock, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), 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, vlc_input_decoder_t::lock, msg_Err, vlc_input_decoder_t::p_fifo, vlc_input_decoder_t::paused, vlc_cond_wait(), vlc_fifo_IsEmpty(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_input_decoder_t::wait_acknowledge.
Referenced by EsOutDecodersStopBuffering().
|
static |
Referenced by CreateDecoder().
|
static |
Referenced by CreateDecoder().
|
static |
Referenced by CreateDecoder().
|
static |
Referenced by CreateDecoder().