xine-lib: xine-lib-1.2.12/include/xine/video_out.h File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions
video_out.h File Reference
`#include <pthread.h>`
`#include <xine.h>`
`#include <xine/attributes.h>`
`#include <xine/buffer.h>`

Go to the source code of this file.

## Data Structures
struct | vo_accel_generic_t
struct | vo_frame_s
struct | xine_video_port_s
struct | vo_driver_s
struct | video_driver_class_s
struct | rle_elem_s
struct | argb_layer_s
struct | vo_overlay_s
struct | video_overlay_manager_s

## Macros
#define | VO_PROP_INTERLACED 0
#define | VO_PROP_ASPECT_RATIO 1
#define | VO_PROP_HUE 2
#define | VO_PROP_SATURATION 3
#define | VO_PROP_CONTRAST 4
#define | VO_PROP_BRIGHTNESS 5
#define | VO_PROP_COLORKEY 6
#define | VO_PROP_AUTOPAINT_COLORKEY 7
#define | VO_PROP_ZOOM_X 8
#define | VO_PROP_PAN_SCAN 9
#define | VO_PROP_TVMODE 10
#define | VO_PROP_MAX_NUM_FRAMES 11
#define | VO_PROP_GAMMA 12
#define | VO_PROP_ZOOM_Y 13
#define | VO_PROP_DISCARD_FRAMES 14
#define | VO_PROP_WINDOW_WIDTH 15 /* read-only */
#define | VO_PROP_WINDOW_HEIGHT 16 /* read-only */
#define | VO_PROP_BUFS_IN_FIFO 17 /* read-only */
#define | VO_PROP_NUM_STREAMS 18 /* read-only */
#define | VO_PROP_OUTPUT_WIDTH 19 /* read-only */
#define | VO_PROP_OUTPUT_HEIGHT 20 /* read-only */
#define | VO_PROP_OUTPUT_XOFFSET 21 /* read-only */
#define | VO_PROP_OUTPUT_YOFFSET 22 /* read-only */
#define | VO_PROP_SHARPNESS 24
#define | VO_PROP_NOISE_REDUCTION 25
#define | VO_PROP_BUFS_TOTAL 26 /* read-only */
#define | VO_PROP_BUFS_FREE 27 /* read-only */
#define | VO_PROP_MAX_VIDEO_WIDTH 28 /* read-only */
#define | VO_PROP_MAX_VIDEO_HEIGHT 29 /* read-only */
#define | VO_PROP_CAPS2 30 /* read-only. second capability flags, see below. */
#define | VO_PROP_TRANSFORM 31 /* XINE_VO_TRANSFORM_* */
#define | VO_NUM_PROPERTIES 32
#define | OVL_PALETTE_SIZE 256
#define | OVL_MAX_OPACITY 0x0f
#define | VO_NUM_RECENT_FRAMES 2
#define | VO_TOP_FIELD 0x0001
#define | VO_BOTTOM_FIELD 0x0002
#define | VO_BOTH_FIELDS (VO_TOP_FIELD | VO_BOTTOM_FIELD)
#define | VO_PAN_SCAN_FLAG 0x0004
#define | VO_INTERLACED_FLAG 0x0008
#define | VO_NEW_SEQUENCE_FLAG 0x0010 /* set after MPEG2 Sequence Header Code (used by XvMC) */
#define | VO_CHROMA_422 0x0020 /* used by VDPAU, default is chroma_420 */
#define | VO_STILL_IMAGE 0x0040
#define | VO_GET_FRAME_MAY_FAIL 0x0080 /* video out may return NULL if frame allocation failed */
#define | VO_FULLRANGE 0x100
#define | VO_GET_FLAGS_CM(flags) ((flags >> 8) & 31)
#define | VO_SET_FLAGS_CM(cm, flags) flags = ((flags) & ~0x1f00) | (((cm) & 31) << 8)
#define | VO_GET_FLAGS_DEPTH(flags) (16 - ((flags >> 16) & 7))
#define | VO_SET_FLAGS_DEPTH(depth, flags) flags = (((flags) & ~0x70000) | (((16 - depth) & 7) << 16))
#define | VO_CAP_YV12 0x00000001 /* driver can handle YUV 4:2:0 pictures */
#define | VO_CAP_YUY2 0x00000002 /* driver can handle YUY2 pictures */
#define | VO_CAP_XVMC_MOCOMP 0x00000004 /* driver can use XvMC motion compensation */
#define | VO_CAP_XVMC_IDCT 0x00000008 /* driver can use XvMC idct acceleration */
#define | VO_CAP_UNSCALED_OVERLAY 0x00000010 /* driver can blend overlay at output resolution */
#define | VO_CAP_CROP 0x00000020 /* driver can crop */
#define | VO_CAP_XXMC 0x00000040 /* driver can use extended XvMC */
#define | VO_CAP_VDPAU_H264 0x00000080 /* driver can use VDPAU for H264 */
#define | VO_CAP_VDPAU_MPEG12 0x00000100 /* driver can use VDPAU for mpeg1/2 */
#define | VO_CAP_VDPAU_VC1 0x00000200 /* driver can use VDPAU for VC1 */
#define | VO_CAP_VDPAU_MPEG4 0x00000400 /* driver can use VDPAU for mpeg4-part2 */
#define | VO_CAP_VAAPI 0x00000800 /* driver can use VAAPI */
#define | VO_CAP_COLOR_MATRIX 0x00004000 /* driver can use alternative yuv->rgb matrices */
#define | VO_CAP_FULLRANGE 0x00008000 /* driver handles fullrange yuv */
#define | VO_CAP_HUE 0x00010000
#define | VO_CAP_SATURATION 0x00020000
#define | VO_CAP_CONTRAST 0x00040000
#define | VO_CAP_BRIGHTNESS 0x00080000
#define | VO_CAP_COLORKEY 0x00100000
#define | VO_CAP_AUTOPAINT_COLORKEY 0x00200000
#define | VO_CAP_ZOOM_X 0x00400000
#define | VO_CAP_ZOOM_Y 0x00800000
#define | VO_CAP_CUSTOM_EXTENT_OVERLAY 0x01000000 /* driver can blend custom extent overlay to output extent */
#define | VO_CAP_ARGB_LAYER_OVERLAY 0x02000000 /* driver supports true color overlay */
#define | VO_CAP_VIDEO_WINDOW_OVERLAY 0x04000000 /* driver can scale video to an area within overlay */
#define | VO_CAP_GAMMA 0x08000000
#define | VO_CAP_SHARPNESS 0x10000000
#define | VO_CAP_NOISE_REDUCTION 0x20000000
#define | VO_CAP_YV12_DEEP 0x40000000 /* driver can handle deep color YV12 (9...16 bits) */
#define | VO_CAP2_NV12 0x00000001 /* driver can handle YUV 4:2:0 pictures as 2 planes (Y plus interleaved UV) */
#define | VO_CAP2_TRANSFORM 0x00000002 /* driver can flip image */
#define | VO_CAP2_ACCEL_GENERIC 0x00000004 /* vo_frame_t.accel_data == vo_accel_generic_t * */
#define | VIDEO_OUT_DRIVER_IFACE_VERSION 22
#define | default_video_driver_class_dispose (void (*) (video_driver_class_t *this_gen))free

