VLC  4.0.0-dev
Data Structures | Macros | Enumerations | Functions | Variables
decoder.c File Reference
Include dependency graph for decoder.c:

Data Structures

struct  decoder_owner
 

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 struct decoder_ownerdec_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 (struct decoder_owner *p_owner, bool b_packetizer, const es_format_t *restrict p_fmt, enum reload reload)
 
static void DecoderUpdateFormatLocked (struct decoder_owner *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 (struct decoder_owner *, 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_deviceModuleThread_GetDecoderDevice (decoder_t *p_dec)
 
static picture_tModuleThread_NewVideoBuffer (decoder_t *p_dec)
 
static subpicture_tModuleThread_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_tdecoder_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 (struct decoder_owner *p_owner)
 
static void DecoderThread_AbortPictures (decoder_t *p_dec, bool b_abort)
 
static void DecoderWaitUnblock (struct decoder_owner *p_owner)
 
static void DecoderUpdatePreroll (vlc_tick_t *pi_preroll, const block_t *p)
 
static void DecoderPlayCc (struct decoder_owner *p_owner, block_t *p_cc, const decoder_cc_desc_t *p_desc)
 
static void PacketizerGetCc (struct decoder_owner *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 (struct decoder_owner *p_owner, picture_t *p_picture)
 
static void ModuleThread_UpdateStatVideo (struct decoder_owner *p_owner, bool lost)
 
static void ModuleThread_QueueVideo (decoder_t *p_dec, picture_t *p_pic)
 
static vlc_decoder_devicethumbnailer_get_device (decoder_t *p_dec)
 
static picture_tthumbnailer_buffer_new (decoder_t *p_dec)
 
static void ModuleThread_QueueThumbnail (decoder_t *p_dec, picture_t *p_pic)
 
static int ModuleThread_PlayAudio (struct decoder_owner *p_owner, block_t *p_audio)
 
static void ModuleThread_UpdateStatAudio (struct decoder_owner *p_owner, bool lost)
 
static void ModuleThread_QueueAudio (decoder_t *p_dec, block_t *p_aout_buf)
 
static void ModuleThread_PlaySpu (struct decoder_owner *p_owner, subpicture_t *p_subpic)
 
static void ModuleThread_QueueSpu (decoder_t *p_dec, subpicture_t *p_spu)
 
static void DecoderThread_ProcessInput (struct decoder_owner *p_owner, block_t *p_block)
 Decode a block. More...
 
static void DecoderThread_DecodeBlock (struct decoder_owner *p_owner, block_t *p_block)
 
static void DecoderThread_Flush (struct decoder_owner *p_owner)
 
static void DecoderThread_ChangePause (struct decoder_owner *p_owner, bool paused, vlc_tick_t date)
 
static void DecoderThread_ChangeRate (struct decoder_owner *p_owner, float rate)
 
static void DecoderThread_ChangeDelay (struct decoder_owner *p_owner, vlc_tick_t delay)
 
static void * DecoderThread (void *p_data)
 The decoding main loop. More...
 
static struct decoder_ownerCreateDecoder (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 input_decoder_callbacks *cbs, void *cbs_userdata)
 Create a decoder object. More...
 
static void DeleteDecoder (decoder_t *p_dec)
 Destroys a decoder object. More...
 
static void DecoderUnsupportedCodec (decoder_t *p_dec, const es_format_t *fmt, bool b_decoding)
 
static decoder_tdecoder_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 input_decoder_callbacks *cbs, void *userdata)
 
decoder_tinput_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. More...
 
decoder_tinput_DecoderCreate (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 input_DecoderDelete (decoder_t *p_dec)
 Kills a decoder thread and waits until it's finished. More...
 
void input_DecoderDecode (decoder_t *p_dec, block_t *p_block, bool b_do_pace)
 Put a block_t in the decoder's fifo. More...
 
bool input_DecoderIsEmpty (decoder_t *p_dec)
 This function returns true if the decoder fifo is empty and false otherwise. More...
 
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. More...
 
void input_DecoderFlush (decoder_t *p_dec)
 Requests that the decoder immediately discard all pending buffers. More...
 
void input_DecoderGetCcDesc (decoder_t *p_dec, decoder_cc_desc_t *p_desc)
 This function get cc channels descriptions. More...
 
static bool input_DecoderHasCCChanFlag (struct decoder_owner *p_owner, vlc_fourcc_t codec, int i_channel)
 
int input_DecoderSetCcState (decoder_t *p_dec, vlc_fourcc_t codec, int i_channel, bool b_decode)
 This function activates the request closed caption channel. More...
 
int input_DecoderGetCcState (decoder_t *p_dec, 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 input_DecoderChangePause (decoder_t *p_dec, 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 *dec, vlc_tick_t delay)
 This function changes the delay. More...
 
void input_DecoderStartWait (decoder_t *p_dec)
 This function makes the decoder start waiting for a valid data block from its fifo. More...
 
void input_DecoderStopWait (decoder_t *p_dec)
 This function exits the waiting mode of the decoder. More...
 
void input_DecoderWait (decoder_t *p_dec)
 This function waits for the decoder to actually receive data. 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 *dec, vlc_mouse_event mouse_event, void *user_data)
 
int input_DecoderAddVoutOverlay (decoder_t *dec, subpicture_t *sub, size_t *channel)
 
int input_DecoderDelVoutOverlay (decoder_t *dec, size_t channel)
 
int input_DecoderSetSpuHighlight (decoder_t *dec, 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
 

Macro Definition Documentation

◆ BLOCK_FLAG_CORE_PRIVATE_RELOADED

#define BLOCK_FLAG_CORE_PRIVATE_RELOADED   (1 << BLOCK_FLAG_CORE_PRIVATE_SHIFT)

◆ DECODER_BOGUS_VIDEO_DELAY

#define DECODER_BOGUS_VIDEO_DELAY   ((vlc_tick_t)(DEFAULT_PTS_DELAY * 30))

◆ decoder_Notify

#define decoder_Notify (   decoder_priv,
  event,
  ... 
)
Value:
if (decoder_priv->cbs && decoder_priv->cbs->event) \
decoder_priv->cbs->event(&decoder_priv->dec, __VA_ARGS__, \
decoder_priv->cbs_userdata);

Referenced by DeleteDecoder(), ModuleThread_NewSpuBuffer(), ModuleThread_QueueThumbnail(), ModuleThread_UpdateStatAudio(), ModuleThread_UpdateStatVideo(), and ModuleThread_UpdateVideoFormat().

◆ DECODER_SPU_VOUT_WAIT_DURATION

#define DECODER_SPU_VOUT_WAIT_DURATION   VLC_TICK_FROM_MS(200)

◆ MAX_CC_DECODERS

#define MAX_CC_DECODERS   64 /* The es_out only creates one type of es */

◆ PREROLL_FORCED

#define PREROLL_FORCED   INT64_MAX

Referenced by DecoderUpdatePreroll().

◆ PREROLL_NONE

#define PREROLL_NONE   INT64_MIN

Enumeration Type Documentation

◆ reload

enum reload
Enumerator
RELOAD_NO_REQUEST 
RELOAD_DECODER 
RELOAD_DECODER_AOUT 

Function Documentation

◆ aout_replaygain_changed()

static bool aout_replaygain_changed ( const audio_replay_gain_t a,
const audio_replay_gain_t b 
)
static

◆ CreateDecoder()

static struct decoder_owner* 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 input_decoder_callbacks cbs,
void *  cbs_userdata 
)
static

Create a decoder object.

Parameters
p_inputthe input thread
p_esthe es descriptor
b_packetizerinstead of a decoder
Returns
the decoder object

References AUDIO_ES, es_format_t::audio_replay_gain, AUDIO_REPLAY_GAIN_MAX, decoder_owner::b_draining, decoder_owner::b_first, decoder_owner::b_fmt_description, decoder_owner::b_has_data, decoder_owner::b_idle, es_format_t::b_packetized, decoder_owner::b_sout_created, decoder_owner::b_supported, decoder_owner::b_waiting, block_FifoNew(), decoder_owner::cbs, decoder_t::cbs, decoder_owner::cbs_userdata, decoder_owner::cc, decoder_owner::dec, dec_audio_cbs, dec_spu_cbs, dec_thumbnailer_cbs, dec_video_cbs, decoder_owner::delay, decoder_owner::desc, decoder_owner::drained, decoder_owner::error, es_format_Init(), decoder_owner::flushing, decoder_owner::fmt, decoder_t::fmt_in, decoder_t::fmt_out, decoder_owner::frames_countdown, decoder_cc_desc_t::i_608_channels, decoder_cc_desc_t::i_708_channels, es_format_t::i_cat, decoder_owner::i_preroll_end, decoder_owner::i_spu_channel, decoder_owner::i_spu_order, LoadDecoder(), decoder_owner::lock, MAX_CC_DECODERS, decoder_owner::mouse_event, decoder_owner::mouse_lock, decoder_owner::mouse_opaque, msg_Err, decoder_owner::output_rate, decoder_owner::p_aout, decoder_owner::p_clock, decoder_owner::p_description, decoder_owner::p_fifo, decoder_owner::p_packetizer, decoder_owner::p_resource, decoder_owner::p_sout, decoder_owner::p_sout_input, decoder_owner::p_vout, decoder_owner::pause_date, decoder_owner::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, decoder_owner::pp_decoder, PREROLL_NONE, decoder_owner::reload, RELOAD_NO_REQUEST, decoder_owner::request_rate, decoder_owner::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, decoder_owner::vout_thread_started, decoder_owner::wait_acknowledge, decoder_owner::wait_fifo, and decoder_owner::wait_request.

Referenced by decoder_New().

◆ CreateVoutIfNeeded()

static int CreateVoutIfNeeded ( struct decoder_owner p_owner,
vout_thread_t **  pp_vout,
enum vlc_vout_order order,
vlc_decoder_device **  pp_dec_dev 
)
static

◆ dec_get_owner()

static struct decoder_owner* dec_get_owner ( decoder_t p_dec)
static

◆ decoder_New()

static 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 input_decoder_callbacks cbs,
void *  userdata 
)
static

◆ decoder_NewAudioBuffer()

block_t* decoder_NewAudioBuffer ( decoder_t ,
int  i_nb_samples 
)

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

◆ DecoderPlayCc()

static void DecoderPlayCc ( struct decoder_owner p_owner,
block_t p_cc,
const decoder_cc_desc_t p_desc 
)
static

◆ DecoderThread()

static void* DecoderThread ( void *  p_data)
static

◆ DecoderThread_AbortPictures()

static void DecoderThread_AbortPictures ( decoder_t p_dec,
bool  b_abort 
)
static

◆ DecoderThread_ChangeDelay()

static void DecoderThread_ChangeDelay ( struct decoder_owner p_owner,
vlc_tick_t  delay 
)
static

◆ DecoderThread_ChangePause()

static void DecoderThread_ChangePause ( struct decoder_owner p_owner,
bool  paused,
vlc_tick_t  date 
)
static

◆ DecoderThread_ChangeRate()

static void DecoderThread_ChangeRate ( struct decoder_owner p_owner,
float  rate 
)
static

◆ DecoderThread_DecodeBlock()

static void DecoderThread_DecodeBlock ( struct decoder_owner p_owner,
block_t p_block 
)
static

◆ DecoderThread_Flush()

static void DecoderThread_Flush ( struct decoder_owner p_owner)
static

◆ DecoderThread_ProcessInput()

static void DecoderThread_ProcessInput ( struct decoder_owner p_owner,
block_t p_block 
)
static

◆ DecoderThread_Reload()

static int DecoderThread_Reload ( struct decoder_owner p_owner,
bool  b_packetizer,
const es_format_t *restrict  p_fmt,
enum reload  reload 
)
static

◆ DecoderUnsupportedCodec()

static void DecoderUnsupportedCodec ( decoder_t p_dec,
const es_format_t fmt,
bool  b_decoding 
)
static

◆ DecoderUpdateFormatLocked()

static void DecoderUpdateFormatLocked ( struct decoder_owner p_owner)
static

◆ DecoderUpdatePreroll()

static void DecoderUpdatePreroll ( vlc_tick_t pi_preroll,
const block_t p 
)
inlinestatic

◆ DecoderWaitUnblock()

static void DecoderWaitUnblock ( struct decoder_owner p_owner)
static

◆ DeleteDecoder()

static void DeleteDecoder ( decoder_t p_dec)
static

◆ input_DecoderAddVoutOverlay()

int input_DecoderAddVoutOverlay ( decoder_t dec,
subpicture_t sub,
size_t *  channel 
)

◆ input_DecoderChangeDelay()

void input_DecoderChangeDelay ( decoder_t dec,
vlc_tick_t  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 dec,
size_t  channel 
)

◆ input_DecoderFrameNext()

void input_DecoderFrameNext ( decoder_t p_dec,
vlc_tick_t pi_duration 
)

◆ input_DecoderGetCcDesc()

void input_DecoderGetCcDesc ( decoder_t p_dec,
decoder_cc_desc_t p_desc 
)

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 p_dec,
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 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_DecoderHasCCChanFlag()

static bool input_DecoderHasCCChanFlag ( struct decoder_owner p_owner,
vlc_fourcc_t  codec,
int  i_channel 
)
static

◆ 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 p_dec)

