xine-lib 1.2.11
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/poll.h>
#include <errno.h>
#include <pthread.h>
#include <resolv.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/input_plugin.h>
#include <xine/vdr.h>
#include "combined_vdr.h"
Data Structures | |
struct | vdr_metronom_t |
struct | vdr_osd_s |
struct | vdr_vpts_offset_t |
struct | vdr_input_plugin_s |
Macros | |
#define | LOG_MODULE "input_vdr" |
#define | LOG_VERBOSE |
#define | VDR_DISC_START (('V' << 24) | ('D' << 16) | ('R' << 8) | 1) |
#define | VDR_DISC_STOP (('V' << 24) | ('D' << 16) | ('R' << 8) | 0) |
#define | VDR_MAX_NUM_WINDOWS 16 |
#define | VDR_ABS_FIFO_DIR "/tmp/vdr-xine" |
#define | BUF_SIZE 1024 |
#define | LOG_OSD(x) |
#define | OFFS_RING_LD 7 |
#define | OFFS_RING_NUM (1 << OFFS_RING_LD) |
#define | OFFS_RING_MASK (OFFS_RING_NUM - 1) |
#define | READ_DATA_OR_FAIL(kind, log) |
Typedefs | |
typedef struct vdr_input_plugin_s | vdr_input_plugin_t |
typedef struct vdr_osd_s | vdr_osd_t |
#define BUF_SIZE 1024 |
#define LOG_MODULE "input_vdr" |
#define LOG_OSD | ( | x | ) |
#define LOG_VERBOSE |
#define OFFS_RING_LD 7 |
#define OFFS_RING_MASK (OFFS_RING_NUM - 1) |
#define OFFS_RING_NUM (1 << OFFS_RING_LD) |
#define READ_DATA_OR_FAIL | ( | kind, | |
log | |||
) |
#define VDR_ABS_FIFO_DIR "/tmp/vdr-xine" |
#define VDR_DISC_START (('V' << 24) | ('D' << 16) | ('R' << 8) | 1) |
#define VDR_DISC_STOP (('V' << 24) | ('D' << 16) | ('R' << 8) | 0) |
#define VDR_MAX_NUM_WINDOWS 16 |
typedef struct vdr_input_plugin_s vdr_input_plugin_t |
|
static |
Referenced by vdr_execute_rpc_command().
|
static |
References abs, XINE_PARAM_VO_ZOOM_X, XINE_PARAM_VO_ZOOM_Y, and xine_set_param().
Referenced by event_handler(), and vdr_execute_rpc_command().
|
static |
References _, adjust_zoom(), vdr_select_audio_data_s::channels, xine_event_t::data, xine_event_t::data_length, internal_write_event_discontinuity(), internal_write_event_frame_size(), internal_write_event_key(), key, key_0, key_1, key_2, key_3, key_4, key_5, key_6, key_7, key_8, key_9, key_audio, key_back, key_blue, key_channel_minus, key_channel_plus, key_channel_previous, key_channels, key_commands, key_down, key_fast_fwd, key_fast_rew, key_green, key_info, key_left, key_menu, key_mute, key_next, key_none, key_ok, key_pause, key_play, key_power, key_previous, key_record, key_recordings, key_red, key_right, key_schedule, key_setup, key_stop, key_subtitles, key_timers, key_up, key_user0, key_user1, key_user2, key_user3, key_user4, key_user5, key_user6, key_user7, key_user8, key_user9, key_volume_minus, key_volume_plus, key_yellow, LOG_MODULE, lprintf, NULL, xine_event_t::type, user_data(), XINE_EVENT_INPUT_DOWN, XINE_EVENT_INPUT_LEFT, XINE_EVENT_INPUT_MENU1, XINE_EVENT_INPUT_NEXT, XINE_EVENT_INPUT_NUMBER_0, XINE_EVENT_INPUT_NUMBER_1, XINE_EVENT_INPUT_NUMBER_2, XINE_EVENT_INPUT_NUMBER_3, XINE_EVENT_INPUT_NUMBER_4, XINE_EVENT_INPUT_NUMBER_5, XINE_EVENT_INPUT_NUMBER_6, XINE_EVENT_INPUT_NUMBER_7, XINE_EVENT_INPUT_NUMBER_8, XINE_EVENT_INPUT_NUMBER_9, XINE_EVENT_INPUT_PREVIOUS, XINE_EVENT_INPUT_RIGHT, XINE_EVENT_INPUT_SELECT, XINE_EVENT_INPUT_UP, xine_event_send(), XINE_EVENT_VDR_AUDIO, XINE_EVENT_VDR_BACK, XINE_EVENT_VDR_BLUE, XINE_EVENT_VDR_CHANNELMINUS, XINE_EVENT_VDR_CHANNELPLUS, XINE_EVENT_VDR_CHANNELPREVIOUS, XINE_EVENT_VDR_CHANNELS, XINE_EVENT_VDR_COMMANDS, XINE_EVENT_VDR_DISCONTINUITY, XINE_EVENT_VDR_FASTFWD, XINE_EVENT_VDR_FASTREW, XINE_EVENT_VDR_FRAMESIZECHANGED, XINE_EVENT_VDR_GREEN, XINE_EVENT_VDR_INFO, XINE_EVENT_VDR_MUTE, XINE_EVENT_VDR_PAUSE, XINE_EVENT_VDR_PLAY, XINE_EVENT_VDR_PLUGINSTARTED, XINE_EVENT_VDR_POWER, XINE_EVENT_VDR_RECORD, XINE_EVENT_VDR_RECORDINGS, XINE_EVENT_VDR_RED, XINE_EVENT_VDR_SCHEDULE, XINE_EVENT_VDR_SELECTAUDIO, XINE_EVENT_VDR_SETUP, XINE_EVENT_VDR_STOP, XINE_EVENT_VDR_SUBTITLES, XINE_EVENT_VDR_TIMERS, XINE_EVENT_VDR_TRICKSPEEDMODE, XINE_EVENT_VDR_USER0, XINE_EVENT_VDR_USER1, XINE_EVENT_VDR_USER2, XINE_EVENT_VDR_USER3, XINE_EVENT_VDR_USER4, XINE_EVENT_VDR_USER5, XINE_EVENT_VDR_USER6, XINE_EVENT_VDR_USER7, XINE_EVENT_VDR_USER8, XINE_EVENT_VDR_USER9, XINE_EVENT_VDR_VOLMINUS, XINE_EVENT_VDR_VOLPLUS, XINE_EVENT_VDR_YELLOW, XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_class_get_instance().
|
static |
References _, internal_write_event_play_external(), key, key_none, LOG_MODULE, xine_event_t::type, user_data(), XINE_EVENT_UI_PLAYBACK_FINISHED, XINE_VERBOSITY_LOG, and xprintf.
Referenced by external_stream_play().
|
static |
References _, event_handler_external(), external_stream_stop(), internal_write_event_play_external(), key, key_none, LOG_MODULE, xine_event_create_listener_thread(), xine_event_new_queue(), xine_open(), xine_play(), xine_stream_new(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_execute_rpc_command().
|
static |
References _x_demux_flush_engine(), NULL, xine_close(), xine_dispose(), xine_event_dispose_queue(), and xine_stop().
Referenced by external_stream_play(), vdr_execute_rpc_command(), and vdr_plugin_dispose().
|
static |
References event_discontinuity_t, func_discontinuity, and vdr_write().
Referenced by event_handler().
|
static |
References event_frame_size_t, func_frame_size, vdr_write(), xine_get_param(), XINE_PARAM_VO_ZOOM_X, and XINE_PARAM_VO_ZOOM_Y.
Referenced by event_handler().
|
static |
References event_key_t, func_key, key, and vdr_write().
Referenced by event_handler().
|
static |
References event_play_external_t, func_play_external, key, and vdr_write().
Referenced by event_handler_external(), and external_stream_play().
|
inlinestatic |
Referenced by vdr_class_get_instance(), and vdr_plugin_open_fifo_mrl().
|
inlinestatic |
Referenced by vdr_class_get_instance(), and vdr_plugin_open_sockets().
|
static |
References _x_demux_seek(), mode(), NULL, xine_event_send(), XINE_EVENT_VDR_TRICKSPEEDMODE, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vdr_execute_rpc_command(), vdr_metronom_handle_audio_discontinuity(), and vdr_metronom_handle_video_discontinuity().
|
static |
References NULL, and VDR_ABS_FIFO_DIR.
Referenced by vdr_input_init_plugin().
|
static |
References _x_demux_control_newpts(), BUF_FLAG_SEEK, event_handler(), func_unknown, lprintf, xine_stream_s::metronom, mrl_to_fifo(), mrl_to_host(), NULL, VDR_DISC_START, vdr_metronom_exit(), vdr_metronom_get_option(), vdr_metronom_got_audio_samples(), vdr_metronom_got_spu_packet(), vdr_metronom_got_video_frame(), vdr_metronom_handle_audio_discontinuity(), vdr_metronom_handle_video_discontinuity(), vdr_metronom_set_audio_rate(), vdr_metronom_set_master(), vdr_metronom_set_option(), vdr_plugin_dispose(), vdr_plugin_get_blocksize(), vdr_plugin_get_capabilities(), vdr_plugin_get_current_pos(), vdr_plugin_get_length(), vdr_plugin_get_mrl(), vdr_plugin_get_optional_data(), vdr_plugin_open(), vdr_plugin_read(), vdr_plugin_read_block(), vdr_plugin_seek(), vdr_vpts_offset_queue_init(), xine_event_create_listener_thread(), xine_event_new_queue(), XINE_OSD_CAP_ARGB_LAYER, XINE_OSD_CAP_CUSTOM_EXTENT, xine_osd_free(), xine_osd_get_capabilities(), xine_osd_new(), XINE_VDR_MUTE_SIMULATE, and XINE_VDR_VOLUME_CHANGE_HW.
Referenced by vdr_input_init_plugin().
|
static |
References _, _now(), _x_demux_control_newpts(), _x_demux_flush_engine(), _x_demux_seek(), _x_meta_info_reset(), _x_query_buffer_usage(), _x_query_unprocessed_osd_events(), _x_reset_relaxed_frame_drop_mode(), _x_stream_info_reset(), _x_trigger_relaxed_frame_drop_mode(), adjust_zoom(), vdr_osd_s::argb_buffer, BUF_CONTROL_FLUSH_DECODER, BUF_CONTROL_RESET_TRACK_MAP, BUF_SIZE, vdr_select_audio_data_s::channels, xine_current_frame_data_s::crop_bottom, xine_current_frame_data_s::crop_left, xine_current_frame_data_s::crop_right, xine_current_frame_data_s::crop_top, data_union_t, DISC_STREAMSTART, external_stream_play(), external_stream_stop(), xine_current_frame_data_s::format, func_clear, func_first_frame, func_flush, func_get_pts, func_get_version, func_grab_image, func_metronom, func_mute, func_nop, func_osd_draw_bitmap, func_osd_flush, func_osd_free, func_osd_hide, func_osd_new, func_osd_set_position, func_osd_show, func_play_external, func_query_capabilities, func_reset_audio, func_select_audio, func_set_color, func_set_prebuffer, func_set_speed, func_set_video_window, func_set_volume, func_setup, func_start, func_still_frame, func_trick_speed_mode, func_video_size, func_wait, get_pts(), xine_current_frame_data_s::height, height, vdr_osd_s::height, xine_current_frame_data_s::img, xine_current_frame_data_s::img_size, xine_current_frame_data_s::interlaced, xine_audio_level_data_t::left, LOG_MODULE, LOG_OSD, lprintf, MAX_SHOWING, xine_audio_level_data_t::mute, now(), NULL, osd_draw_bitmap(), osd_hide(), osd_set_position(), xine_current_frame_data_s::ratio_code, READ_DATA_OR_FAIL, result_flush_t, result_get_pts_t, result_get_version_t, result_grab_image_t, result_query_capabilities_t, result_video_size_t, result_wait_t, xine_audio_level_data_t::right, trick_speed_send_event(), xine_event_t::type, buf_element_s::type, VDR_MAX_NUM_WINDOWS, vdr_read_abort(), vdr_start_buffers(), vdr_vpts_offset_queue_ask(), vdr_write(), xine_current_frame_data_s::width, width, vdr_osd_s::width, vdr_osd_s::window, XINE_EVENT_AUDIO_LEVEL, xine_event_send(), XINE_EVENT_VDR_SELECTAUDIO, XINE_EVENT_VDR_SETVIDEOWINDOW, xine_fast_memcpy, XINE_FINE_SPEED_NORMAL, XINE_FRAME_DATA_ALLOCATE_IMG, xine_get_current_frame_data(), xine_get_current_frame_s(), xine_get_param(), xine_get_stream_info(), XINE_LIVE_PAUSE_ON, XINE_META_INFO_AUDIOCODEC, xine_osd_draw_bitmap(), xine_osd_free(), xine_osd_get_palette(), xine_osd_hide(), xine_osd_new(), xine_osd_set_argb_buffer(), xine_osd_set_extent(), xine_osd_set_palette(), xine_osd_set_position(), xine_osd_set_video_window(), xine_osd_show(), xine_osd_show_unscaled(), XINE_PARAM_AUDIO_AMP_LEVEL, XINE_PARAM_AUDIO_AMP_MUTE, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, XINE_PARAM_AUDIO_MUTE, XINE_PARAM_AUDIO_VOLUME, XINE_PARAM_FINE_SPEED, XINE_PARAM_IGNORE_AUDIO, XINE_PARAM_METRONOM_PREBUFFER, XINE_PARAM_VO_ZOOM_X, XINE_PARAM_VO_ZOOM_Y, xine_set_param(), XINE_STREAM_INFO_AUDIO_BITRATE, XINE_STREAM_INFO_MAX_AUDIO_CHANNEL, xine_usec_sleep(), XINE_VDR_MUTE_EXECUTE, XINE_VDR_MUTE_IGNORE, XINE_VDR_MUTE_SIMULATE, XINE_VDR_VERSION, XINE_VDR_VOLUME_CHANGE_SW, XINE_VDR_VOLUME_IGNORE, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_4_3, XINE_VO_ASPECT_ANAMORPHIC, XINE_VO_ASPECT_DVB, XINE_VO_ASPECT_SQUARE, and xprintf.
Referenced by vdr_rpc_thread_loop().
void * vdr_input_init_plugin | ( | xine_t * | xine, |
const void * | data | ||
) |
References input_class_s::get_instance, lprintf, N_, NULL, vdr_class_get_autoplay_list(), and vdr_class_get_instance().
|
static |
References _x_action_pending(), _x_continue_stream_processing(), _x_io_tcp_read(), _x_message(), lprintf, NULL, and XINE_MSG_READ_ERROR.
Referenced by vdr_plugin_read().
|
static |
References _x_assert.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::get_option.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::got_audio_samples.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::got_spu_packet.
Referenced by vdr_class_get_instance().
|
static |
References DISC_ABSOLUTE, metronom_s::got_video_frame, vdr_metronom_t::input, METRONOM_VDR_TRICK_PTS, vdr_metronom_t::mutex, vo_frame_s::progressive_frame, vo_frame_s::pts, metronom_s::set_option, vdr_metronom_t::stream_metronom, vdr_metronom_t::trick_mode, and vdr_vpts_offset_queue_add().
Referenced by vdr_class_get_instance().
|
static |
References vdr_metronom_t::audio, DISC_ABSOLUTE, vdr_metronom_t::disc_num, DISC_RELATIVE, DISC_STREAMSEEK, DISC_STREAMSTART, metronom_s::handle_audio_discontinuity, vdr_metronom_t::input, vdr_metronom_t::mutex, vdr_metronom_t::on, vdr_metronom_t::seek, vdr_input_plugin_s::stream, vdr_metronom_t::stream_metronom, vdr_metronom_t::trick_mode, vdr_metronom_t::trick_new_mode, trick_speed_send_event(), VDR_DISC_START, vdr_vpts_offset_queue_add(), vdr_metronom_t::video, xine_stream_s::xine, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vdr_class_get_instance().
|
static |
References vdr_metronom_t::audio, DISC_ABSOLUTE, vdr_metronom_t::disc_num, DISC_RELATIVE, DISC_STREAMSEEK, DISC_STREAMSTART, metronom_s::handle_video_discontinuity, vdr_metronom_t::input, vdr_metronom_t::mutex, vdr_metronom_t::on, vdr_metronom_t::seek, vdr_input_plugin_s::stream, vdr_metronom_t::stream_metronom, vdr_metronom_t::trick_mode, vdr_metronom_t::trick_new_mode, trick_speed_send_event(), VDR_DISC_START, vdr_vpts_offset_queue_add(), vdr_metronom_t::video, xine_stream_s::xine, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::set_audio_rate.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::set_master.
Referenced by vdr_class_get_instance().
|
static |
References metronom_s::set_option.
Referenced by vdr_class_get_instance().
|
static |
|
static |
Referenced by vdr_class_get_instance().
|
static |
References INPUT_CAP_NO_CACHE, and INPUT_CAP_PREVIEW.
Referenced by vdr_class_get_instance().
|
static |
Referenced by vdr_class_get_instance().
|
static |
Referenced by vdr_class_get_instance().
|
static |
Referenced by vdr_class_get_instance().
|
static |
References INPUT_OPTIONAL_DATA_PREVIEW, and INPUT_OPTIONAL_UNSUPPORTED.
Referenced by vdr_class_get_instance().
|
static |
References _, LOG_MODULE, lprintf, NULL, vdr_plugin_open_fifo_mrl(), vdr_plugin_open_socket_mrl(), vdr_rpc_thread_loop(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_class_get_instance().
|
static |
References _, _x_asprintf(), _x_mrl_unescape(), LOG_MODULE, lprintf, mrl_to_fifo(), NULL, VDR_ABS_FIFO_DIR, xine_open_cloexec(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_plugin_open().
|
static |
References _, LOG_MODULE, xine_socket_cloexec(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_plugin_open_sockets().
|
static |
References lprintf, and vdr_plugin_open_sockets().
Referenced by vdr_plugin_open().
|
static |
References _, _x_mrl_unescape(), LOG_MODULE, mrl_to_host(), vdr_plugin_open_socket(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_plugin_open_socket_mrl().
|
static |
References lprintf, vdr_main_read(), XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vdr_class_get_instance(), and vdr_plugin_read_block().
|
static |
|
static |
References BUF_SIZE, lprintf, and input_plugin_s::read.
Referenced by vdr_class_get_instance().
|
static |
References _x_read_abort().
Referenced by vdr_execute_rpc_command().
|
static |
References _x_lock_frontend(), _x_lock_port_rewiring(), _x_unlock_frontend(), _x_unlock_port_rewiring(), LOG_MODULE, NULL, vdr_execute_rpc_command(), XINE_VERBOSITY_LOG, and xprintf.
Referenced by vdr_plugin_open().
|
static |
References _x_demux_control_start(), xine_get_param(), XINE_PARAM_GAPLESS_SWITCH, and xine_set_param().
Referenced by vdr_execute_rpc_command().
|
static |
References DISC_ABSOLUTE, DISC_STREAMSTART, NULL, xine_event_t::type, vdr_vpts_offset_queue_add_int(), vdr_vpts_offset_queue_purge(), xine_event_send(), and XINE_EVENT_VDR_DISCONTINUITY.
Referenced by vdr_metronom_got_video_frame(), vdr_metronom_handle_audio_discontinuity(), and vdr_metronom_handle_video_discontinuity().
|
static |
References METRONOM_VPTS_OFFSET, OFFS_RING_MASK, vdr_vpts_offset_queue_process(), and xine_get_current_vpts().
Referenced by vdr_vpts_offset_queue_add().
|
static |
References OFFS_RING_MASK, vdr_vpts_offset_queue_process(), and xine_get_current_vpts().
Referenced by vdr_execute_rpc_command().
|
static |
Referenced by vdr_plugin_dispose().
|
static |
References METRONOM_VPTS_OFFSET, NULL, and xine_get_current_vpts().
Referenced by vdr_class_get_instance().
|
static |
References OFFS_RING_MASK.
Referenced by vdr_vpts_offset_queue_add_int(), and vdr_vpts_offset_queue_ask().
|
static |
References OFFS_RING_MASK.
Referenced by vdr_plugin_dispose(), and vdr_vpts_offset_queue_add().
|
static |