xine-lib 1.2.13-20230125hg15249
Macros | Functions
demux.c File Reference
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <sched.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <xine/xine_internal.h>
#include <xine/demux.h>
#include <xine/buffer.h>
#include "xine_private.h"

Macros

#define LOG_MODULE   "demux"
 
#define LOG_VERBOSE
 

Functions

void _x_demux_flush_engine (xine_stream_t *s)
 
void _x_demux_control_newpts (xine_stream_t *s, int64_t pts, uint32_t flags)
 
static int demux_unstick_ao_loop (xine_stream_t *s)
 
void _x_demux_control_headers_done (xine_stream_t *s)
 
void _x_demux_control_start (xine_stream_t *s)
 
void _x_demux_control_end (xine_stream_t *s, uint32_t flags)
 
void _x_demux_control_nop (xine_stream_t *s, uint32_t flags)
 
static void * demux_loop (void *stream_gen)
 
int _x_demux_called_from (xine_stream_t *s)
 
int _x_demux_start_thread (xine_stream_t *s)
 
int _x_demux_stop_thread (xine_stream_t *s)
 
int _x_demux_read_stream_header (xine_stream_t *stream, input_plugin_t *input, void *buffer, size_t size)
 
int _x_demux_read_header (input_plugin_t *input, void *buffer, off_t size)
 
int _x_demux_check_extension (const char *mrl, const char *extensions)
 
off_t _x_read_abort (xine_stream_t *stream, int fd, char *buf, off_t todo)
 
int _x_action_pending (xine_stream_t *s)
 
void _x_action_raise (xine_stream_t *s)
 
void _x_action_lower (xine_stream_t *s)
 
void _x_demux_send_data (fifo_buffer_t *fifo, uint8_t *data, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, int input_normpos, int input_time, int total_time, uint32_t frame_number)
 
int _x_demux_read_send_data (fifo_buffer_t *fifo, input_plugin_t *input, int size, int64_t pts, uint32_t type, uint32_t decoder_flags, off_t input_normpos, int input_time, int total_time, uint32_t frame_number)
 
void _x_demux_send_mrl_reference (xine_stream_t *stream, int alternative, const char *mrl, const char *title, int start_time, int duration)
 
int _x_demux_seek (xine_stream_t *s, off_t start_pos, int start_time, int playing)
 

Macro Definition Documentation

◆ LOG_MODULE

#define LOG_MODULE   "demux"

◆ LOG_VERBOSE

#define LOG_VERBOSE

Function Documentation

◆ _x_action_lower()

void _x_action_lower ( xine_stream_t * s)

◆ _x_action_pending()

int _x_action_pending ( xine_stream_t * s)

◆ _x_action_raise()

void _x_action_raise ( xine_stream_t * s)

◆ _x_demux_called_from()

int _x_demux_called_from ( xine_stream_t * s)

◆ _x_demux_check_extension()

int _x_demux_check_extension ( const char * mrl,
const char * extensions )

◆ _x_demux_control_end()

void _x_demux_control_end ( xine_stream_t * s,
uint32_t flags )

◆ _x_demux_control_headers_done()

void _x_demux_control_headers_done ( xine_stream_t * s)

◆ _x_demux_control_newpts()

void _x_demux_control_newpts ( xine_stream_t * s,
int64_t pts,
uint32_t flags )

References xine_stream_s::audio_fifo, BUF_CONTROL_NEWPTS, BUF_FLAG_SEEK, fifo_buffer_s::buffer_pool_alloc, buf_element_s::decoder_flags, xine_stream_private_st::demux, buf_element_s::disc_off, xine_stream_private_st::max_seek_bufs, xine_stream_private_st::pair, fifo_buffer_s::put, xine_stream_private_st::s, xine_stream_private_st::side_streams, buf_element_s::type, and xine_stream_s::video_fifo.