## Typedefs
typedef struct vo_frame_s | vo_frame_t
typedef struct vo_driver_s | vo_driver_t
typedef struct video_driver_class_s | video_driver_class_t
typedef struct vo_overlay_s | vo_overlay_t
typedef struct video_overlay_manager_s | video_overlay_manager_t
typedef struct rle_elem_s | rle_elem_t
typedef struct argb_layer_s | argb_layer_t

## Functions
void | set_argb_layer_ptr (argb_layer_t **dst, argb_layer_t *src)
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. More...

## Macro Definition Documentation

## ◆ default_video_driver_class_dispose

#define default_video_driver_class_dispose (void (*) (video_driver_class_t *this_gen))free

## ◆ OVL_MAX_OPACITY

#define OVL_MAX_OPACITY 0x0f

## ◆ OVL_PALETTE_SIZE

#define OVL_PALETTE_SIZE 256

## ◆ VIDEO_OUT_DRIVER_IFACE_VERSION

#define VIDEO_OUT_DRIVER_IFACE_VERSION 22

## ◆ VO_BOTH_FIELDS

#define VO_BOTH_FIELDS (VO_TOP_FIELD | VO_BOTTOM_FIELD)

## ◆ VO_BOTTOM_FIELD

#define VO_BOTTOM_FIELD 0x0002