◆ 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 p_dec,
vlc_fourcc_t  codec,
int  i_channel,
bool  b_decode 
)

◆ input_DecoderSetVoutMouseEvent()

void input_DecoderSetVoutMouseEvent ( decoder_t dec,
vlc_mouse_event  mouse_event,
void *  user_data 
)

◆ input_DecoderStartWait()

void input_DecoderStartWait ( decoder_t p_dec)

◆ input_DecoderStopWait()

void input_DecoderStopWait ( decoder_t p_dec)

◆ input_DecoderWait()

void input_DecoderWait ( decoder_t p_dec)

◆ InputThread_GetInputAttachments()

static int InputThread_GetInputAttachments ( decoder_t p_dec,
input_attachment_t ***  ppp_attachment,
int *  pi_attachment 
)
static

◆ LoadDecoder()

static int LoadDecoder ( decoder_t p_dec,
bool  b_packetizer,
const es_format_t *restrict  p_fmt 
)
static

◆ ModuleThread_GetDecoderDevice()

static vlc_decoder_device* ModuleThread_GetDecoderDevice ( decoder_t p_dec)
static

◆ ModuleThread_GetDisplayDate()

static vlc_tick_t ModuleThread_GetDisplayDate ( decoder_t p_dec,
vlc_tick_t  system_now,
vlc_tick_t  i_ts 
)
static