Referenced by check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), check_newpts(), demux_aac_seek(), demux_aac_send_chunk(), demux_ac3_send_chunk(), demux_aiff_send_chunk(), demux_cdda_send_chunk(), demux_dts_send_chunk(), demux_eawve_seek(), demux_film_send_chunk(), demux_flac_seek(), demux_flac_send_chunk(), demux_flac_send_chunk(), demux_fli_seek(), demux_flv_seek(), demux_fourxm_seek(), demux_idcin_seek(), demux_ipmovie_seek(), demux_ivf_send_chunk(), demux_mng_send_headers(), demux_mod_send_chunk(), demux_mpc_seek(), demux_mpgaudio_seek(), demux_mve_send_chunk(), demux_nsf_seek(), demux_nsf_send_chunk(), demux_nsv_seek(), demux_qt_send_chunk(), demux_ra_send_chunk(), demux_raw_dv_seek(), demux_roq_seek(), demux_shn_seek(), demux_slave_next(), demux_snd_send_chunk(), demux_sputext_seek(), demux_str_send_chunk(), demux_tta_seek(), demux_voc_send_chunk(), demux_vox_seek(), demux_wav_send_chunk(), demux_wv_seek(), demux_yuv4mpeg2_seek(), demux_yuv4mpeg2_send_chunk(), newpts_test(), parse_private_stream_2(), switch_buf(), vdr_class_get_instance(), and vdr_execute_rpc_command().

◆ _x_demux_control_nop()

void _x_demux_control_nop ( xine_stream_t * s,
uint32_t flags )

◆ _x_demux_control_start()

void _x_demux_control_start ( xine_stream_t * s)

References xine_stream_s::audio_fifo, BUF_CONTROL_START, BUF_FLAG_GAPLESS_SW, fifo_buffer_s::buffer_pool_alloc, buf_element_s::decoder_flags, xine_stream_private_st::demux, xine_stream_private_st::finished_naturally, xine_stream_private_st::gapless_switch, xine_stream_private_st::id_flag, xine_stream_private_st::pair, fifo_buffer_s::put, xine_stream_private_st::s, xine_stream_private_st::side_streams, xine_stream_private_st::start_buffers_sent, buf_element_s::type, xine_stream_s::video_fifo, xine_stream_s::xine, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by demux_aac_send_headers(), demux_ac3_send_headers(), demux_aiff_send_headers(), demux_asf_send_headers(), demux_asf_send_headers_common(), demux_aud_send_headers(), demux_avformat_send_headers(), demux_cdda_send_headers(), demux_dts_send_headers(), demux_eawve_send_headers(), demux_film_send_headers(), demux_flac_send_headers(), demux_flac_send_headers(), demux_fli_send_headers(), demux_flv_send_headers(), demux_fourxm_send_headers(), demux_idcin_send_headers(), demux_iff_send_headers(), demux_image_send_headers(), demux_ipmovie_send_headers(), demux_ivf_send_headers(), demux_matroska_send_headers(), demux_mng_send_headers(), demux_mod_send_headers(), demux_mpc_send_headers(), demux_mpeg_block_send_headers(), demux_mpeg_elem_send_headers(), demux_mpeg_pes_send_headers(), demux_mpeg_send_headers(), demux_mpgaudio_send_headers(), demux_mve_send_headers(), demux_nsf_send_headers(), demux_nsv_send_headers(), demux_ogg_send_chunk(), demux_ogg_send_headers(), demux_playlist_send_headers(), demux_pva_send_headers(), demux_qt_send_headers(), demux_ra_send_headers(), demux_raw_dv_send_headers(), demux_roq_send_headers(), demux_shn_send_headers(), demux_slave_send_headers(), demux_smjpeg_send_headers(), demux_snd_send_headers(), demux_sputext_send_headers(), demux_str_send_headers(), demux_ts_event_handler(), demux_ts_send_headers(), demux_tta_send_headers(), demux_vc1_es_send_headers(), demux_vmd_send_headers(), demux_voc_send_headers(), demux_vox_send_headers(), demux_vqa_send_headers(), demux_wav_send_headers(), demux_wv_send_headers(), demux_yuv4mpeg2_send_headers(), demux_yuv_frames_send_headers(), dvb_plugin_read(), real_parse_headers(), and vdr_start_buffers().

◆ _x_demux_flush_engine()

void _x_demux_flush_engine ( xine_stream_t * s)