## ◆ VO_CAP2_ACCEL_GENERIC

#define VO_CAP2_ACCEL_GENERIC 0x00000004 /* vo_frame_t.accel_data == vo_accel_generic_t * */

## ◆ VO_CAP2_NV12

#define VO_CAP2_NV12 0x00000001 /* driver can handle YUV 4:2:0 pictures as 2 planes (Y plus interleaved UV) */

## ◆ VO_CAP2_TRANSFORM

#define VO_CAP2_TRANSFORM 0x00000002 /* driver can flip image */

## ◆ VO_CAP_ARGB_LAYER_OVERLAY

#define VO_CAP_ARGB_LAYER_OVERLAY 0x02000000 /* driver supports true color overlay */

## ◆ VO_CAP_AUTOPAINT_COLORKEY

#define VO_CAP_AUTOPAINT_COLORKEY 0x00200000

## ◆ VO_CAP_BRIGHTNESS

#define VO_CAP_BRIGHTNESS 0x00080000

## ◆ VO_CAP_COLOR_MATRIX

#define VO_CAP_COLOR_MATRIX 0x00004000 /* driver can use alternative yuv->rgb matrices */

## ◆ VO_CAP_COLORKEY

#define VO_CAP_COLORKEY 0x00100000

## ◆ VO_CAP_CONTRAST

#define VO_CAP_CONTRAST 0x00040000

## ◆ VO_CAP_CROP

#define VO_CAP_CROP 0x00000020 /* driver can crop */

## ◆ VO_CAP_CUSTOM_EXTENT_OVERLAY

#define VO_CAP_CUSTOM_EXTENT_OVERLAY 0x01000000 /* driver can blend custom extent overlay to output extent */

## ◆ VO_CAP_FULLRANGE

#define VO_CAP_FULLRANGE 0x00008000 /* driver handles fullrange yuv */

## ◆ VO_CAP_GAMMA

#define VO_CAP_GAMMA 0x08000000

## ◆ VO_CAP_HUE

#define VO_CAP_HUE 0x00010000

## ◆ VO_CAP_NOISE_REDUCTION

#define VO_CAP_NOISE_REDUCTION 0x20000000

## ◆ VO_CAP_SATURATION

#define VO_CAP_SATURATION 0x00020000

## ◆ VO_CAP_SHARPNESS

#define VO_CAP_SHARPNESS 0x10000000

## ◆ VO_CAP_UNSCALED_OVERLAY

#define VO_CAP_UNSCALED_OVERLAY 0x00000010 /* driver can blend overlay at output resolution */

## ◆ VO_CAP_VAAPI

#define VO_CAP_VAAPI 0x00000800 /* driver can use VAAPI */

## ◆ VO_CAP_VDPAU_H264

#define VO_CAP_VDPAU_H264 0x00000080 /* driver can use VDPAU for H264 */

## ◆ VO_CAP_VDPAU_MPEG12

#define VO_CAP_VDPAU_MPEG12 0x00000100 /* driver can use VDPAU for mpeg1/2 */

## ◆ VO_CAP_VDPAU_MPEG4

#define VO_CAP_VDPAU_MPEG4 0x00000400 /* driver can use VDPAU for mpeg4-part2 */

## ◆ VO_CAP_VDPAU_VC1

#define VO_CAP_VDPAU_VC1 0x00000200 /* driver can use VDPAU for VC1 */

## ◆ VO_CAP_VIDEO_WINDOW_OVERLAY

#define VO_CAP_VIDEO_WINDOW_OVERLAY 0x04000000 /* driver can scale video to an area within overlay */

