xine-lib 1.2.13-20230125hg15249
|
#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) |
Referenced by video_decoder_loop().
Referenced by video_decoder_loop().
#define LOG_MODULE "video_decoder" |
#define LOG_VERBOSE |
#define SCHED_OTHER 0 |
Referenced by _x_audio_decoder_init(), _x_video_decoder_init(), and ao_alsa_mixer_init().
#define SPU_SLEEP_INTERVAL (90000/2) |
Referenced by _x_spu_decoder_sleep().
#define SPU_TRACK_MAP_END 0x80000000 |
Referenced by video_decoder_loop().
#define SPU_TRACK_MAP_MASK 0x8000ffff |
Referenced by video_decoder_loop().
#define SPU_TRACK_MAP_MAX 50 |
Referenced by video_decoder_loop().
int _x_spu_decoder_sleep | ( | xine_stream_t * | s, |
int64_t | next_spu_vpts ) |
References _x_action_pending(), BUF_CONTROL_FLUSH_DECODER, xine_s::clock, fifo_buffer_s::first, metronom_clock_s::get_current_time, xine_private_t::port_ticket, xine_ticket_s::renew, xine_stream_private_st::s, SPU_SLEEP_INTERVAL, xine_ticket_s::ticket_revoked, buf_element_s::type, xine_stream_private_st::video_decoder_plugin, xine_stream_s::video_fifo, xine_private_t::x, xine_stream_s::xine, and xine_usec_sleep().
Referenced by spudec_decode_data().
int _x_video_decoder_init | ( | xine_stream_t * | s | ) |
References _, _x_dummy_fifo_buffer_new(), _x_fifo_buffer_new(), xine_s::config, fifo_buffer_s::dispose, NULL, config_values_s::register_num, xine_stream_private_st::s, SCHED_OTHER, xine_stream_private_st::side_streams, xine_stream_private_st::spu_track_map_entries, video_decoder_loop(), xine_stream_s::video_fifo, xine_stream_s::video_out, xine_stream_private_st::video_thread, xine_stream_private_st::video_thread_created, xine_stream_s::xine, xine_log(), and XINE_LOG_MSG.
Referenced by xine_stream_new().
void _x_video_decoder_shutdown | ( | xine_stream_t * | s | ) |
References BUF_CONTROL_QUIT, fifo_buffer_s::buffer_pool_alloc, fifo_buffer_s::dispose, lprintf, NULL, fifo_buffer_s::put, xine_stream_private_st::s, buf_element_s::type, xine_stream_s::video_fifo, xine_stream_private_st::video_thread, and xine_stream_private_st::video_thread_created.
Referenced by xine_dispose(), and xine_stream_new().
|
static |
References _x_free_spu_decoder(), _x_get_spu_decoder(), xine_stream_s::spu_decoder_plugin, xine_stream_s::spu_decoder_streamtype, and type.
Referenced by video_decoder_loop().
|
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_EI_RING_SIZE, xine_ticket_s::acquire, 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, xine_ticket_s::release, spu_decoder_s::reset, video_decoder_s::reset, xine_stream_private_st::s, extra_info_s::seek_count, xine_stream_private_st::side_streams, 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, buf_element_s::type, xine_event_t::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().