
Data Structures | |
| struct | decoder_owner_sys_t |
Defines | |
| #define | DECODER_MAX_BUFFERING_COUNT (4) |
| #define | DECODER_MAX_BUFFERING_AUDIO_DURATION (AOUT_MAX_PREPARE_TIME) |
| #define | DECODER_MAX_BUFFERING_VIDEO_DURATION (1*CLOCK_FREQ) |
| #define | DECODER_BOGUS_VIDEO_DELAY ((mtime_t)(DEFAULT_PTS_DELAY * 30)) |
| #define | DECODER_SPU_VOUT_WAIT_DURATION ((int)(0.200*CLOCK_FREQ)) |
Functions | |
| static decoder_t * | CreateDecoder (input_thread_t *p_input, es_format_t *fmt, bool b_packetizer, sout_instance_t *p_sout) |
| Create a decoder object. | |
| static void | DeleteDecoder (decoder_t *p_dec) |
| Destroys a decoder object. | |
| static void * | DecoderThread (vlc_object_t *p_this) |
| The decoding main loop. | |
| static void | DecoderProcess (decoder_t *p_dec, block_t *p_block) |
| Decode a block. | |
| static void | DecoderError (decoder_t *p_dec, block_t *p_block) |
| static void | DecoderOutputChangePause (decoder_t *, bool b_paused, mtime_t i_date) |
| static void | DecoderFlush (decoder_t *) |
| static void | DecoderSignalBuffering (decoder_t *, bool) |
| static void | DecoderFlushBuffering (decoder_t *) |
| static void | DecoderUnsupportedCodec (decoder_t *, vlc_fourcc_t) |
| static aout_buffer_t * | aout_new_buffer (decoder_t *, int) |
| static void | aout_del_buffer (decoder_t *, aout_buffer_t *) |
| static picture_t * | vout_new_buffer (decoder_t *) |
| static void | vout_del_buffer (decoder_t *, picture_t *) |
| static void | vout_link_picture (decoder_t *, picture_t *) |
| static void | vout_unlink_picture (decoder_t *, picture_t *) |
| static subpicture_t * | spu_new_buffer (decoder_t *, const subpicture_updater_t *) |
| static void | spu_del_buffer (decoder_t *, subpicture_t *) |
| picture_t * | decoder_NewPicture (decoder_t *p_decoder) |
| This function will return a new picture usable by a decoder as an output buffer. | |
| void | decoder_DeletePicture (decoder_t *p_decoder, picture_t *p_picture) |
| This function will release a picture create by decoder_NewPicture. | |
| void | decoder_LinkPicture (decoder_t *p_decoder, picture_t *p_picture) |
| This function will increase the picture reference count. | |
| void | decoder_UnlinkPicture (decoder_t *p_decoder, picture_t *p_picture) |
| This function will decrease the picture reference count. | |
| aout_buffer_t * | decoder_NewAudioBuffer (decoder_t *p_decoder, int i_size) |
| This function will return a new audio buffer usable by a decoder as an output buffer. | |
| void | decoder_DeleteAudioBuffer (decoder_t *p_decoder, aout_buffer_t *p_buffer) |
| This function will release a audio buffer created by decoder_NewAudioBuffer. | |
| subpicture_t * | decoder_NewSubpicture (decoder_t *p_decoder, const subpicture_updater_t *p_dyn) |
| This function will return a new subpicture usable by a decoder as an output buffer. | |
| void | decoder_DeleteSubpicture (decoder_t *p_decoder, subpicture_t *p_subpicture) |
| This function will release a subpicture created by decoder_NewSubicture. | |
| int | decoder_GetInputAttachments (decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment) |
| This function gives all input attachments at once. | |
| mtime_t | decoder_GetDisplayDate (decoder_t *p_dec, mtime_t i_ts) |
| This function converts a decoder timestamp into a display date comparable to mdate(). | |
| int | decoder_GetDisplayRate (decoder_t *p_dec) |
| This function returns the current input rate. | |
| decoder_t * | input_DecoderNew (input_thread_t *p_input, es_format_t *fmt, input_clock_t *p_clock, sout_instance_t *p_sout) |
| Spawns a new decoder thread. | |
| void | input_DecoderDelete (decoder_t *p_dec) |
| Kills a decoder thread and waits until it's finished. | |
| void | input_DecoderDecode (decoder_t *p_dec, block_t *p_block, bool b_do_pace) |
| Put a block_t in the decoder's fifo. | |
| bool | input_DecoderIsEmpty (decoder_t *p_dec) |
| This function returns true if the decoder fifo is empty and false otherwise. | |
| void | input_DecoderIsCcPresent (decoder_t *p_dec, bool pb_present[4]) |
| This function set each pb_present entry to true if the corresponding channel exists or false otherwise. | |
| int | input_DecoderSetCcState (decoder_t *p_dec, bool b_decode, int i_channel) |
| This function activates the request closed caption channel. | |
| int | input_DecoderGetCcState (decoder_t *p_dec, bool *pb_decode, int i_channel) |
| This function returns an error if the requested channel does not exist and set pb_decode to the channel status(active or not) otherwise. | |
| void | input_DecoderChangePause (decoder_t *p_dec, bool b_paused, mtime_t i_date) |
| This function changes the pause state. | |
| void | input_DecoderChangeDelay (decoder_t *p_dec, mtime_t i_delay) |
| This function changes the delay. | |
| void | input_DecoderStartBuffering (decoder_t *p_dec) |
| This function starts the buffering mode. | |
| void | input_DecoderStopBuffering (decoder_t *p_dec) |
| This function stops the buffering mode. | |
| void | input_DecoderWaitBuffering (decoder_t *p_dec) |
| This function waits for the decoder to have buffered sufficient data. | |
| void | input_DecoderFrameNext (decoder_t *p_dec, mtime_t *pi_duration) |
| This function force the display of the next picture and fills the stream time consumed. | |
| 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. | |
| size_t | input_DecoderGetFifoSize (decoder_t *p_dec) |
| This function returns the current size in bytes of the decoder fifo. | |
| void | input_DecoderGetObjects (decoder_t *p_dec, vout_thread_t **pp_vout, aout_instance_t **pp_aout) |
| This function returns the objects associated to a decoder. | |
| static int | DecoderGetInputAttachments (decoder_t *p_dec, input_attachment_t ***ppp_attachment, int *pi_attachment) |
| static mtime_t | DecoderGetDisplayDate (decoder_t *p_dec, mtime_t i_ts) |
| static int | DecoderGetDisplayRate (decoder_t *p_dec) |
| static block_t * | DecoderBlockFlushNew () |
| static bool | DecoderIsFlushing (decoder_t *p_dec) |
| static void | DecoderWaitUnblock (decoder_t *p_dec, bool *pb_reject) |
| static void | DecoderUpdatePreroll (int64_t *pi_preroll, const block_t *p) |
| static mtime_t | DecoderTeletextFixTs (mtime_t i_ts) |
| static void | DecoderFixTs (decoder_t *p_dec, mtime_t *pi_ts0, mtime_t *pi_ts1, mtime_t *pi_duration, int *pi_rate, mtime_t i_ts_bound, bool b_telx) |
| static void | DecoderWaitDate (decoder_t *p_dec, bool *pb_reject, mtime_t i_deadline) |
| If *pb_reject, it does nothing, otherwise it waits for the given deadline or a flush request (in which case it set *pi_reject to true. | |
| static void | DecoderPlayAudio (decoder_t *p_dec, aout_buffer_t *p_audio, int *pi_played_sum, int *pi_lost_sum) |
| static void | DecoderDecodeAudio (decoder_t *p_dec, block_t *p_block) |
| static void | DecoderGetCc (decoder_t *p_dec, decoder_t *p_dec_cc) |
| static void | DecoderPlayVideo (decoder_t *p_dec, picture_t *p_picture, int *pi_played_sum, int *pi_lost_sum) |
| static void | DecoderDecodeVideo (decoder_t *p_dec, block_t *p_block) |
| static void | DecoderPlaySpu (decoder_t *p_dec, subpicture_t *p_subpic, bool b_telx) |
| static void | DecoderPlaySout (decoder_t *p_dec, block_t *p_sout_block, bool b_telx) |
| static void | DecoderProcessSout (decoder_t *p_dec, block_t *p_block) |
| static void | DecoderProcessVideo (decoder_t *p_dec, block_t *p_block, bool b_flush) |
| static void | DecoderProcessAudio (decoder_t *p_dec, block_t *p_block, bool b_flush) |
| static void | DecoderProcessSpu (decoder_t *p_dec, block_t *p_block, bool b_flush) |
| static void | DecoderProcessOnFlush (decoder_t *p_dec) |
| static void | DecoderUpdateFormatLocked (decoder_t *p_dec) |
| static vout_thread_t * | aout_request_vout (void *p_private, vout_thread_t *p_vout, video_format_t *p_fmt, bool b_recyle) |
| #define DECODER_BOGUS_VIDEO_DELAY ((mtime_t)(DEFAULT_PTS_DELAY * 30)) |
Referenced by DecoderPlayVideo().
| #define DECODER_MAX_BUFFERING_AUDIO_DURATION (AOUT_MAX_PREPARE_TIME) |
Referenced by DecoderPlayAudio().
| #define DECODER_MAX_BUFFERING_COUNT (4) |
Referenced by DecoderPlayAudio(), DecoderPlayVideo(), and vout_new_buffer().
| #define DECODER_MAX_BUFFERING_VIDEO_DURATION (1*CLOCK_FREQ) |
Referenced by DecoderPlayVideo().
| #define DECODER_SPU_VOUT_WAIT_DURATION ((int)(0.200*CLOCK_FREQ)) |
Referenced by spu_new_buffer().
| static void aout_del_buffer | ( | decoder_t * | p_dec, | |
| aout_buffer_t * | p_buffer | |||
| ) | [static] |
References aout_DecDeleteBuffer(), decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, and decoder_t::p_owner.
Referenced by CreateDecoder().
| static aout_buffer_t * aout_new_buffer | ( | decoder_t * | p_dec, | |
| int | i_samples | |||
| ) | [static] |
References AOUT_CHAN_DOLBYSTEREO, AOUT_CHAN_LEFT, AOUT_CHAN_PHYSMASK, AOUT_CHAN_RIGHT, aout_DecDelete(), aout_DecNew, aout_DecNewBuffer(), aout_request_vout(), decoder_owner_sys_t::audio, es_format_t::audio, es_format_t::audio_replay_gain, decoder_t::b_error, DecoderFlushBuffering(), DecoderUpdateFormatLocked(), decoder_t::fmt_out, audio_format_t::i_bytes_per_frame, es_format_t::i_codec, audio_format_t::i_format, audio_format_t::i_original_channels, audio_format_t::i_rate, input_resource_RequestAout(), input_SendEventAout(), decoder_owner_sys_t::lock, msg_Err, input_thread_t::p, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, decoder_owner_sys_t::p_input, decoder_t::p_owner, aout_request_vout_t::p_private, input_thread_private_t::p_resource, aout_request_vout_t::pf_request_vout, var_InheritInteger, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by CreateDecoder().
| static vout_thread_t* aout_request_vout | ( | void * | p_private, | |
| vout_thread_t * | p_vout, | |||
| video_format_t * | p_fmt, | |||
| bool | b_recyle | |||
| ) | [static] |
References input_resource_RequestVout(), input_SendEventVout(), input_thread_t::p, decoder_owner_sys_t::p_input, decoder_t::p_owner, and input_thread_private_t::p_resource.
Referenced by aout_new_buffer().
| static decoder_t * CreateDecoder | ( | input_thread_t * | p_input, | |
| es_format_t * | fmt, | |||
| bool | b_packetizer, | |||
| sout_instance_t * | p_sout | |||
| ) | [static] |
Create a decoder object.
| p_input | the input thread | |
| p_es | the es descriptor | |
| b_packetizer | instead of a decoder |
References aout_del_buffer(), aout_new_buffer(), AUDIO_ES, es_format_t::audio_replay_gain, AUDIO_REPLAY_GAIN_MAX, decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_first, decoder_owner_sys_t::b_flushing, decoder_owner_sys_t::b_fmt_description, decoder_owner_sys_t::b_full, decoder_t::b_need_packetized, es_format_t::b_packetized, decoder_owner_sys_t::b_packetizer, decoder_owner_sys_t::b_paused, decoder_owner_sys_t::b_supported, block_FifoNew(), decoder_owner_sys_t::buffer, decoder_owner_sys_t::cc, DecoderGetDisplayDate(), DecoderGetDisplayRate(), DecoderGetInputAttachments(), es_format_Clean(), es_format_Copy(), es_format_Init(), decoder_owner_sys_t::fmt_description, decoder_t::fmt_in, decoder_t::fmt_out, i, es_format_t::i_cat, decoder_owner_sys_t::i_count, decoder_owner_sys_t::i_date, decoder_owner_sys_t::i_ignore, decoder_owner_sys_t::i_last_rate, decoder_owner_sys_t::i_preroll_end, decoder_owner_sys_t::i_spu_channel, decoder_owner_sys_t::i_spu_order, decoder_owner_sys_t::i_ts_delay, INPUT_RATE_DEFAULT, decoder_owner_sys_t::lock, module_need, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, decoder_owner_sys_t::p_audio, decoder_owner_sys_t::p_block, decoder_owner_sys_t::p_description, decoder_t::p_description, decoder_owner_sys_t::p_fifo, decoder_owner_sys_t::p_input, decoder_t::p_module, decoder_t::p_owner, decoder_owner_sys_t::p_packetizer, decoder_owner_sys_t::p_picture, decoder_owner_sys_t::p_sout, decoder_owner_sys_t::p_sout_input, decoder_owner_sys_t::p_spu_vout, decoder_owner_sys_t::p_subpic, decoder_owner_sys_t::p_vout, decoder_owner_sys_t::pause, audio_replay_gain_t::pb_gain, audio_replay_gain_t::pb_peak, decoder_owner_sys_t::pb_present, decoder_t::pf_aout_buffer_del, decoder_t::pf_aout_buffer_new, decoder_t::pf_decode_audio, decoder_t::pf_decode_sub, decoder_t::pf_decode_video, audio_replay_gain_t::pf_gain, decoder_t::pf_get_attachments, decoder_t::pf_get_cc, decoder_t::pf_get_display_date, decoder_t::pf_get_display_rate, decoder_t::pf_packetize, audio_replay_gain_t::pf_peak, decoder_t::pf_picture_link, decoder_t::pf_picture_unlink, decoder_t::pf_spu_buffer_del, decoder_t::pf_spu_buffer_new, decoder_t::pf_vout_buffer_del, decoder_t::pf_vout_buffer_new, decoder_owner_sys_t::pp_decoder, spu_del_buffer(), spu_new_buffer(), UNKNOWN_ES, vlc_cond_init(), vlc_custom_create, vlc_mutex_init(), vlc_object_attach, VLC_OBJECT_DECODER, vlc_object_release, VLC_TS_INVALID, vout_del_buffer(), vout_link_picture(), vout_new_buffer(), vout_unlink_picture(), decoder_owner_sys_t::wait_acknowledge, and decoder_owner_sys_t::wait_request.
Referenced by ImageRead(), input_DecoderNew(), and input_DecoderSetCcState().
| void decoder_DeleteAudioBuffer | ( | decoder_t * | p_decoder, | |
| aout_buffer_t * | p_buffer | |||
| ) |
This function will release a audio buffer created by decoder_NewAudioBuffer.
References decoder_t::pf_aout_buffer_del.
This function will release a picture create by decoder_NewPicture.
References decoder_t::pf_vout_buffer_del.
Referenced by DecodeVideo(), DpbClean(), DpbUnlinkPicture(), ffmpeg_GetFrameBuf(), and SchroFrameFree().
| void decoder_DeleteSubpicture | ( | decoder_t * | p_decoder, | |
| subpicture_t * | p_subpicture | |||
| ) |
This function will release a subpicture created by decoder_NewSubicture.
References decoder_t::pf_spu_buffer_del.
Referenced by Decode(), DecodeBlock(), DecodePacket(), ParsePacket(), ParseText(), SetupSimpleKateSPU(), Subpicture(), and Subtitle().
This function converts a decoder timestamp into a display date comparable to mdate().
You MUST use it *only* for gathering statistics about speed.
References decoder_t::pf_get_display_date, and VLC_TS_INVALID.
Referenced by decoder_SynchroChoose(), and DecodeVideo().
| int decoder_GetDisplayRate | ( | decoder_t * | ) |
This function returns the current input rate.
You MUST use it *only* for gathering statistics about speed.
References INPUT_RATE_DEFAULT, and decoder_t::pf_get_display_rate.
Referenced by decoder_SynchroChoose().
| int decoder_GetInputAttachments | ( | decoder_t * | , | |
| input_attachment_t *** | ppp_attachment, | |||
| int * | pi_attachment | |||
| ) |
This function gives all input attachments at once.
You MUST release the returned values
References decoder_t::pf_get_attachments, and VLC_EGENERIC.
Referenced by AssHandleHold(), and ParseImageAttachments().
This function will increase the picture reference count.
(picture_Hold is not usable.)
References decoder_t::pf_picture_link.
Referenced by DecodeVideo(), and DpbNewPicture().
| aout_buffer_t* decoder_NewAudioBuffer | ( | decoder_t * | , | |
| int | i_size | |||
| ) |
This function will return a new audio buffer usable by a decoder as an output buffer.
You have to release it using decoder_DeleteAudioBuffer or by returning it to the caller as a pf_decode_audio return value.
References decoder_t::pf_aout_buffer_new.
Referenced by DecBlock(), Decode(), DecodeBlock(), DecodeFrame(), DecodePacket(), DecodeRtpSpeexPacket(), DecoderWriteCallback(), GetAoutBuffer(), and SplitBuffer().
This function will return a new picture usable by a decoder as an output buffer.
You have to release it using decoder_DeletePicture or by returning it to the caller as a pf_decode_video return value.
References msg_Warn, and decoder_t::pf_vout_buffer_new.
Referenced by CreateSchroFrameFromPic(), DecBlock(), Decode(), DecodeBlock(), DecodeFrame(), DecodePacket(), DecodeVideo(), ffmpeg_NewPictBuf(), GetNewPicture(), and InitVideo().
| subpicture_t* decoder_NewSubpicture | ( | decoder_t * | , | |
| const subpicture_updater_t * | ||||
| ) |
This function will return a new subpicture usable by a decoder as an output buffer.
You have to release it using decoder_DeleteSubpicture or by returning it to the caller as a pf_decode_sub return value.
References msg_Warn, and decoder_t::pf_spu_buffer_new.
Referenced by Decode(), DecodeBlock(), DecodePacket(), ParsePacket(), ParseText(), render(), Subpicture(), and Subtitle().
This function will decrease the picture reference count.
(picture_Release is not usable.)
References decoder_t::pf_picture_unlink.
Referenced by DpbClean(), DpbUnlinkPicture(), and ffmpeg_ReleaseFrameBuf().
| static block_t* DecoderBlockFlushNew | ( | ) | [static] |
References block_Alloc(), BLOCK_FLAG_CORE_FLUSH, BLOCK_FLAG_CORRUPTED, BLOCK_FLAG_DISCONTINUITY, block_t::i_buffer, block_t::i_flags, and block_t::p_buffer.
Referenced by DecoderFlush(), DecoderProcessAudio(), and DecoderProcessVideo().
References aout_DecDeleteBuffer(), aout_DecFlush(), decoder_t::b_die, block_Release(), input_thread_private_t::counters, input_thread_private_t::counters_lock, DecoderPlayAudio(), decoder_owner_sys_t::i_preroll_end, block_t::i_pts, msg_Dbg, input_thread_t::p, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, input_thread_private_t::p_decoded_audio, decoder_owner_sys_t::p_input, input_thread_private_t::p_lost_abuffers, decoder_t::p_owner, input_thread_private_t::p_played_abuffers, decoder_t::pf_decode_audio, stats_UpdateInteger, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_TS_INVALID.
Referenced by DecoderProcessAudio().
References decoder_t::b_die, block_Release(), input_thread_private_t::counters, input_thread_private_t::counters_lock, picture_t::date, DecoderGetCc(), DecoderPlayVideo(), decoder_owner_sys_t::i_preroll_end, msg_Dbg, input_thread_t::p, input_thread_private_t::p_decoded_video, input_thread_private_t::p_displayed_pictures, decoder_owner_sys_t::p_input, input_thread_private_t::p_lost_pictures, decoder_t::p_owner, decoder_owner_sys_t::p_packetizer, decoder_owner_sys_t::p_vout, decoder_t::pf_decode_video, decoder_t::pf_get_cc, stats_UpdateInteger, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TS_INVALID, vout_Flush(), and vout_ReleasePicture().
Referenced by DecoderProcessVideo().
References BLOCK_FLAG_CORE_FLUSH, block_Release(), DecoderProcessOnFlush(), and block_t::i_flags.
Referenced by DecoderThread().
| static void DecoderFixTs | ( | decoder_t * | p_dec, | |
| mtime_t * | pi_ts0, | |||
| mtime_t * | pi_ts1, | |||
| mtime_t * | pi_duration, | |||
| int * | pi_rate, | |||
| mtime_t | i_ts_bound, | |||
| bool | b_telx | |||
| ) | [static] |
References DecoderTeletextFixTs(), decoder_owner_sys_t::i_ts_delay, input_clock_ConvertTS(), input_clock_GetRate(), INPUT_RATE_DEFAULT, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_clock, decoder_t::p_owner, vlc_assert_locked, and VLC_TS_INVALID.
Referenced by DecoderPlayAudio(), DecoderPlaySout(), DecoderPlaySpu(), and DecoderPlayVideo().
| static void DecoderFlush | ( | decoder_t * | p_dec | ) | [static] |
References decoder_owner_sys_t::b_flushing, block_FifoEmpty(), DecoderBlockFlushNew(), input_DecoderDecode(), decoder_owner_sys_t::lock, decoder_owner_sys_t::p_fifo, decoder_t::p_owner, vlc_assert_locked, vlc_cond_signal(), vlc_cond_wait(), vlc_object_alive, decoder_owner_sys_t::wait_acknowledge, and decoder_owner_sys_t::wait_request.
Referenced by input_DecoderFrameNext(), and input_DecoderStartBuffering().
| static void DecoderFlushBuffering | ( | decoder_t * | p_dec | ) | [static] |
References aout_BufferFree, block_ChainRelease(), decoder_owner_sys_t::buffer, decoder_owner_sys_t::i_count, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_audio, decoder_owner_sys_t::p_block, subpicture_t::p_next, block_t::p_next, picture_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_picture, decoder_owner_sys_t::p_subpic, decoder_owner_sys_t::p_vout, decoder_owner_sys_t::pp_audio_next, decoder_owner_sys_t::pp_block_next, decoder_owner_sys_t::pp_picture_next, decoder_owner_sys_t::pp_subpic_next, subpicture_Delete(), vlc_assert_locked, and vout_ReleasePicture().
Referenced by aout_new_buffer(), DecoderProcessOnFlush(), DeleteDecoder(), spu_new_buffer(), and vout_new_buffer().
References decoder_owner_sys_t::b_supported, block_Duplicate(), block_Release(), decoder_owner_sys_t::cc, DecoderProcess(), i, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::pb_present, decoder_t::pf_get_cc, decoder_owner_sys_t::pp_decoder, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by DecoderDecodeVideo(), and DecoderProcessVideo().
| static int DecoderGetDisplayRate | ( | decoder_t * | p_dec | ) | [static] |
References input_clock_GetRate(), INPUT_RATE_DEFAULT, decoder_owner_sys_t::p_clock, and decoder_t::p_owner.
Referenced by CreateDecoder().
| static int DecoderGetInputAttachments | ( | decoder_t * | p_dec, | |
| input_attachment_t *** | ppp_attachment, | |||
| int * | pi_attachment | |||
| ) | [static] |
References input_Control(), INPUT_GET_ATTACHMENTS, decoder_owner_sys_t::p_input, and decoder_t::p_owner.
Referenced by CreateDecoder().
| static bool DecoderIsFlushing | ( | decoder_t * | p_dec | ) | [static] |
References decoder_owner_sys_t::b_flushing, decoder_owner_sys_t::lock, decoder_t::p_owner, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by vout_new_buffer().
References aout_DecChangePause(), AUDIO_ES, decoder_t::fmt_out, es_format_t::i_cat, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, decoder_t::p_owner, decoder_owner_sys_t::p_vout, VIDEO_ES, vlc_assert_locked, and vout_ChangePause().
Referenced by input_DecoderChangePause().
| static void DecoderPlayAudio | ( | decoder_t * | p_dec, | |
| aout_buffer_t * | p_audio, | |||
| int * | pi_played_sum, | |||
| int * | pi_lost_sum | |||
| ) | [static] |
References aout_BufferFree, aout_DecGetResetLost(), aout_DecPlay(), AOUT_MAX_ADVANCE_TIME, AOUT_MAX_INPUT_RATE, AOUT_MAX_PREPARE_TIME, decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_full, decoder_owner_sys_t::buffer, DECODER_MAX_BUFFERING_AUDIO_DURATION, DECODER_MAX_BUFFERING_COUNT, DecoderFixTs(), DecoderWaitDate(), DecoderWaitUnblock(), decoder_owner_sys_t::i_count, block_t::i_length, block_t::i_pts, INPUT_RATE_DEFAULT, decoder_owner_sys_t::lock, msg_Warn, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, decoder_owner_sys_t::p_audio, block_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::pp_audio_next, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TS_INVALID, and decoder_owner_sys_t::wait_acknowledge.
Referenced by DecoderDecodeAudio().
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_full, block_ChainLastAppend(), block_Release(), decoder_owner_sys_t::buffer, DecoderFixTs(), DecoderWaitUnblock(), decoder_owner_sys_t::i_count, block_t::i_dts, block_t::i_length, block_t::i_pts, block_t::i_rate, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_block, decoder_owner_sys_t::p_clock, block_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_sout_input, decoder_owner_sys_t::pp_block_next, sout_InputSendBuffer(), vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_acknowledge.
Referenced by DecoderProcessSout().
| static void DecoderPlaySpu | ( | decoder_t * | p_dec, | |
| subpicture_t * | p_subpic, | |||
| bool | b_telx | |||
| ) | [static] |
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_full, decoder_owner_sys_t::buffer, DecoderFixTs(), DecoderWaitDate(), DecoderWaitUnblock(), decoder_owner_sys_t::i_count, subpicture_t::i_start, subpicture_t::i_stop, decoder_owner_sys_t::lock, msg_Warn, subpicture_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_spu_vout, decoder_owner_sys_t::p_subpic, decoder_owner_sys_t::pp_subpic_next, SPU_MAX_PREPARE_TIME, subpicture_Delete(), vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TS_INVALID, vout_PutSubpicture(), and decoder_owner_sys_t::wait_acknowledge.
Referenced by DecoderProcessSpu().
| static void DecoderPlayVideo | ( | decoder_t * | p_dec, | |
| picture_t * | p_picture, | |||
| int * | pi_played_sum, | |||
| int * | pi_lost_sum | |||
| ) | [static] |
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_first, picture_t::b_force, decoder_owner_sys_t::b_full, decoder_owner_sys_t::buffer, picture_t::date, DECODER_BOGUS_VIDEO_DELAY, DECODER_MAX_BUFFERING_COUNT, DECODER_MAX_BUFFERING_VIDEO_DURATION, DecoderFixTs(), DecoderWaitUnblock(), decoder_owner_sys_t::i_count, decoder_owner_sys_t::i_last_rate, INPUT_RATE_DEFAULT, decoder_owner_sys_t::lock, msg_Dbg, msg_Warn, picture_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_picture, decoder_owner_sys_t::p_vout, decoder_owner_sys_t::pp_picture_next, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), VLC_TS_INVALID, vout_Flush(), vout_GetResetStatistic(), vout_PutPicture(), vout_ReleasePicture(), and decoder_owner_sys_t::wait_acknowledge.
Referenced by DecoderDecodeVideo().
Decode a block.
| p_dec | the decoder object | |
| p_block | the block to decode |
References AUDIO_ES, decoder_t::b_error, decoder_owner_sys_t::b_packetizer, BLOCK_FLAG_CORE_FLUSH, BLOCK_FLAG_CORE_PRIVATE_MASK, block_Release(), DecoderProcessAudio(), DecoderProcessOnFlush(), DecoderProcessSout(), DecoderProcessSpu(), DecoderProcessVideo(), DecoderUpdatePreroll(), decoder_t::fmt_out, block_t::i_buffer, es_format_t::i_cat, block_t::i_flags, decoder_owner_sys_t::i_preroll_end, msg_Err, decoder_t::p_owner, SPU_ES, and VIDEO_ES.
Referenced by DecoderGetCc(), and DecoderThread().
References aout_DecFlush(), DecoderBlockFlushNew(), DecoderDecodeAudio(), es_format_Clean(), es_format_Copy(), decoder_t::fmt_in, decoder_t::fmt_out, es_format_t::i_extra, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, block_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_packetizer, and decoder_t::pf_packetize.
Referenced by DecoderProcess().
| static void DecoderProcessOnFlush | ( | decoder_t * | p_dec | ) | [static] |
References decoder_t::b_error, block_Release(), DecoderPlaySout(), es_format_Copy(), decoder_t::fmt_in, decoder_t::fmt_out, es_format_t::i_codec, es_format_t::i_group, es_format_t::i_id, msg_Err, block_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_sout, decoder_owner_sys_t::p_sout_input, decoder_t::pf_packetize, es_format_t::psz_language, decoder_owner_sys_t::sout, sout_InputNew(), strdup(), and VLC_CODEC_TELETEXT.
Referenced by DecoderProcess().
References input_thread_private_t::counters, input_thread_private_t::counters_lock, DecoderPlaySpu(), decoder_t::fmt_in, es_format_t::i_codec, decoder_owner_sys_t::i_preroll_end, decoder_owner_sys_t::i_spu_channel, subpicture_t::i_start, subpicture_t::i_stop, input_resource_HoldVout(), input_thread_t::p, input_thread_private_t::p_decoded_sub, decoder_owner_sys_t::p_input, decoder_t::p_owner, input_thread_private_t::p_resource, decoder_owner_sys_t::p_spu_vout, decoder_t::pf_decode_sub, stats_UpdateInteger, subpicture_Delete(), VLC_CODEC_TELETEXT, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_release, VLC_TS_INVALID, and vout_FlushSubpictureChannel().
Referenced by DecoderProcess().
References DecoderBlockFlushNew(), DecoderDecodeVideo(), DecoderGetCc(), es_format_Clean(), es_format_Copy(), decoder_t::fmt_in, decoder_t::fmt_out, es_format_t::i_extra, block_t::p_next, decoder_t::p_owner, decoder_owner_sys_t::p_packetizer, decoder_owner_sys_t::p_vout, decoder_t::pf_get_cc, decoder_t::pf_packetize, VLC_TS_INVALID, and vout_Flush().
Referenced by DecoderProcess().
| static void DecoderSignalBuffering | ( | decoder_t * | p_dec, | |
| bool | b_full | |||
| ) | [static] |
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_full, decoder_owner_sys_t::buffer, decoder_owner_sys_t::lock, decoder_t::p_owner, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_acknowledge.
Referenced by DecoderThread(), and vout_new_buffer().
| static void * DecoderThread | ( | vlc_object_t * | p_this | ) | [static] |
The decoding main loop.
| p_dec | the decoder |
References decoder_t::b_error, block_FifoGet(), DecoderError(), DecoderProcess(), DecoderSignalBuffering(), decoder_owner_sys_t::p_fifo, decoder_t::p_owner, vlc_restorecancel(), and vlc_savecancel().
Referenced by DecoderOpen(), and input_DecoderNew().
| static void DecoderUnsupportedCodec | ( | decoder_t * | p_dec, | |
| vlc_fourcc_t | codec | |||
| ) | [static] |
References _, dialog_Fatal, and msg_Err.
Referenced by input_DecoderNew(), and input_DecoderSetCcState().
| static void DecoderUpdateFormatLocked | ( | decoder_t * | p_dec | ) | [static] |
References decoder_owner_sys_t::b_fmt_description, es_format_Clean(), es_format_Copy(), decoder_owner_sys_t::fmt_description, decoder_t::fmt_out, decoder_owner_sys_t::lock, decoder_t::p_description, decoder_owner_sys_t::p_description, decoder_t::p_owner, vlc_assert_locked, and vlc_meta_Delete().
Referenced by aout_new_buffer(), and vout_new_buffer().
| static void DecoderUpdatePreroll | ( | int64_t * | pi_preroll, | |
| const block_t * | p | |||
| ) | [inline, static] |
References __MIN, BLOCK_FLAG_DISCONTINUITY, BLOCK_FLAG_PREROLL, block_t::i_dts, block_t::i_flags, block_t::i_pts, and VLC_TS_INVALID.
Referenced by DecoderProcess().
If *pb_reject, it does nothing, otherwise it waits for the given deadline or a flush request (in which case it set *pi_reject to true.
References decoder_t::b_die, decoder_owner_sys_t::b_flushing, decoder_owner_sys_t::lock, decoder_t::p_owner, vlc_cond_timedwait(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_request.
Referenced by DecoderPlayAudio(), and DecoderPlaySpu().
| static void DecoderWaitUnblock | ( | decoder_t * | p_dec, | |
| bool * | pb_reject | |||
| ) | [static] |
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_flushing, decoder_owner_sys_t::b_full, decoder_owner_sys_t::b_paused, decoder_owner_sys_t::buffer, decoder_owner_sys_t::i_ignore, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::pause, vlc_assert_locked, vlc_cond_wait(), and decoder_owner_sys_t::wait_request.
Referenced by DecoderPlayAudio(), DecoderPlaySout(), DecoderPlaySpu(), and DecoderPlayVideo().
| static void DeleteDecoder | ( | decoder_t * | p_dec | ) | [static] |
Destroys a decoder object.
| p_dec | the decoder object |
References aout_DecDelete(), block_FifoCount(), block_FifoEmpty(), block_FifoRelease(), DecoderFlushBuffering(), es_format_Clean(), decoder_owner_sys_t::fmt_description, decoder_t::fmt_in, decoder_t::fmt_out, es_format_t::i_cat, es_format_t::i_codec, decoder_owner_sys_t::i_spu_channel, input_resource_HoldVout(), input_resource_RequestAout(), input_resource_RequestVout(), input_SendEventAout(), input_SendEventVout(), decoder_owner_sys_t::lock, module_unneed, msg_Dbg, input_thread_t::p, decoder_owner_sys_t::p_aout, decoder_owner_sys_t::p_aout_input, decoder_owner_sys_t::p_description, decoder_t::p_description, decoder_owner_sys_t::p_fifo, decoder_owner_sys_t::p_input, decoder_t::p_module, decoder_t::p_owner, decoder_owner_sys_t::p_packetizer, input_thread_private_t::p_resource, decoder_owner_sys_t::p_sout_input, decoder_owner_sys_t::p_spu_vout, decoder_owner_sys_t::p_vout, decoder_owner_sys_t::sout, sout_InputDelete(), SPU_ES, vlc_cond_destroy(), vlc_meta_Delete(), vlc_mutex_destroy(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_release, vout_FlushSubpictureChannel(), vout_Reset(), decoder_owner_sys_t::wait_acknowledge, and decoder_owner_sys_t::wait_request.
Referenced by CreateDecoder(), image_HandlerDelete(), ImageRead(), input_DecoderDelete(), input_DecoderNew(), and input_DecoderSetCcState().
This function changes the delay.
References decoder_owner_sys_t::i_ts_delay, decoder_owner_sys_t::lock, decoder_t::p_owner, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutDecoderChangeDelay().
This function changes the pause state.
The date parameter MUST hold the exact date at wich the change has been done for proper vout/aout pausing.
References decoder_owner_sys_t::b_paused, DecoderOutputChangePause(), decoder_owner_sys_t::i_date, decoder_owner_sys_t::i_ignore, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::pause, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_request.
Referenced by EsOutDecodersChangePause().
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_sys_t::b_buffering, block_FifoEmpty(), block_FifoPace(), block_FifoPut(), block_FifoSize(), msg_Warn, decoder_owner_sys_t::p_fifo, and decoder_t::p_owner.
Referenced by DecoderFlush(), EsOutSend(), and Send().
| 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_sys_t::b_buffering, decoder_owner_sys_t::b_flushing, decoder_owner_sys_t::b_paused, decoder_owner_sys_t::b_supported, decoder_owner_sys_t::cc, DeleteDecoder(), i, input_DecoderSetCcState(), decoder_owner_sys_t::lock, module_unneed, decoder_t::p_module, decoder_t::p_owner, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_kill, vlc_thread_join, and decoder_owner_sys_t::wait_request.
Referenced by Del(), EsDestroyDecoder(), EsOutSetRecord(), and EsOutTerminate().
This function force the display of the next picture and fills the stream time consumed.
References decoder_owner_sys_t::b_paused, DecoderFlush(), decoder_t::fmt_out, es_format_t::i_cat, decoder_owner_sys_t::i_ignore, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::p_vout, decoder_owner_sys_t::pause, VIDEO_ES, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), vout_NextPicture(), and decoder_owner_sys_t::wait_request.
Referenced by EsOutFrameNext().
| int input_DecoderGetCcState | ( | decoder_t * | p_dec, | |
| bool * | pb_decode, | |||
| int | i_channel | |||
| ) |
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_sys_t::cc, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::pb_present, decoder_owner_sys_t::pp_decoder, VLC_EGENERIC, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsIsSelected().
| size_t input_DecoderGetFifoSize | ( | decoder_t * | p_dec | ) |
This function returns the current size in bytes of the decoder fifo.
References block_FifoSize(), decoder_owner_sys_t::p_fifo, and decoder_t::p_owner.
Referenced by EsOutIsExtraBufferingAllowed().
| void input_DecoderGetObjects | ( | decoder_t * | , | |
| vout_thread_t ** | , | |||
| aout_instance_t ** | ||||
| ) |
This function returns the objects associated to a decoder.
They must be released using vlc_object_release().
References decoder_owner_sys_t::lock, decoder_owner_sys_t::p_aout, decoder_t::p_owner, decoder_owner_sys_t::p_vout, vlc_mutex_lock(), vlc_mutex_unlock(), and vlc_object_hold.
Referenced by EsOutControlLocked().
| 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_sys_t::b_fmt_description, es_format_Copy(), decoder_owner_sys_t::fmt_description, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_description, decoder_t::p_owner, vlc_meta_Merge(), vlc_meta_New(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutSend().
| void input_DecoderIsCcPresent | ( | decoder_t * | p_dec, | |
| bool | pb_present[4] | |||
| ) |
This function set each pb_present entry to true if the corresponding channel exists or false otherwise.
References decoder_owner_sys_t::cc, i, decoder_owner_sys_t::lock, decoder_t::p_owner, decoder_owner_sys_t::pb_present, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by EsOutSend().
| bool input_DecoderIsEmpty | ( | decoder_t * | p_dec | ) |
This function returns true if the decoder fifo is empty and false otherwise.
References decoder_owner_sys_t::b_buffering, block_FifoCount(), decoder_t::fmt_out, es_format_t::i_cat, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_fifo, decoder_t::p_owner, decoder_owner_sys_t::p_vout, VIDEO_ES, vlc_mutex_lock(), vlc_mutex_unlock(), and vout_IsEmpty().
Referenced by EsOutDecodersIsEmpty(), and EsOutDel().
| decoder_t* input_DecoderNew | ( | input_thread_t * | p_input, | |
| es_format_t * | fmt, | |||
| input_clock_t * | p_clock, | |||
| sout_instance_t * | p_sout | |||
| ) |
Spawns a new decoder thread.
| p_input | the input thread | |
| p_es | the es descriptor |
References _, AUDIO_ES, CreateDecoder(), DecoderThread(), DecoderUnsupportedCodec(), DeleteDecoder(), dialog_Fatal, decoder_t::fmt_out, es_format_t::i_cat, es_format_t::i_codec, module_unneed, msg_Err, N_, decoder_owner_sys_t::p_clock, decoder_t::p_module, decoder_t::p_owner, psz_type, UNKNOWN_ES, vlc_gettext(), vlc_thread_create, VLC_THREAD_PRIORITY_AUDIO, and VLC_THREAD_PRIORITY_VIDEO.
Referenced by Add(), EsCreateDecoder(), and EsOutSetRecord().
| int input_DecoderSetCcState | ( | decoder_t * | p_dec, | |
| bool | b_decode, | |||
| int | i_channel | |||
| ) |
This function activates the request closed caption channel.
References _, decoder_owner_sys_t::cc, CreateDecoder(), DecoderUnsupportedCodec(), DeleteDecoder(), dialog_Fatal, es_format_Init(), decoder_owner_sys_t::lock, module_unneed, msg_Err, decoder_owner_sys_t::p_clock, decoder_owner_sys_t::p_input, decoder_t::p_module, decoder_t::p_owner, decoder_owner_sys_t::p_sout, decoder_owner_sys_t::pb_present, decoder_owner_sys_t::pp_decoder, SPU_ES, VLC_EGENERIC, VLC_FOURCC, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_kill, and VLC_SUCCESS.
Referenced by EsSelect(), EsUnselect(), and input_DecoderDelete().
| void input_DecoderStartBuffering | ( | decoder_t * | p_dec | ) |
This function starts the buffering mode.
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_first, decoder_owner_sys_t::b_full, decoder_owner_sys_t::buffer, DecoderFlush(), decoder_owner_sys_t::i_count, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_audio, decoder_owner_sys_t::p_block, decoder_t::p_owner, decoder_owner_sys_t::p_picture, decoder_owner_sys_t::p_subpic, decoder_owner_sys_t::pp_audio_next, decoder_owner_sys_t::pp_block_next, decoder_owner_sys_t::pp_picture_next, decoder_owner_sys_t::pp_subpic_next, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_request.
Referenced by EsCreateDecoder(), EsOutChangePosition(), and EsOutSetRecord().
| void input_DecoderStopBuffering | ( | decoder_t * | p_dec | ) |
This function stops the buffering mode.
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::lock, decoder_t::p_owner, vlc_cond_signal(), vlc_mutex_lock(), vlc_mutex_unlock(), and decoder_owner_sys_t::wait_request.
Referenced by EsOutDecodersStopBuffering().
| void input_DecoderWaitBuffering | ( | decoder_t * | p_dec | ) |
This function waits for the decoder to have buffered sufficient data.
References decoder_owner_sys_t::b_buffering, decoder_owner_sys_t::b_full, block_FifoWake(), decoder_owner_sys_t::buffer, decoder_owner_sys_t::lock, decoder_owner_sys_t::p_fifo, decoder_t::p_owner, vlc_cond_wait(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_alive, and decoder_owner_sys_t::wait_acknowledge.
Referenced by EsOutDecodersStopBuffering().
| static void spu_del_buffer | ( | decoder_t * | p_dec, | |
| subpicture_t * | p_subpic | |||
| ) | [static] |
References input_resource_HoldVout(), msg_Warn, input_thread_t::p, decoder_owner_sys_t::p_input, decoder_t::p_owner, input_thread_private_t::p_resource, decoder_owner_sys_t::p_spu_vout, subpicture_Delete(), and vlc_object_release.
Referenced by CreateDecoder(), SpuRenderCreateAndLoadText(), transcode_spu_new(), and transcode_spu_process().
| static subpicture_t * spu_new_buffer | ( | decoder_t * | p_dec, | |
| const subpicture_updater_t * | p_updater | |||
| ) | [static] |
References decoder_t::b_die, decoder_t::b_error, subpicture_t::b_subtitle, DECODER_SPU_VOUT_WAIT_DURATION, DecoderFlushBuffering(), subpicture_t::i_channel, subpicture_t::i_order, decoder_owner_sys_t::i_spu_channel, decoder_owner_sys_t::i_spu_order, input_resource_HoldVout(), decoder_owner_sys_t::lock, msg_Warn, msleep, input_thread_t::p, decoder_owner_sys_t::p_input, decoder_t::p_owner, input_thread_private_t::p_resource, decoder_owner_sys_t::p_spu_vout, subpicture_New(), vlc_mutex_lock(), vlc_mutex_unlock(), vlc_object_release, and vout_RegisterSubpictureChannel().
Referenced by CreateDecoder(), SpuRenderCreateAndLoadText(), and transcode_spu_new().
References decoder_t::p_owner, decoder_owner_sys_t::p_vout, and vout_ReleasePicture().
Referenced by CreateDecoder().
References decoder_t::p_owner, decoder_owner_sys_t::p_vout, and vout_HoldPicture().
Referenced by CreateDecoder().
References decoder_t::b_die, decoder_t::b_error, DECODER_MAX_BUFFERING_COUNT, DecoderFlushBuffering(), DecoderIsFlushing(), DecoderSignalBuffering(), DecoderUpdateFormatLocked(), decoder_t::fmt_in, 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, input_resource_RequestVout(), input_SendEventVout(), decoder_owner_sys_t::lock, msg_Err, msg_Warn, msleep, input_thread_t::p, decoder_owner_sys_t::p_input, decoder_t::p_owner, input_thread_private_t::p_resource, decoder_owner_sys_t::p_vout, var_CreateGetBool, decoder_owner_sys_t::video, es_format_t::video, VLC_CODEC_DIRAC, VLC_CODEC_H264, VLC_CODEC_VP5, VLC_CODEC_VP6, VLC_CODEC_VP6F, VLC_CODEC_VP8, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_ureduce(), vout_FixLeaks(), vout_GetPicture(), and VOUT_OUTMEM_SLEEP.
Referenced by CreateDecoder().
References decoder_t::p_owner, decoder_owner_sys_t::p_vout, and vout_ReleasePicture().
Referenced by CreateDecoder().
1.5.6