References _x_demux_control_headers_done(), xine_ticket_s::acquire, AO_PROP_DISCARD_BUFFERS, xine_stream_s::audio_fifo, xine_stream_s::audio_out, BUF_CONTROL_RESET_DECODER, fifo_buffer_s::buffer_pool_alloc, fifo_buffer_s::clear, xine_stream_private_st::demux, xine_stream_private_st::finished_naturally, xine_audio_port_s::flush, xine_video_port_s::flush, video_overlay_manager_s::flush_events, xine_stream_private_st::gapless_switch, xine_video_port_s::get_overlay_manager, xine_stream_s::master, xine_stream_private_st::pair, xine_private_t::port_ticket, fifo_buffer_s::put, xine_ticket_s::release, xine_stream_private_st::s, xine_audio_port_s::set_property, xine_video_port_s::set_property, xine_stream_private_st::side_streams, buf_element_s::type, xine_stream_s::video_fifo, xine_stream_s::video_out, VO_PROP_DISCARD_FRAMES, and xine_stream_s::xine.

Referenced by _x_demux_stop_thread(), demux_ac3_seek(), demux_aiff_seek(), demux_asf_seek(), demux_aud_seek(), demux_avformat_seek(), demux_avi_seek_internal(), demux_cdda_seek(), demux_dts_seek(), demux_film_seek(), demux_flac_seek(), demux_flac_seek(), demux_flv_seek(), demux_iff_seek(), demux_ivf_seek(), demux_matroska_seek(), demux_mod_seek(), demux_mpeg_block_seek(), demux_mpeg_elem_seek(), demux_mpeg_pes_seek(), demux_mpeg_seek(), demux_mpgaudio_seek(), demux_mve_seek(), demux_nsf_seek(), demux_ogg_seek(), demux_pva_seek(), demux_qt_seek(), demux_ra_seek(), demux_raw_dv_seek(), demux_real_seek(), demux_slave_next(), demux_snd_seek(), demux_sputext_seek(), demux_str_seek(), demux_ts_seek(), demux_tta_seek(), demux_vc1_es_seek(), demux_voc_seek(), demux_wav_seek(), demux_yuv4mpeg2_seek(), dvd_plugin_read_block(), external_stream_stop(), pvr_event_handler(), stream_reset(), switch_channel(), v4l_event_handler(), vcd_flush_buffers(), vcd_handle_events(), and vdr_execute_rpc_command().

◆ _x_demux_read_header()

int _x_demux_read_header ( input_plugin_t * input,
void * buffer,
off_t size )

◆ _x_demux_read_send_data()

int _x_demux_read_send_data ( fifo_buffer_t * fifo,
input_plugin_t * input,
int size,
int64_t pts,
uint32_t type,
uint32_t decoder_flags,
off_t input_normpos,
int input_time,
int total_time,
uint32_t frame_number )

◆ _x_demux_read_stream_header()

int _x_demux_read_stream_header ( xine_stream_t * stream,
input_plugin_t * input,
void * buffer,
size_t size )

◆ _x_demux_seek()

int _x_demux_seek ( xine_stream_t * s,
off_t start_pos,
int start_time,
int playing )

◆ _x_demux_send_data()

void _x_demux_send_data ( fifo_buffer_t * fifo,
uint8_t * data,
int size,
int64_t pts,
uint32_t type,
uint32_t decoder_flags,
int input_normpos,
int input_time,
int total_time,
uint32_t frame_number )

◆ _x_demux_send_mrl_reference()

void _x_demux_send_mrl_reference ( xine_stream_t * stream,
int alternative,
const char * mrl,
const char * title,
int start_time,
int duration )

◆ _x_demux_start_thread()

int _x_demux_start_thread ( xine_stream_t * s)

◆ _x_demux_stop_thread()

int _x_demux_stop_thread ( xine_stream_t * s)

◆ _x_read_abort()

off_t _x_read_abort ( xine_stream_t * stream,
int fd,
char * buf,
off_t todo )

References _x_action_pending(), and NULL.

Referenced by vdr_read_abort().

◆ demux_loop()

static void * demux_loop ( void * stream_gen)
static

◆ demux_unstick_ao_loop()

static int demux_unstick_ao_loop ( xine_stream_t * s)
static