xine-lib 1.2.11
Macros | Functions
video_decoder.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <errno.h>
#include <sys/time.h>
#include <xine/xine_internal.h>
#include <xine/spu_decoder.h>
#include <xine/xineutils.h>
#include "xine_private.h"
#include <sched.h>

Macros

#define LOG_MODULE   "video_decoder"
 
#define LOG_VERBOSE
 
#define SPU_SLEEP_INTERVAL   (90000/2)
 
#define SCHED_OTHER   0
 
#define SPU_TRACK_MAP_MAX   50
 
#define SPU_TRACK_MAP_MASK   0x8000ffff
 
#define SPU_TRACK_MAP_END   0x80000000
 
#define BUFTYPE_BASE(type)   ((type) >> 24)
 
#define BUFTYPE_SUB(type)   (((type) & 0x00ff0000) >> 16)
 

Functions

static void update_spu_decoder (xine_stream_t *stream, int type)
 
int _x_spu_decoder_sleep (xine_stream_t *s, int64_t next_spu_vpts)
 
static void * video_decoder_loop (void *stream_gen)
 
int _x_video_decoder_init (xine_stream_t *s)
 
void _x_video_decoder_shutdown (xine_stream_t *s)
 

Macro Definition Documentation

◆ BUFTYPE_BASE

#define BUFTYPE_BASE (   type)    ((type) >> 24)

◆ BUFTYPE_SUB

#define BUFTYPE_SUB (   type)    (((type) & 0x00ff0000) >> 16)

◆ LOG_MODULE

#define LOG_MODULE   "video_decoder"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ SCHED_OTHER

#define SCHED_OTHER   0

◆ SPU_SLEEP_INTERVAL

#define SPU_SLEEP_INTERVAL   (90000/2)

◆ SPU_TRACK_MAP_END

#define SPU_TRACK_MAP_END   0x80000000

◆ SPU_TRACK_MAP_MASK

#define SPU_TRACK_MAP_MASK   0x8000ffff

◆ SPU_TRACK_MAP_MAX

#define SPU_TRACK_MAP_MAX   50

Function Documentation

◆ _x_spu_decoder_sleep()

int _x_spu_decoder_sleep ( xine_stream_t s,
int64_t  next_spu_vpts 
)

◆ _x_video_decoder_init()

int _x_video_decoder_init ( xine_stream_t s)

◆ _x_video_decoder_shutdown()

void _x_video_decoder_shutdown ( xine_stream_t s)

◆ update_spu_decoder()

static void update_spu_decoder ( xine_stream_t stream,
int  type 
)
static

◆ video_decoder_loop()

static void * video_decoder_loop ( void *  stream_gen)
static

References _, _x_buf_video_name(), _x_extra_info_merge(), _x_extra_info_reset(), _x_free_spu_decoder(), _x_free_video_decoder(), _x_get_video_decoder(), _x_meta_info_get(), _x_meta_info_set_utf8(), _x_stream_info_get(), xine_stream_s::audio_fifo, xine_stream_private_st::audio_thread_created, BUF_CONTROL_AUDIO_CHANNEL, BUF_CONTROL_BASE, BUF_CONTROL_DISCONTINUITY, BUF_CONTROL_END, BUF_CONTROL_FLUSH_DECODER, BUF_CONTROL_HEADERS_DONE, BUF_CONTROL_NEWPTS, BUF_CONTROL_NOP, BUF_CONTROL_QUIT, BUF_CONTROL_RESET_DECODER, BUF_CONTROL_RESET_TRACK_MAP, BUF_CONTROL_SPU_CHANNEL, BUF_CONTROL_START, BUF_FLAG_GAPLESS_SW, BUF_FLAG_HEADER, BUF_FLAG_PREVIEW, BUF_FLAG_SEEK, BUF_SPU_BASE, BUF_VIDEO_BASE, BUF_VIDEO_UNKNOWN, BUFTYPE_BASE, BUFTYPE_SUB, xine_stream_private_st::changed, xine_stream_private_st::counter, xine_event_t::data_length, spu_decoder_s::decode_data, video_decoder_s::decode_data, buf_element_s::decoder_flags, buf_element_s::decoder_info, xine_stream_private_st::disable_decoder_flush_at_discontinuity, DISC_ABSOLUTE, buf_element_s::disc_off, DISC_RELATIVE, DISC_STREAMSEEK, DISC_STREAMSTART, video_decoder_s::discontinuity, xine_stream_private_st::early_finish_event, buf_element_s::extra_info, xine_stream_private_st::finisheds_audio, xine_stream_private_st::finisheds_video, xine_stream_private_st::first_frame, xine_stream_private_st::flag, video_decoder_s::flush, buf_element_s::free_buffer, xine_video_port_s::get_property, metronom_s::handle_video_discontinuity, xine_stream_private_st::headers_audio, xine_stream_private_st::headers_video, xine_stream_private_st::info_lock, xine_stream_private_st::lock, lprintf, xine_stream_s::master, xine_stream_s::metronom, NULL, xine_private_t::port_ticket, buf_element_s::pts, xine_stream_private_st::reached, spu_decoder_s::reset, video_decoder_s::reset, xine_stream_private_st::s, extra_info_s::seek_count, buf_element_s::size, fifo_buffer_s::size, xine_stream_s::spu_channel, xine_stream_s::spu_channel_auto, xine_stream_s::spu_channel_letterbox, xine_stream_private_st::spu_channel_pan_scan, xine_stream_s::spu_channel_user, xine_stream_s::spu_decoder_plugin, SPU_TRACK_MAP_END, xine_stream_private_st::spu_track_map_entries, SPU_TRACK_MAP_MASK, SPU_TRACK_MAP_MAX, xine_stream_private_st::stream_info, fifo_buffer_s::tget, xine_event_t::type, buf_element_s::type, update_spu_decoder(), xine_stream_private_st::video_decoder_extra_info, xine_stream_private_st::video_decoder_plugin, xine_stream_private_st::video_decoder_streamtype, xine_stream_s::video_fifo, xine_stream_s::video_out, xine_stream_private_st::video_seek_count, VO_PROP_BUFS_IN_FIFO, VO_PROP_NUM_STREAMS, xine_stream_s::xine, xine_event_send(), XINE_EVENT_UI_CHANNELS_CHANGED, xine_gettime(), xine_log(), XINE_LOG_MSG, XINE_META_INFO_VIDEOCODEC, xine_profiler_allocate_slot(), xine_profiler_start_count(), xine_profiler_stop_count(), xine_rwlock_rdlock, xine_rwlock_unlock, xine_rwlock_wrlock, XINE_STREAM_INFO_IGNORE_SPU, XINE_STREAM_INFO_IGNORE_VIDEO, XINE_STREAM_INFO_VIDEO_BITRATE, XINE_STREAM_INFO_VIDEO_HANDLED, xine_uint_mul_div(), xine_usec_sleep(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by _x_video_decoder_init().