◆ ModuleThread_GetDisplayRate()

static float ModuleThread_GetDisplayRate ( decoder_t p_dec)
static

◆ ModuleThread_NewSpuBuffer()

static subpicture_t* ModuleThread_NewSpuBuffer ( decoder_t p_dec,
const subpicture_updater_t p_updater 
)
static

◆ ModuleThread_NewVideoBuffer()

static picture_t* ModuleThread_NewVideoBuffer ( decoder_t p_dec)
static

◆ ModuleThread_PlayAudio()

static int ModuleThread_PlayAudio ( struct decoder_owner p_owner,
block_t p_audio 
)
static

◆ ModuleThread_PlaySpu()

static void ModuleThread_PlaySpu ( struct decoder_owner p_owner,
subpicture_t p_subpic 
)
static

◆ ModuleThread_PlayVideo()

static int ModuleThread_PlayVideo ( struct decoder_owner p_owner,
picture_t p_picture 
)
static

◆ ModuleThread_QueueAudio()

static void ModuleThread_QueueAudio ( decoder_t p_dec,
block_t p_aout_buf 
)
static

◆ ModuleThread_QueueCc()

static void ModuleThread_QueueCc ( decoder_t p_videodec,
block_t p_cc,
const decoder_cc_desc_t p_desc 
)
static

