VLC
4.0.0-dev
|
Decoder. More...
![]() |
Modules | |
Data blocks | |
Blocks of binary data. | |
Decoder | |
Audio, video and text decoders. | |
Decoder hardware device | |
Demultiplexer | |
Demultiplexers (file format parsers) | |
ES output | |
Elementary streams output. | |
Media source | |
Player | |
VLC Player API. | |
Stream | |
Buffered input byte streams. | |
Stream Extractor | |
If a stream can be viewed as a directory, such as when opening a compressed archive, a stream-extractor is used to get access to the entities inside said stream. | |
Timestamps, error-free | |
These functions support generating timestamps without long term rounding errors due to sample rate conversions. | |
Files | |
file | vlc_input.h |
Input thread interface. | |
Data Structures | |
struct | seekpoint_t |
struct | input_title_t |
struct | input_attachment_t |
Macros | |
#define | INPUT_TITLE_MENU 0x01 /* Menu title */ |
#define | INPUT_TITLE_INTERACTIVE 0x02 /* Interactive title. Playback position has no meaning. */ |
#define | INPUT_RATE_MIN 0.03125f |
Input rate. More... | |
#define | INPUT_RATE_MAX 31.25f |
Maximal rate value. More... | |
Typedefs | |
typedef struct input_resource_t | input_resource_t |
This defines an opaque input resource handler. More... | |
typedef struct input_resource_t | input_resource_t |
typedef struct input_title_t | input_title_t |
Decoder.
Input thread.
#define INPUT_RATE_MAX 31.25f |
Maximal rate value.
Referenced by Control().
#define INPUT_RATE_MIN 0.03125f |
Input rate.
It is an float used by the variable "rate" in the range [INPUT_RATE_MIN, INPUT_RATE_MAX] the default value being 1.f. It represents the ratio of playback speed to nominal speed (bigger is faster). Minimal rate value
Referenced by Control().
#define INPUT_TITLE_INTERACTIVE 0x02 /* Interactive title. Playback position has no meaning. */ |
#define INPUT_TITLE_MENU 0x01 /* Menu title */ |
typedef struct input_resource_t input_resource_t |
This defines an opaque input resource handler.
typedef struct input_resource_t input_resource_t |
typedef struct input_title_t input_title_t |
decoder_t* input_DecoderCreate | ( | vlc_object_t * | , |
const es_format_t * | , | ||
input_resource_t * | |||
) |
Spawn a decoder thread outside of the input thread.
References decoder_New().
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 decoder_owner::b_waiting, block_ChainRelease(), BLOCK_FLAG_DISCONTINUITY, dec_get_owner(), block_t::i_flags, msg_Warn, decoder_owner::p_fifo, vlc_fifo_DequeueAllUnlocked(), vlc_fifo_GetBytes(), vlc_fifo_GetCount(), vlc_fifo_Lock(), vlc_fifo_QueueUnlocked(), vlc_fifo_Unlock(), vlc_fifo_WaitCond(), and decoder_owner::wait_fifo.
Referenced by EsOutSend().
void input_DecoderDelete | ( | decoder_t * | p_dec | ) |
Kills a decoder thread and waits until it's finished.
p_input | the input thread |
p_es | the es descriptor |
References decoder_owner::b_supported, decoder_owner::b_waiting, decoder_owner::cc, dec_get_owner(), DeleteDecoder(), decoder_owner::flushing, decoder_t::fmt_in, es_format_t::i_cat, input_DecoderSetCcState(), decoder_owner::lock, MAX_CC_DECODERS, decoder_owner::out_pool, decoder_owner::p_fifo, decoder_owner::p_vout, picture_pool_Cancel(), decoder_owner::thread, VIDEO_ES, vlc_cancel(), VLC_CODEC_CEA608, vlc_cond_signal(), vlc_fifo_Lock(), vlc_fifo_Unlock(), vlc_join(), vlc_mutex_lock(), vlc_mutex_unlock(), decoder_owner::vout_thread_started, and decoder_owner::wait_request.
Referenced by EsOutDestroyDecoder(), EsOutSetRecord(), EsOutTerminate(), and input_DecoderSetCcState().
void input_DecoderDrain | ( | decoder_t * | p_dec | ) |
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 decoder_owner::b_draining, dec_get_owner(), decoder_owner::p_fifo, vlc_fifo_Lock(), vlc_fifo_Signal(), and vlc_fifo_Unlock().
Referenced by EsOutDrainCCChannels(), EsOutDrainDecoder(), and EsOutVaControlLocked().
void input_DecoderFlush | ( | decoder_t * | p_dec | ) |
Requests that the decoder immediately discard all pending buffers.
This is useful when seeking or when deselecting a stream.
References block_ChainRelease(), dec_get_owner(), decoder_owner::flushing, decoder_owner::fmt, decoder_owner::frames_countdown, es_format_t::i_cat, decoder_owner::p_fifo, decoder_owner::paused, SPU_ES, VIDEO_ES, vlc_fifo_DequeueAllUnlocked(), vlc_fifo_Lock(), vlc_fifo_Signal(), and vlc_fifo_Unlock().
Referenced by EsOutChangePosition().
int input_DecoderSetSpuHighlight | ( | decoder_t * | , |
const vlc_spu_highlight_t * | |||
) |
References dec_get_owner(), decoder_t::fmt_in, es_format_t::i_cat, decoder_owner::lock, decoder_owner::p_sout_input, decoder_owner::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().
audio_output_t* input_resource_GetAout | ( | input_resource_t * | ) |
This function creates or recycles an audio output.
References aout_New, input_resource_t::b_aout_busy, input_resource_t::lock_hold, msg_Dbg, input_resource_t::p_aout, input_resource_t::p_parent, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ModuleThread_UpdateAudioFormat(), and vlc_player_New().
audio_output_t* input_resource_HoldAout | ( | input_resource_t * | ) |
References aout_Hold(), input_resource_t::lock_hold, input_resource_t::p_aout, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ControlNav(), ViewpointApply(), and vlc_player_aout_Hold().
input_resource_t* input_resource_New | ( | vlc_object_t * | ) |
It creates an empty input resource handler.
The given object MUST stay alive as long as the input_resource_t is not deleted.
References input_resource_t::lock, input_resource_t::lock_hold, input_resource_t::p_parent, input_resource_t::p_vout_dummy, input_resource_t::rc, vlc_atomic_rc_init(), vlc_mutex_init(), and vout_CreateDummy().
Referenced by Create(), and vlc_player_New().
void input_resource_PutAout | ( | input_resource_t * | , |
audio_output_t * | |||
) |
This function retains or destroys an audio output.
References aout_Destroy(), input_resource_t::b_aout_busy, input_resource_t::lock_hold, msg_Dbg, input_resource_t::p_aout, input_resource_t::p_parent, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by DecoderThread_Reload(), DeleteDecoder(), ModuleThread_UpdateAudioFormat(), and vlc_player_New().
void input_resource_Release | ( | input_resource_t * | ) |
It releases an input resource.
References aout_Destroy(), DestroySout(), DestroyVout(), input_resource_t::lock, input_resource_t::lock_hold, input_resource_t::p_aout, input_resource_t::p_vout_dummy, input_resource_t::rc, vlc_atomic_rc_dec(), vlc_mutex_destroy(), and vout_Release().
Referenced by Destroy(), End(), Init(), vlc_player_Delete(), and vlc_player_New().
|
inlinestatic |
References input_attachment_t::p_data, input_attachment_t::psz_description, input_attachment_t::psz_mime, and input_attachment_t::psz_name.
Referenced by accessNewAttachment(), AppendAttachment(), End(), input_ExtractAttachmentAndCacheArt(), InputUpdateMeta(), LoadSlaves(), stream_AttachmentDelete(), and vlc_input_attachment_New().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
References input_title_t::i_seekpoint, input_title_t::psz_name, input_title_t::seekpoint, and vlc_seekpoint_Delete().
Referenced by InputSourceDestroy().
|
inlinestatic |
|
inlinestatic |
References input_title_t::i_flags, input_title_t::i_length, input_title_t::i_seekpoint, input_title_t::psz_name, and input_title_t::seekpoint.
Referenced by vlc_input_title_Duplicate().
|
inlinestatic |
References seekpoint_t::psz_name.
Referenced by vlc_input_title_Delete().
|
inlinestatic |
References seekpoint_t::i_time_offset, likely, seekpoint_t::psz_name, strdup(), and vlc_seekpoint_New().
Referenced by vlc_input_title_Duplicate().
|
inlinestatic |
References seekpoint_t::i_time_offset, and seekpoint_t::psz_name.
Referenced by vlc_seekpoint_Duplicate().