## ◆ VO_CAP_XVMC_IDCT

#define VO_CAP_XVMC_IDCT 0x00000008 /* driver can use XvMC idct acceleration */

## ◆ VO_CAP_XVMC_MOCOMP

#define VO_CAP_XVMC_MOCOMP 0x00000004 /* driver can use XvMC motion compensation */

## ◆ VO_CAP_XXMC

#define VO_CAP_XXMC 0x00000040 /* driver can use extended XvMC */

## ◆ VO_CAP_YUY2

#define VO_CAP_YUY2 0x00000002 /* driver can handle YUY2 pictures */

## ◆ VO_CAP_YV12

#define VO_CAP_YV12 0x00000001 /* driver can handle YUV 4:2:0 pictures */

## ◆ VO_CAP_YV12_DEEP

#define VO_CAP_YV12_DEEP 0x40000000 /* driver can handle deep color YV12 (9...16 bits) */

## ◆ VO_CAP_ZOOM_X

#define VO_CAP_ZOOM_X 0x00400000

## ◆ VO_CAP_ZOOM_Y

#define VO_CAP_ZOOM_Y 0x00800000

## ◆ VO_CHROMA_422

#define VO_CHROMA_422 0x0020 /* used by VDPAU, default is chroma_420 */

## ◆ VO_FULLRANGE

#define VO_FULLRANGE 0x100

## ◆ VO_GET_FLAGS_CM

#define VO_GET_FLAGS_CM | ( |  | flags | ) | ((flags >> 8) & 31)

## ◆ VO_GET_FLAGS_DEPTH

#define VO_GET_FLAGS_DEPTH | ( |  | flags | ) | (16 - ((flags >> 16) & 7))

## ◆ VO_GET_FRAME_MAY_FAIL

#define VO_GET_FRAME_MAY_FAIL 0x0080 /* video out may return NULL if frame allocation failed */

## ◆ VO_INTERLACED_FLAG

#define VO_INTERLACED_FLAG 0x0008

## ◆ VO_NEW_SEQUENCE_FLAG

#define VO_NEW_SEQUENCE_FLAG 0x0010 /* set after MPEG2 Sequence Header Code (used by XvMC) */

## ◆ VO_NUM_PROPERTIES

#define VO_NUM_PROPERTIES 32

## ◆ VO_NUM_RECENT_FRAMES

#define VO_NUM_RECENT_FRAMES 2

## ◆ VO_PAN_SCAN_FLAG

#define VO_PAN_SCAN_FLAG 0x0004

## ◆ VO_PROP_ASPECT_RATIO

#define VO_PROP_ASPECT_RATIO 1

## ◆ VO_PROP_AUTOPAINT_COLORKEY

#define VO_PROP_AUTOPAINT_COLORKEY 7

## ◆ VO_PROP_BRIGHTNESS

#define VO_PROP_BRIGHTNESS 5

## ◆ VO_PROP_BUFS_FREE

#define VO_PROP_BUFS_FREE 27 /* read-only */

## ◆ VO_PROP_BUFS_IN_FIFO

#define VO_PROP_BUFS_IN_FIFO 17 /* read-only */

## ◆ VO_PROP_BUFS_TOTAL

#define VO_PROP_BUFS_TOTAL 26 /* read-only */

## ◆ VO_PROP_CAPS2

#define VO_PROP_CAPS2 30 /* read-only. second capability flags, see below. */

## ◆ VO_PROP_COLORKEY

#define VO_PROP_COLORKEY 6

## ◆ VO_PROP_CONTRAST

#define VO_PROP_CONTRAST 4

## ◆ VO_PROP_DISCARD_FRAMES

#define VO_PROP_DISCARD_FRAMES 14

## ◆ VO_PROP_GAMMA

#define VO_PROP_GAMMA 12

## ◆ VO_PROP_HUE

#define VO_PROP_HUE 2

## ◆ VO_PROP_INTERLACED

#define VO_PROP_INTERLACED 0

## ◆ VO_PROP_MAX_NUM_FRAMES