◆ ModuleThread_QueueSpu()

static void ModuleThread_QueueSpu ( decoder_t p_dec,
subpicture_t p_spu 
)
static

◆ ModuleThread_QueueThumbnail()

static void ModuleThread_QueueThumbnail ( decoder_t p_dec,
picture_t p_pic 
)
static

◆ ModuleThread_QueueVideo()

static void ModuleThread_QueueVideo ( decoder_t p_dec,
picture_t p_pic 
)
static

◆ ModuleThread_UpdateAudioFormat()

static int ModuleThread_UpdateAudioFormat ( decoder_t p_dec)
static

◆ ModuleThread_UpdateStatAudio()

static void ModuleThread_UpdateStatAudio ( struct decoder_owner p_owner,
bool  lost 
)
static

◆ ModuleThread_UpdateStatVideo()

static void ModuleThread_UpdateStatVideo ( struct decoder_owner p_owner,
bool  lost 
)
static

◆ ModuleThread_UpdateVideoFormat()

static int ModuleThread_UpdateVideoFormat ( decoder_t p_dec,
vlc_video_context vctx 
)
static

◆ MouseEvent()

static void MouseEvent ( const vlc_mouse_t newmouse,
void *  user_data 
)
static

◆ PacketizerGetCc()

static void PacketizerGetCc ( struct decoder_owner p_owner,
decoder_t p_dec_cc 
)
static

