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  vlc_input_decoder_callbacks
 

Functions

vlc_input_decoder_tvlc_input_decoder_New (vlc_object_t *parent, es_format_t *, vlc_clock_t *, input_resource_t *, sout_instance_t *, bool thumbnailing, const struct vlc_input_decoder_callbacks *cbs, void *userdata)
 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_ChangeDelay (vlc_input_decoder_t *, vlc_tick_t i_delay)
 This function changes the delay. 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, 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_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 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)
 

Function Documentation

◆ vlc_input_decoder_AddVoutOverlay()

int vlc_input_decoder_AddVoutOverlay ( vlc_input_decoder_t ,
subpicture_t ,
size_t *   
)

◆ vlc_input_decoder_ChangeDelay()

void vlc_input_decoder_ChangeDelay ( vlc_input_decoder_t ,
vlc_tick_t  i_delay 
)

◆ vlc_input_decoder_ChangePause()

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().

◆ vlc_input_decoder_ChangeRate()

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.

Parameters
decdecoder
rateplayback 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_DelVoutOverlay()

int vlc_input_decoder_DelVoutOverlay ( vlc_input_decoder_t ,
size_t   
)

◆ vlc_input_decoder_FrameNext()

void vlc_input_decoder_FrameNext ( vlc_input_decoder_t p_dec,
vlc_tick_t pi_duration 
)

◆ vlc_input_decoder_GetCcDesc()

void vlc_input_decoder_GetCcDesc ( vlc_input_decoder_t ,
decoder_cc_desc_t  
)

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().

◆ vlc_input_decoder_GetCcState()

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.

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().

◆ vlc_input_decoder_GetFifoSize()

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().

◆ vlc_input_decoder_GetVbiPage()

int vlc_input_decoder_GetVbiPage ( vlc_input_decoder_t ,
bool *  opaque 
)

◆ vlc_input_decoder_HasFormatChanged()

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().

◆ vlc_input_decoder_IsEmpty()

bool vlc_input_decoder_IsEmpty ( vlc_input_decoder_t )

◆ vlc_input_decoder_New()

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.

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

References decoder_New().

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

◆ vlc_input_decoder_SetCcState()

int vlc_input_decoder_SetCcState ( vlc_input_decoder_t ,
vlc_fourcc_t  ,
int  i_channel,
bool  b_decode 
)

◆ vlc_input_decoder_SetVbiOpaque()

int vlc_input_decoder_SetVbiOpaque ( vlc_input_decoder_t ,
bool  opaque 
)

◆ vlc_input_decoder_SetVbiPage()

int vlc_input_decoder_SetVbiPage ( vlc_input_decoder_t ,
unsigned  page 
)

◆ vlc_input_decoder_SetVoutMouseEvent()

void vlc_input_decoder_SetVoutMouseEvent ( vlc_input_decoder_t ,
vlc_mouse_event  ,
void *   
)

◆ vlc_input_decoder_StartWait()

void vlc_input_decoder_StartWait ( vlc_input_decoder_t )

◆ vlc_input_decoder_StopWait()

void vlc_input_decoder_StopWait ( vlc_input_decoder_t )

◆ vlc_input_decoder_Wait()

void vlc_input_decoder_Wait ( vlc_input_decoder_t )