#define VO_PROP_MAX_NUM_FRAMES 11

## ◆ VO_PROP_MAX_VIDEO_HEIGHT

#define VO_PROP_MAX_VIDEO_HEIGHT 29 /* read-only */

## ◆ VO_PROP_MAX_VIDEO_WIDTH

#define VO_PROP_MAX_VIDEO_WIDTH 28 /* read-only */

## ◆ VO_PROP_NOISE_REDUCTION

#define VO_PROP_NOISE_REDUCTION 25

## ◆ VO_PROP_NUM_STREAMS

#define VO_PROP_NUM_STREAMS 18 /* read-only */

## ◆ VO_PROP_OUTPUT_HEIGHT

#define VO_PROP_OUTPUT_HEIGHT 20 /* read-only */

## ◆ VO_PROP_OUTPUT_WIDTH

#define VO_PROP_OUTPUT_WIDTH 19 /* read-only */

## ◆ VO_PROP_OUTPUT_XOFFSET

#define VO_PROP_OUTPUT_XOFFSET 21 /* read-only */

## ◆ VO_PROP_OUTPUT_YOFFSET

#define VO_PROP_OUTPUT_YOFFSET 22 /* read-only */

## ◆ VO_PROP_PAN_SCAN

#define VO_PROP_PAN_SCAN 9

## ◆ VO_PROP_SATURATION

#define VO_PROP_SATURATION 3

## ◆ VO_PROP_SHARPNESS

#define VO_PROP_SHARPNESS 24

## ◆ VO_PROP_TRANSFORM

#define VO_PROP_TRANSFORM 31 /* XINE_VO_TRANSFORM_* */

## ◆ VO_PROP_TVMODE

#define VO_PROP_TVMODE 10

## ◆ VO_PROP_WINDOW_HEIGHT

#define VO_PROP_WINDOW_HEIGHT 16 /* read-only */

## ◆ VO_PROP_WINDOW_WIDTH

#define VO_PROP_WINDOW_WIDTH 15 /* read-only */

## ◆ VO_PROP_ZOOM_X

#define VO_PROP_ZOOM_X 8

## ◆ VO_PROP_ZOOM_Y

#define VO_PROP_ZOOM_Y 13

## ◆ VO_SET_FLAGS_CM

#define VO_SET_FLAGS_CM | ( |  | cm,
|  |  | flags
| ) |  | flags = ((flags) & ~0x1f00) | (((cm) & 31) << 8)

## ◆ VO_SET_FLAGS_DEPTH

#define VO_SET_FLAGS_DEPTH | ( |  | depth,
|  |  | flags
| ) |  | flags = (((flags) & ~0x70000) | (((16 - depth) & 7) << 16))

## ◆ VO_STILL_IMAGE

#define VO_STILL_IMAGE 0x0040

## ◆ VO_TOP_FIELD

#define VO_TOP_FIELD 0x0001

## Typedef Documentation

## ◆ argb_layer_t

typedef struct argb_layer_s argb_layer_t

## ◆ rle_elem_t

typedef struct rle_elem_s rle_elem_t

## ◆ video_driver_class_t

typedef struct video_driver_class_s video_driver_class_t

## ◆ video_overlay_manager_t

typedef struct video_overlay_manager_s video_overlay_manager_t

## ◆ vo_driver_t

typedef struct vo_driver_s vo_driver_t

## ◆ vo_frame_t

typedef struct vo_frame_s vo_frame_t

## ◆ vo_overlay_t

typedef struct vo_overlay_s vo_overlay_t

## Function Documentation

## ◆ _x_vo_new_port()

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, LOG_MODULE, 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().

## ◆ set_argb_layer_ptr()

void set_argb_layer_ptr | ( | argb_layer_t ** | dst,
|  | argb_layer_t * | src
| ) |  |

References argb_layer_destroy(), argb_layer_s::mutex, and argb_layer_s::ref_count.

Referenced by _osd_show(), internal_video_overlay_free_handle(), osd_free_object(), osd_set_argb_buffer(), and video_overlay_event().