◆ RequestReload()

static void RequestReload ( struct decoder_owner p_owner)
static

◆ thumbnailer_buffer_new()

static picture_t* thumbnailer_buffer_new ( decoder_t p_dec)
static

◆ thumbnailer_get_device()

static vlc_decoder_device* thumbnailer_get_device ( decoder_t p_dec)
static

References VLC_UNUSED.

Variable Documentation

◆ dec_audio_cbs

const struct decoder_owner_callbacks dec_audio_cbs
static
Initial value:
=
{
.audio = {
},
.get_attachments = InputThread_GetInputAttachments,
}
static int InputThread_GetInputAttachments(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: decoder.c:751
static int ModuleThread_UpdateAudioFormat(decoder_t *p_dec)
Definition: decoder.c:317
static void ModuleThread_QueueAudio(decoder_t *p_dec, block_t *p_aout_buf)
Definition: decoder.c:1270

Referenced by CreateDecoder().

◆ dec_spu_cbs

const struct decoder_owner_callbacks dec_spu_cbs
static
Initial value:
=
{
.spu = {
},
.get_attachments = InputThread_GetInputAttachments,
}
static void ModuleThread_QueueSpu(decoder_t *p_dec, subpicture_t *p_spu)
Definition: decoder.c:1313
static int InputThread_GetInputAttachments(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: decoder.c:751
static subpicture_t * ModuleThread_NewSpuBuffer(decoder_t *p_dec, const subpicture_updater_t *p_updater)
Definition: decoder.c:656

Referenced by CreateDecoder().

◆ dec_thumbnailer_cbs

const struct decoder_owner_callbacks dec_thumbnailer_cbs
static
Initial value:
=
{
.video = {
.get_device = thumbnailer_get_device,
.buffer_new = thumbnailer_buffer_new,
},
.get_attachments = InputThread_GetInputAttachments,
}
static picture_t * thumbnailer_buffer_new(decoder_t *p_dec)
Definition: decoder.c:1154
static vlc_decoder_device * thumbnailer_get_device(decoder_t *p_dec)
Definition: decoder.c:1145
static int InputThread_GetInputAttachments(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: decoder.c:751
static void ModuleThread_QueueThumbnail(decoder_t *p_dec, picture_t *p_pic)
Definition: decoder.c:1169

Referenced by CreateDecoder().

◆ dec_video_cbs

const struct decoder_owner_callbacks dec_video_cbs
static
Initial value:
=
{
.video = {
.abort_pictures = DecoderThread_AbortPictures,
.queue_cc = ModuleThread_QueueCc,
.get_display_date = ModuleThread_GetDisplayDate,
.get_display_rate = ModuleThread_GetDisplayRate,
},
.get_attachments = InputThread_GetInputAttachments,
}
static void ModuleThread_QueueCc(decoder_t *p_videodec, block_t *p_cc, const decoder_cc_desc_t *p_desc)
Definition: decoder.c:1032
static picture_t * ModuleThread_NewVideoBuffer(decoder_t *p_dec)
Definition: decoder.c:645
static vlc_decoder_device * ModuleThread_GetDecoderDevice(decoder_t *p_dec)
Definition: decoder.c:600
static int InputThread_GetInputAttachments(decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment)
Definition: decoder.c:751
static int ModuleThread_UpdateVideoFormat(decoder_t *p_dec, vlc_video_context *vctx)
Definition: decoder.c:408
static void DecoderThread_AbortPictures(decoder_t *p_dec, bool b_abort)
Definition: decoder.c:822
static vlc_tick_t ModuleThread_GetDisplayDate(decoder_t *p_dec, vlc_tick_t system_now, vlc_tick_t i_ts)
Definition: decoder.c:767
static void ModuleThread_QueueVideo(decoder_t *p_dec, picture_t *p_pic)
Definition: decoder.c:1135
static float ModuleThread_GetDisplayRate(decoder_t *p_dec)
Definition: decoder.c:784

Referenced by CreateDecoder().