VLC  4.0.0-dev
Data Structures | Functions
decoder.h File Reference
Include dependency graph for decoder.h:

Go to the source code of this file.

Data Structures

struct  input_decoder_callbacks
 

Functions

decoder_tinput_DecoderNew (vlc_object_t *parent, es_format_t *, vlc_clock_t *, input_resource_t *, sout_instance_t *, bool thumbnailing, const struct input_decoder_callbacks *cbs, void *userdata)
 Spawns a new decoder thread from the input thread. More...
 
void input_DecoderChangePause (decoder_t *, bool b_paused, vlc_tick_t i_date)
 This function changes the pause state. More...
 
void input_DecoderChangeRate (decoder_t *dec, float rate)
 Changes the decoder rate. More...
 
void input_DecoderChangeDelay (decoder_t *, vlc_tick_t i_delay)
 This function changes the delay. More...
 
void input_DecoderStartWait (decoder_t *)
 This function makes the decoder start waiting for a valid data block from its fifo. More...
 
void input_DecoderWait (decoder_t *)
 This function waits for the decoder to actually receive data. More...
 
void input_DecoderStopWait (decoder_t *)
 This function exits the waiting mode of the decoder. More...
 
bool input_DecoderIsEmpty (decoder_t *)
 This function returns true if the decoder fifo is empty and false otherwise. More...
 
int input_DecoderSetCcState (decoder_t *, vlc_fourcc_t, int i_channel, bool b_decode)
 This function activates the request closed caption channel. More...
 
int input_DecoderGetCcState (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 input_DecoderGetCcDesc (decoder_t *, decoder_cc_desc_t *)
 This function get cc channels descriptions. More...
 
void input_DecoderFrameNext (decoder_t *p_dec, vlc_tick_t *pi_duration)
 This function force the display of the next picture and fills the stream time consumed. More...
 
bool input_DecoderHasFormatChanged (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. More...
 
size_t input_DecoderGetFifoSize (decoder_t *p_dec)
 This function returns the current size in bytes of the decoder fifo. More...
 
void input_DecoderSetVoutMouseEvent (decoder_t *, vlc_mouse_event, void *)
 
int input_DecoderAddVoutOverlay (decoder_t *, subpicture_t *, size_t *)
 
int input_DecoderDelVoutOverlay (decoder_t *, size_t)
 

Function Documentation

◆ input_DecoderAddVoutOverlay()

int input_DecoderAddVoutOverlay ( decoder_t ,
subpicture_t ,
size_t *   
)

◆ input_DecoderChangeDelay()

void input_DecoderChangeDelay ( decoder_t ,
vlc_tick_t  i_delay 
)

◆ input_DecoderChangePause()

void input_DecoderChangePause ( 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 dec_get_owner(), decoder_owner::frames_countdown, decoder_owner::p_fifo, decoder_owner::pause_date, decoder_owner::paused, vlc_fifo_Lock(), vlc_fifo_Signal(), and vlc_fifo_Unlock().

Referenced by EsOutDecodersChangePause().

◆ input_DecoderChangeRate()

void input_DecoderChangeRate ( decoder_t dec,
float  rate 
)

Changes the decoder rate.

This function changes rate of the intended playback speed to nominal speed.

Parameters
decdecoder
rateplayback rate (default is 1)

References dec_get_owner(), decoder_owner::p_fifo, decoder_owner::request_rate, vlc_fifo_Lock(), and vlc_fifo_Unlock().

Referenced by EsOutChangeRate(), and EsOutCreateDecoder().

◆ input_DecoderDelVoutOverlay()

int input_DecoderDelVoutOverlay ( decoder_t ,
size_t   
)

◆ input_DecoderFrameNext()

void input_DecoderFrameNext ( decoder_t p_dec,
vlc_tick_t pi_duration 
)

◆ input_DecoderGetCcDesc()

void input_DecoderGetCcDesc ( decoder_t ,
decoder_cc_desc_t  
)

This function get cc channels descriptions.

References decoder_owner::cc, dec_get_owner(), decoder_owner::desc, decoder_owner::lock, vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by EsOutSend().

◆ input_DecoderGetCcState()

int input_DecoderGetCcState ( 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.

References decoder_owner::cc, dec_get_owner(), input_DecoderHasCCChanFlag(), decoder_owner::lock, decoder_owner::pp_decoder, VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.

Referenced by EsIsSelected().

◆ input_DecoderGetFifoSize()

size_t input_DecoderGetFifoSize ( decoder_t p_dec)

This function returns the current size in bytes of the decoder fifo.

References block_FifoSize(), dec_get_owner(), and decoder_owner::p_fifo.

Referenced by EsOutIsExtraBufferingAllowed().

◆ input_DecoderHasFormatChanged()

bool input_DecoderHasFormatChanged ( 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 decoder_owner::b_fmt_description, dec_get_owner(), es_format_Copy(), decoder_owner::fmt, decoder_owner::lock, decoder_owner::p_description, vlc_meta_Merge(), vlc_meta_New(), vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by EsOutSend().

◆ input_DecoderIsEmpty()

bool input_DecoderIsEmpty ( decoder_t )

◆ input_DecoderNew()

decoder_t* input_DecoderNew ( 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 input_decoder_callbacks cbs,
void *  cbs_userdata 
)

Spawns a new decoder thread from the input thread.

Parameters
p_inputthe input thread
p_esthe es descriptor
Returns
the spawned decoder object

References decoder_New().

Referenced by EsOutCreateDecoder(), EsOutSetRecord(), and input_DecoderSetCcState().

◆ input_DecoderSetCcState()

int input_DecoderSetCcState ( decoder_t ,
vlc_fourcc_t  ,
int  i_channel,
bool  b_decode 
)

◆ input_DecoderSetVoutMouseEvent()

void input_DecoderSetVoutMouseEvent ( decoder_t ,
vlc_mouse_event  ,
void *   
)

◆ input_DecoderStartWait()

void input_DecoderStartWait ( decoder_t )

◆ input_DecoderStopWait()

void input_DecoderStopWait ( decoder_t )

◆ input_DecoderWait()

void input_DecoderWait ( decoder_t )