xine-lib 1.2.11
|
#include <signal.h>
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <inttypes.h>
#include <errno.h>
#include <xine/xine_internal.h>
#include <xine/video_out.h>
#include <xine/metronom.h>
#include <xine/xineutils.h>
#include <yuv2rgb.h>
#include "xine_private.h"
Data Structures | |
struct | vos_grab_video_frame_s |
struct | vos_t |
Macros | |
#define | XINE_ENABLE_EXPERIMENTAL_FEATURES |
#define | LOG_MODULE "video_out" |
#define | LOG_VERBOSE |
#define | NUM_FRAME_BUFFERS 15 |
#define | DEFAULT_FRAME_DURATION 3000 /* 30 frames per second */ |
#define | FIRST_FRAME_POLL_DELAY 3000 |
#define | FIRST_FRAME_MAX_POLL 10 /* poll n times at most */ |
#define | EXPERIMENTAL_FRAME_QUEUE_OPTIMIZATION 1 |
#define | STREAMS_DEFAULT_SIZE 32 |
#define | ADD_READY_FRAMES |
Typedefs | |
typedef struct vos_grab_video_frame_s | vos_grab_video_frame_t |
#define ADD_READY_FRAMES |
#define DEFAULT_FRAME_DURATION 3000 /* 30 frames per second */ |
#define EXPERIMENTAL_FRAME_QUEUE_OPTIMIZATION 1 |
#define FIRST_FRAME_MAX_POLL 10 /* poll n times at most */ |
#define FIRST_FRAME_POLL_DELAY 3000 |
#define LOG_MODULE "video_out" |
#define LOG_VERBOSE |
#define NUM_FRAME_BUFFERS 15 |
#define STREAMS_DEFAULT_SIZE 32 |
#define XINE_ENABLE_EXPERIMENTAL_FEATURES |
typedef struct vos_grab_video_frame_s vos_grab_video_frame_t |
xine_video_port_t * _x_vo_new_port | ( | xine_t * | xine, |
vo_driver_t * | driver, | ||
int | grabonly | ||
) |
Build a video output port from a given video driver.
References _, _x_video_overlay_new_manager(), xine_s::clock, xine_s::config, vo_frame_s::draw, vo_frame_s::extra_info, vo_frame_s::free, vo_frame_s::id, vo_frame_s::lock, vo_frame_s::next, NULL, NUM_FRAME_BUFFERS, vo_driver_t::open, vo_frame_s::port, vo_frame_s::proc_duplicate_frame_data, config_values_s::register_num, video_out_loop(), vo_close(), vo_display_queue_open(), vo_enable_overlay(), vo_exit(), vo_flush(), vo_frame_dec_lock(), vo_frame_draw(), vo_frame_inc_lock(), vo_free_queue_open(), vo_get_capabilities(), vo_get_frame(), vo_get_last_frame(), vo_get_overlay_manager(), vo_get_property(), vo_new_grab_video_frame(), vo_open(), VO_PROP_MAX_NUM_FRAMES, vo_set_property(), vo_speed_change_cb(), vo_status(), vo_streams_open(), vo_ticket_revoked(), vo_trigger_drawing(), xine_mallocz_aligned(), XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, XINE_VERBOSITY_NONE, and xprintf.
Referenced by xine_new_framegrab_video_port(), and xine_open_video_driver().
|
static |
Referenced by next_frame(), and paused_loop().
|
static |
References vo_frame_s::bad_frame, vo_frame_s::base, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vo_frame_s::duration, vo_frame_s::extra_info, vo_frame_s::flags, vo_frame_s::format, vo_frame_s::height, vo_frame_s::is_first, vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, vo_frame_s::pitches, vo_frame_s::proc_called, vo_frame_s::progressive_frame, vo_frame_s::pts, vo_frame_s::ratio, vo_frame_s::repeat_first_field, vo_frame_s::stream, vo_frame_s::top_field_first, VO_BOTH_FIELDS, vo_get_frame(), vo_frame_s::vpts, vo_frame_s::width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, yuy2_to_yuy2(), and yv12_to_yv12().
Referenced by vo_frame_draw().
|
static |
References _, _x_extra_info_reset(), vo_frame_s::bad_frame, vo_frame_s::base, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vo_frame_s::duration, vo_frame_s::extra_info, vo_frame_s::flags, vo_frame_s::format, vo_frame_s::future_frame, vo_frame_s::height, vo_frame_s::is_first, vo_frame_s::lock_counter, vo_frame_s::mutex, NULL, vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, vo_frame_s::pitches, vo_frame_s::proc_called, vo_frame_s::proc_duplicate_frame_data, vo_frame_s::progressive_frame, vo_frame_s::pts, vo_frame_s::ratio, vo_frame_s::repeat_first_field, vo_frame_s::stream, vo_frame_s::top_field_first, VO_BOTH_FIELDS, vo_free_append(), vo_free_get_dupl(), vo_ready_get_dupl(), vo_ready_refill(), vo_frame_s::vpts, vo_frame_s::width, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, yuy2_to_yuy2(), and yv12_to_yv12().
Referenced by paused_loop(), and video_out_loop().
|
static |
References _, ADD_READY_FRAMES, check_redraw_needed(), DEFAULT_FRAME_DURATION, vo_frame_s::duration, vo_frame_s::extra_info, FIRST_FRAME_POLL_DELAY, vo_frame_s::future_frame, vo_frame_s::is_first, vo_frame_s::lock_counter, lprintf, vo_frame_s::next, NULL, vo_frame_s::pts, xine_stream_private_st::side_streams, vo_frame_s::stream, vo_frame_dec2_lock(), vo_frame_dec2_lock_int(), vo_frame_dec_lock(), vo_frame_inc_lock(), vo_free_append_list(), vo_ready_get_all(), vo_ready_pop(), vo_frame_s::vpts, xine_current_extra_info_set(), xine_log(), XINE_LOG_MSG, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by demux_mpgaudio_next(), parse_frame_payload(), video_out_loop(), vidix_config_playback(), vidix_display_frame(), write_frame_sfb(), and write_frame_YUV420P2().
|
static |
References vo_frame_s::extra_info, xine_stream_private_st::first_frame, xine_stream_private_st::flag, vo_frame_s::free, vo_frame_s::is_first, xine_stream_private_st::lock, lprintf, vo_frame_s::proc_called, xine_stream_private_st::reached, xine_stream_private_st::side_streams, vo_frame_s::stream, vo_frame_driver_proc(), vo_frame_s::vpts, xine_current_extra_info_set(), xine_rwlock_rdlock, and xine_rwlock_unlock.
Referenced by paused_loop(), and video_out_loop().
|
static |
References ADD_READY_FRAMES, check_redraw_needed(), duplicate_frame(), vo_frame_s::future_frame, NULL, overlay_and_display_frame(), vo_frame_inc_lock(), vo_free_queue_read_lock(), vo_free_queue_read_unlock(), vo_grab_current_frame(), vo_list_flush(), vo_ready_get_all(), vo_ready_pop(), vo_reref(), vo_frame_s::vpts, xine_gettime(), XINE_SPEED_PAUSE, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by video_out_loop().
|
static |
References _, ADD_READY_FRAMES, BUF_CONTROL_FLUSH_DECODER, duplicate_frame(), vo_frame_s::id, lprintf, next_frame(), NULL, overlay_and_display_frame(), paused_loop(), buf_element_s::type, video_out_update_disable_flush_from_video_out(), vo_frame_dec2_lock(), vo_frame_dec_lock(), vo_grab_current_frame(), vo_list_flush(), vo_ready_get_all(), vo_reref(), vo_frame_s::vpts, XINE_FINE_SPEED_NORMAL, xine_gettime(), xine_log(), XINE_LOG_MSG, xine_rwlock_rdlock, xine_rwlock_unlock, XINE_SPEED_PAUSE, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
References xine_cfg_entry_s::num_value.
Referenced by video_out_loop().
|
static |
References vo_streams_unregister(), XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
|
static |
References NULL.
Referenced by _x_vo_new_port().
|
static |
References vo_frame_s::next, and NULL.
Referenced by xine_get_next_video_frame().
|
static |
References _x_assert, vo_frame_s::id, vo_frame_s::next, NULL, xine_stream_private_st::refs, vo_frame_s::stream, xine_refs_add(), and xine_refs_sub().
Referenced by vo_frame_draw().
|
static |
References _x_freep(), yuv2rgb_factory_s::dispose, yuv2rgb_s::dispose, vos_grab_video_frame_s::grab_frame, xine_grab_video_frame_s::img, vos_grab_video_frame_s::img, vos_grab_video_frame_s::vo_frame, vo_frame_dec_lock(), vos_grab_video_frame_s::yuv2rgb, and vos_grab_video_frame_s::yuv2rgb_factory.
Referenced by vo_new_grab_video_frame().
|
static |
References vo_frame_s::dispose, vo_frame_s::next, and NULL.
Referenced by vo_exit().
|
static |
References xine_rwlock_rdlock, and xine_rwlock_unlock.
Referenced by _x_vo_new_port().
|
static |
References _, _x_free_video_driver(), lprintf, vo_frame_s::next, NULL, vo_display_queue_close(), vo_display_queue_get_all(), vo_dispose_list(), vo_free_queue_close(), vo_free_queue_get_all(), VO_PROP_DISCARD_FRAMES, vo_speed_change_cb(), vo_streams_close(), vo_ticket_revoked(), vo_unref_list(), xine_freep_aligned, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
References vo_manual_flush(), and vo_wait_flush().
Referenced by _x_vo_new_port().
|
static |
References vo_frame_dec2_lock_int(), and vo_free_append().
Referenced by next_frame(), video_out_loop(), and xine_free_video_frame().
|
static |
References vo_frame_s::lock_counter, vo_frame_s::mutex, vo_frame_s::next, and NULL.
Referenced by next_frame(), vo_frame_dec2_lock(), vo_get_unblock_frame(), and vo_list_flush().
|
static |
References vo_frame_s::lock_counter, vo_frame_s::mutex, vo_frame_s::port, and vo_free_append().
Referenced by _x_vo_new_port(), next_frame(), video_out_loop(), vo_dispose_grab_video_frame(), vo_grab_current_frame(), and vo_grab_grab_video_frame().
|
static |
References _, _x_extra_info_merge(), _x_keyframes_add(), _x_stream_info_set(), vo_frame_s::bad_frame, vo_frame_s::crop_bottom, crop_frame(), vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, DEFAULT_FRAME_DURATION, xine_dropped_frames_t::discarded_frames, xine_dropped_frames_t::discarded_threshold, vo_frame_s::duration, vo_frame_s::extra_info, xine_stream_private_st::first_frame, FIRST_FRAME_MAX_POLL, xine_stream_private_st::flag, vo_frame_s::format, metronom_s::got_video_frame, vo_frame_s::height, INPUT_IS_SEEKABLE, extra_info_s::input_normpos, extra_info_s::input_time, vo_frame_s::is_first, xine_stream_private_st::lock, vo_frame_s::lock_counter, lprintf, xine_stream_s::metronom, xine_keyframes_entry_t::msecs, xine_keyframes_entry_t::normpos, NULL, vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, vo_frame_s::port, vo_frame_s::proc_called, vo_frame_s::pts, xine_stream_private_st::reached, xine_stream_private_st::s, xine_stream_private_st::side_streams, xine_dropped_frames_t::skipped_frames, xine_dropped_frames_t::skipped_threshold, vo_frame_s::stream, xine_stream_private_st::video_decoder_extra_info, VO_CAP_CROP, vo_display_reref_append(), vo_frame_driver_proc(), vo_frame_inc2_lock(), extra_info_s::vpts, vo_frame_s::vpts, vo_frame_s::width, XINE_ANON_STREAM, xine_current_extra_info_set(), XINE_EVENT_DROPPED_FRAMES, xine_event_send(), XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, xine_log(), XINE_LOG_MSG, xine_rwlock_rdlock, xine_rwlock_tryrdlock, xine_rwlock_unlock, XINE_STREAM_INFO_DISCARDED_FRAMES, XINE_STREAM_INFO_SKIPPED_FRAMES, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
References vo_frame_s::base, vo_frame_s::format, vo_frame_s::height, height, vo_frame_s::pitches, vo_frame_s::proc_called, vo_frame_s::proc_frame, vo_frame_s::proc_slice, XINE_IMGFMT_YUY2, and XINE_IMGFMT_YV12.
Referenced by overlay_and_display_frame(), and vo_frame_draw().
|
static |
References vo_frame_s::lock_counter, vo_frame_s::mutex, and vo_frame_s::port.
Referenced by vo_frame_draw().
|
static |
References vo_frame_s::lock_counter, vo_frame_s::mutex, and vo_frame_s::port.
Referenced by _x_vo_new_port(), next_frame(), paused_loop(), vo_get_last_frame(), vo_grab_current_frame(), and vo_grab_grab_video_frame().
|
static |
References _x_assert, vo_frame_s::next, and NULL.
Referenced by duplicate_frame(), vo_frame_dec2_lock(), vo_frame_dec_lock(), and vo_get_frame().
|
static |
Referenced by next_frame(), and vo_list_flush().
|
static |
References vo_frame_s::format, vo_frame_s::height, vo_frame_s::next, NULL, vo_frame_s::ratio, and vo_frame_s::width.
Referenced by duplicate_frame().
|
static |
References vo_frame_s::format, vo_frame_s::height, height, lprintf, vo_frame_s::next, NULL, vo_frame_s::ratio, vo_get_unblock_frame(), vo_frame_s::width, width, xine_gettime(), XINE_SPEED_PAUSE, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vo_get_frame().
|
static |
|
static |
References NULL.
Referenced by _x_vo_new_port().
|
static |
References vo_frame_s::next, and NULL.
Referenced by vo_get_unblock_frame().
|
static |
Referenced by paused_loop().
|
static |
Referenced by paused_loop().
|
static |
References xine_video_port_s::get_capabilities.
Referenced by _x_vo_new_port().
|
static |
References _, _x_extra_info_reset(), vo_frame_s::bad_frame, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vo_frame_s::extra_info, vo_frame_s::flags, vo_frame_s::format, vo_frame_s::height, height, vo_frame_s::lock_counter, lprintf, vo_frame_s::mutex, NULL, vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, vo_frame_s::proc_called, vo_frame_s::progressive_frame, vo_frame_s::ratio, vo_frame_s::repeat_first_field, vo_frame_s::stream, vo_frame_s::top_field_first, vo_free_append(), vo_free_queue_get(), VO_GET_FRAME_MAY_FAIL, vo_frame_s::width, width, XINE_VERBOSITY_LOG, and xprintf.
Referenced by _x_vo_new_port(), and crop_frame().
|
static |
References vo_frame_inc_lock().
Referenced by _x_vo_new_port().
|
static |
Referenced by _x_vo_new_port().
|
static |
References VO_PROP_BUFS_FREE, VO_PROP_BUFS_IN_FIFO, VO_PROP_BUFS_TOTAL, VO_PROP_DISCARD_FRAMES, VO_PROP_NUM_STREAMS, XINE_PARAM_VO_BRIGHTNESS, XINE_PARAM_VO_CONTRAST, XINE_PARAM_VO_CROP_BOTTOM, XINE_PARAM_VO_CROP_LEFT, XINE_PARAM_VO_CROP_RIGHT, XINE_PARAM_VO_CROP_TOP, XINE_PARAM_VO_GAMMA, XINE_PARAM_VO_HUE, XINE_PARAM_VO_NOISE_REDUCTION, XINE_PARAM_VO_SATURATION, XINE_PARAM_VO_SHARPNESS, XINE_PARAM_VO_SINGLE_STEP, xine_rwlock_rdlock, and xine_rwlock_unlock.
Referenced by _x_vo_new_port().
|
static |
References vo_frame_s::lock_counter, vo_frame_s::next, NULL, vo_frame_dec2_lock_int(), vo_free_queue_pop_int(), XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vo_free_queue_get().
|
static |
References vos_grab_video_frame_s::finished, vo_frame_s::format, vos_grab_video_frame_s::grab_frame, vos_grab_video_frame_s::next, NULL, vo_frame_s::proc_provide_standard_frame_data, vos_grab_video_frame_s::vo_frame, vo_frame_dec_lock(), vo_frame_inc_lock(), xine_grab_video_frame_s::vpts, XINE_IMGFMT_YUY2, and XINE_IMGFMT_YV12.
Referenced by paused_loop(), and video_out_loop().
|
static |
References _x_freep(), yuv2rgb_s::configure, yuv2rgb_factory_s::create_converter, xine_grab_video_frame_s::crop_bottom, xine_grab_video_frame_s::crop_left, xine_grab_video_frame_s::crop_right, xine_grab_video_frame_s::crop_top, vos_grab_video_frame_s::finished, xine_grab_video_frame_s::flags, xine_current_frame_data_s::format, vos_grab_video_frame_s::grab_frame, vos_grab_video_frame_s::grab_height, vos_grab_video_frame_s::grab_width, xine_grab_video_frame_s::height, height, xine_current_frame_data_s::img, xine_grab_video_frame_s::img, vos_grab_video_frame_s::img, xine_current_frame_data_s::img_size, vos_grab_video_frame_s::img_size, MODE_24_RGB, vos_grab_video_frame_s::next, NULL, yuv2rgb_factory_s::set_csc_levels, xine_grab_video_frame_s::timeout, vos_grab_video_frame_s::uv_stride, vos_grab_video_frame_s::video_port, vos_grab_video_frame_s::vo_frame, vo_frame_dec_lock(), vo_frame_inc_lock(), VO_GET_FLAGS_CM, vos_grab_video_frame_s::vo_height, vos_grab_video_frame_s::vo_width, xine_grab_video_frame_s::vpts, xine_grab_video_frame_s::width, width, xine_gettime(), XINE_GRAB_VIDEO_FRAME_FLAGS_WAIT_NEXT, XINE_IMGFMT_YUY2, XINE_IMGFMT_YV12, vos_grab_video_frame_s::y_stride, vos_grab_video_frame_s::yuv2rgb, vos_grab_video_frame_s::yuv2rgb_factory, yuv2rgb_factory_init(), yuv2rgb_s::yuv2rgb_fun, and yuv2rgb_s::yuy22rgb_fun.
Referenced by vo_new_grab_video_frame().
|
static |
References vo_frame_s::next, NULL, vo_frame_dec2_lock_int(), and vo_free_append_list().
Referenced by paused_loop(), video_out_loop(), and vo_manual_flush().
|
static |
References NULL, and vo_list_flush().
Referenced by vo_flush(), and vo_set_property().
|
static |
References xine_grab_video_frame_s::dispose, xine_grab_video_frame_s::grab, vos_grab_video_frame_s::grab_frame, xine_grab_video_frame_s::timeout, vos_grab_video_frame_s::video_port, vo_dispose_grab_video_frame(), vo_grab_grab_video_frame(), xine_grab_video_frame_s::vpts, and XINE_GRAB_VIDEO_FRAME_DEFAULT_TIMEOUT.
Referenced by _x_vo_new_port().
|
static |
References NULL, xine_stream_s::spu_channel_user, vo_streams_register(), vo_unref_obsolete(), XINE_ANON_STREAM, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
References NULL.
Referenced by next_frame(), paused_loop(), and video_out_loop().
|
static |
References vo_frame_s::format, vo_frame_s::height, vo_frame_s::lock_counter, vo_frame_s::next, NULL, vo_frame_s::ratio, and vo_frame_s::width.
Referenced by duplicate_frame().
|
static |
References vo_frame_s::next, and NULL.
Referenced by next_frame(), and paused_loop().
|
static |
References NULL.
Referenced by duplicate_frame().
|
static |
References vo_frame_s::id, xine_stream_private_st::refs, vo_frame_s::stream, xine_refs_add(), and xine_refs_sub().
Referenced by paused_loop(), and video_out_loop().
|
static |
References vo_manual_flush(), VO_PROP_DISCARD_FRAMES, vo_wait_flush(), xine_gettime(), XINE_PARAM_VO_BRIGHTNESS, XINE_PARAM_VO_CONTRAST, XINE_PARAM_VO_CROP_BOTTOM, XINE_PARAM_VO_CROP_LEFT, XINE_PARAM_VO_CROP_RIGHT, XINE_PARAM_VO_CROP_TOP, XINE_PARAM_VO_GAMMA, XINE_PARAM_VO_HUE, XINE_PARAM_VO_NOISE_REDUCTION, XINE_PARAM_VO_SATURATION, XINE_PARAM_VO_SHARPNESS, XINE_PARAM_VO_SINGLE_STEP, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port().
|
static |
References XINE_FINE_SPEED_NORMAL, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port(), and vo_exit().
|
static |
References height, xine_stream_private_st::s, width, XINE_ANON_STREAM, xine_rwlock_rdlock, and xine_rwlock_unlock.
Referenced by _x_vo_new_port().
|
static |
References NULL, and xine_rwlock_destroy.
Referenced by vo_exit().
|
static |
References NULL, STREAMS_DEFAULT_SIZE, and xine_rwlock_init_default.
Referenced by _x_vo_new_port().
|
static |
References NULL, xine_stream_private_st::s, XINE_ANON_STREAM, xine_rwlock_unlock, and xine_rwlock_wrlock.
Referenced by vo_open().
|
static |
References xine_stream_private_st::s, XINE_ANON_STREAM, xine_rwlock_unlock, and xine_rwlock_wrlock.
Referenced by vo_close().
|
static |
References user_data(), XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by _x_vo_new_port(), and vo_exit().
|
static |
Referenced by _x_vo_new_port().
|
static |
References vo_frame_s::id, vo_frame_s::next, NULL, vo_frame_s::stream, and xine_refs_sub().
Referenced by vo_exit().
|
static |
References vo_frame_s::id, vo_frame_s::lock_counter, vo_frame_s::mutex, NULL, xine_refs_sub(), xine_rwlock_rdlock, xine_rwlock_unlock, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by vo_open().
|
static |
Referenced by vo_flush(), and vo_set_property().
void xine_free_video_frame | ( | xine_video_port_t * | port, |
xine_video_frame_t * | frame | ||
) |
References vo_frame_s::port, and vo_frame_dec2_lock().
int xine_get_next_video_frame | ( | xine_video_port_t * | this_gen, |
xine_video_frame_t * | frame | ||
) |
References vo_frame_s::base, xine_stream_private_st::demux, DEMUX_OK, vo_frame_s::duration, vo_frame_s::extra_info, fifo_buffer_s::fifo_size, vo_frame_s::format, extra_info_s::frame_number, demux_plugin_s::get_status, vo_frame_s::height, extra_info_s::input_normpos, extra_info_s::input_time, now(), xine_stream_private_st::plugin, vo_frame_s::ratio, xine_stream_private_st::s, xine_stream_s::video_fifo, vo_display_queue_pop_int(), vo_frame_s::vpts, vo_frame_s::width, and xine_gettime().