xine-lib  1.2.10
video_out_dxr3.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000-2018 the xine project
3  *
4  * This file is part of xine, a unix video player.
5  *
6  * xine is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * xine is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19  */
20 
21 #ifdef HAVE_CONFIG_H
22 # include "config.h"
23 #endif
24 
25 #ifdef HAVE_X11
26 # include <X11/Xlib.h>
27 #endif
28 
29 #include <xine/xine_internal.h>
30 #include <xine/vo_scale.h>
31 #include "dxr3_scr.h"
32 #include "dxr3.h"
33 
34 /* the number of supported encoders */
35 #define SUPPORTED_ENCODER_COUNT 3
36 
37 
38 /* plugin structures */
41 
43 
44 
45 struct coeff {
46  float k,m;
47 };
48 
49 typedef struct dxr3_overlay_s {
51 
53 
54  int xoffset;
55  int yoffset;
56  int xcorr;
57  int jitter;
58  int stability;
59  int colorkey;
64  int shrink;
65 
66  struct coeff colcal_upper[3];
67  struct coeff colcal_lower[3];
69 
70 typedef struct dxr3_driver_class_s {
73 
75  int instance; /* we allow only one instance of this plugin */
76 
77  int devnum;
79 
80 typedef struct dxr3_driver_s {
83  dxr3_scr_t *scr; /* to provide dxr3 clocking */
84 
86  pthread_mutex_t video_device_lock;
87  int fd_video;
88  pthread_mutex_t spu_device_lock;
89  int fd_spu; /* to access the relevant dxr3 devices */
90  int clut_cluttered; /* to tell spu decoder that it has to restore the palette */
91 
93  int swap_fields; /* swap fields */
94  int add_bars; /* add black bars to correct a.r. */
95 
96  int aspect;
97  int tv_mode;
98  int pan_scan;
100  int tv_switchable; /* can switch from overlay<->tvout */
103 
104  encoder_data_t *enc; /* mpeg encoder data */
105  spu_encoder_t *spu_enc; /* spu encoder */
106  int need_update; /* the mpeg encoder needs to be updated */
107 
108  uint32_t video_iheight; /* input height (before adding black bars) */
109  uint32_t video_oheight; /* output height (after adding black bars) */
110  uint32_t video_width;
111  double video_ratio;
113  int top_bar; /* the height of the upper black bar */
114 
117 
119 #ifdef HAVE_X11
120  Display *display;
121  Drawable win;
122  GC gc;
123  XColor black;
124  XColor key;
125 #endif
126 
127 } dxr3_driver_t;
128 
129 typedef struct dxr3_frame_s {
131  uint32_t oheight;
133  void *mem; /* allocated for YV12 or YUY2 buffers */
134  uint8_t *real_base[3]; /* yuv/yuy2 buffers in mem aligned on 16 */
135  int swap_fields; /* shifts Y buffer one line to exchange odd/even lines */
136 } dxr3_frame_t;
137 
141  int (*on_frame_copy)(dxr3_driver_t *, dxr3_frame_t *, uint8_t **src);
145 
146  /* this is only used by the libavcodec encoder */
147  void *handle;
148 };
149 
153  uint8_t *target;
154  int size;
156  uint32_t color[16];
157  uint8_t trans[4];
159  uint32_t hili_color[16];
160  uint8_t hili_trans[4];
162 };
163 
164 /* mpeg encoder plugins initialization functions */
165 #ifdef HAVE_LIBRTE
166 int dxr3_rte_init(dxr3_driver_t *);
167 #endif
168 #ifdef HAVE_LIBFAME
169 int dxr3_fame_init(dxr3_driver_t *);
170 #endif
172 
173 /* spu encoder functions */
176 
177 #define dxr3_video_setpts(fd,arg) dxr3_compat_ioctl((fd), EM8300_IOCTL_VIDEO_SETPTS, (arg))
178 #define dxr3_spu_setpts(fd,arg) dxr3_compat_ioctl((fd), EM8300_IOCTL_SPU_SETPTS, (arg))
179 #define dxr3_spu_setpalette(fd,arg) dxr3_compat_ioctl((fd), EM8300_IOCTL_SPU_SETPALETTE, (arg))
180 #define dxr3_spu_button(fd,arg) dxr3_compat_ioctl((fd), EM8300_IOCTL_SPU_BUTTON, (arg))
181 int dxr3_compat_ioctl (int, int, void *);
xine_s
Definition: xine_internal.h:80
em8300_register_t::val
int val
Definition: em8300.h:40
XINE_IMGFMT_YV12
#define XINE_IMGFMT_YV12
Definition: xine.h:494
dxr3_driver_s::aspect
int aspect
Definition: video_out_dxr3.h:96
vo_frame_s::pitches
int pitches[3]
Definition: video_out.h:117
dxr3_frame_s
Definition: video_out_dxr3.h:129
dxr3_vo_init_plugin
static dxr3_driver_class_t * dxr3_vo_init_plugin(xine_t *xine, const void *visual_gen)
Definition: video_out_dxr3.c:133
x11_visual_t::frame_output_cb
void(* frame_output_cb)(void *user_data, int video_width, int video_height, double video_pixel_aspect, int *dest_x, int *dest_y, int *dest_width, int *dest_height, double *dest_pixel_aspect, int *win_x, int *win_y)
Definition: xine.h:1298
EM8300_ASPECTRATIO_16_9
#define EM8300_ASPECTRATIO_16_9
Definition: em8300.h:126
vo_frame_s::mutex
pthread_mutex_t mutex
Definition: video_out.h:132
dxr3_overlay_begin
static void dxr3_overlay_begin(vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
Definition: video_out_dxr3.c:756
dxr3_spu_encode
void dxr3_spu_encode(spu_encoder_t *)
Definition: dxr3_spu_encoder.c:80
xine_stream_s
Definition: xine_internal.h:123
encoder_data_s::on_display_frame
int(* on_display_frame)(dxr3_driver_t *, dxr3_frame_t *)
Definition: video_out_dxr3.h:142
dxr3_alloc_frame
static vo_frame_t * dxr3_alloc_frame(vo_driver_t *this_gen)
Definition: video_out_dxr3.c:500
metronom_clock_s
Definition: metronom.h:199
metronom_clock_s::unregister_scr
void(* unregister_scr)(metronom_clock_t *self, scr_plugin_t *scr)
Definition: metronom.h:262
dxr3_frame_s::oheight
uint32_t oheight
Definition: video_out_dxr3.h:131
XINE_VO_ASPECT_DVB
#define XINE_VO_ASPECT_DVB
Definition: xine.h:405
EM8300_IOCTL_WRITEREG
#define EM8300_IOCTL_WRITEREG
Definition: em8300.h:85
EM8300_IOCTL_OVERLAY_SETMODE
#define EM8300_IOCTL_OVERLAY_SETMODE
Definition: em8300.h:100
em8300_button_t::top
int top
Definition: em8300.h:75
VO_PROP_SATURATION
#define VO_PROP_SATURATION
Definition: video_out.h:244
VO_PROP_ASPECT_RATIO
#define VO_PROP_ASPECT_RATIO
Definition: video_out.h:242
x11_visual_t::d
unsigned long d
Definition: xine.h:1244
spu_encoder_s::clip_map
int clip_map[OVL_PALETTE_SIZE]
Definition: video_out_dxr3.h:161
dxr3_driver_s::video_aspect
int video_aspect
Definition: video_out_dxr3.h:112
CONF_HELP
#define CONF_HELP
Definition: dxr3.h:35
dxr3_overlay_end
static void dxr3_overlay_end(vo_driver_t *this_gen, vo_frame_t *frame_gen)
Definition: video_out_dxr3.c:802
dxr3_redraw_needed
static int dxr3_redraw_needed(vo_driver_t *this_gen)
Definition: video_out_dxr3.c:986
xineutils.h
dxr3_vo_open_plugin
static vo_driver_t * dxr3_vo_open_plugin(video_driver_class_t *class_gen, const void *visual)
Definition: video_out_dxr3.c:176
em8300_button_t::left
int left
Definition: em8300.h:77
EM8300_VIDEOMODE_LAST
#define EM8300_VIDEOMODE_LAST
Definition: em8300.h:132
dxr3_driver_s::enc
encoder_data_t * enc
Definition: video_out_dxr3.h:104
dxr3_driver_s::widescreen_enabled
int widescreen_enabled
Definition: video_out_dxr3.h:101
dxr3_driver_class_s::instance
int instance
Definition: video_out_dxr3.h:75
key
char key[16]
Definition: xine_speex_decoder.c:94
em8300_button_t::bottom
int bottom
Definition: em8300.h:76
dxr3_driver_s::tv_mode
int tv_mode
Definition: video_out_dxr3.h:97
x11_rectangle_t::y
int y
Definition: xine.h:1228
dxr3_driver_t
struct dxr3_driver_s dxr3_driver_t
spu_encoder_s::map
int map[OVL_PALETTE_SIZE]
Definition: video_out_dxr3.h:158
dxr3_frame_s::pan_scan
int pan_scan
Definition: video_out_dxr3.h:132
VO_PROP_WINDOW_HEIGHT
#define VO_PROP_WINDOW_HEIGHT
Definition: video_out.h:262
dxr3.h
xine_stream_s::video_driver
vo_driver_t * video_driver
Definition: xine_internal.h:157
XINE_GUI_SEND_DRAWABLE_CHANGED
#define XINE_GUI_SEND_DRAWABLE_CHANGED
Definition: xine.h:1557
vo_frame_s::overlay_offset_y
int overlay_offset_y
Definition: video_out.h:155
dxr3_overlay_s::colcal_upper
struct coeff colcal_upper[3]
Definition: video_out_dxr3.h:66
em8300_overlay_screen_t::ysize
int ysize
Definition: em8300.h:64
dxr3_scr_s
Definition: dxr3_scr.h:25
_x_alphablend_init
void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine)
Definition: alphablend.c:2161
alphablend_t
Definition: alphablend.h:30
encoder_data_s
Definition: video_out_dxr3.h:138
EM9010_ATTRIBUTE_KEYCOLOR_LOWER
#define EM9010_ATTRIBUTE_KEYCOLOR_LOWER
Definition: em8300.h:172
default_video_driver_class_dispose
#define default_video_driver_class_dispose
Definition: video_out.h:456
VO_PROP_BRIGHTNESS
#define VO_PROP_BRIGHTNESS
Definition: video_out.h:246
em8300_button_t
Definition: em8300.h:72
em8300_overlay_window_t::height
int height
Definition: em8300.h:60
dxr3_lavc_init
int dxr3_lavc_init(dxr3_driver_t *, plugin_node_t *)
Definition: ffmpeg_encoder.c:89
EM9010_ATTRIBUTE_JITTER
#define EM9010_ATTRIBUTE_JITTER
Definition: em8300.h:169
ENC_FAME
@ ENC_FAME
Definition: video_out_dxr3.h:42
dxr3_spu_setpalette
#define dxr3_spu_setpalette(fd, arg)
Definition: video_out_dxr3.h:179
dxr3_spu_encoder_init
spu_encoder_t * dxr3_spu_encoder_init(void)
Definition: dxr3_spu_encoder.c:68
dxr3_compat_ioctl
int dxr3_compat_ioctl(int, int, void *)
Definition: compat.c:27
video_out_dxr3.h
vo_frame_s::driver
vo_driver_t * driver
Definition: video_out.h:151
metronom_clock_s::register_scr
int(* register_scr)(metronom_clock_t *self, scr_plugin_t *scr)
Definition: metronom.h:261
dxr3_driver_s::video_device_lock
pthread_mutex_t video_device_lock
Definition: video_out_dxr3.h:86
XINE_VO_ASPECT_SQUARE
#define XINE_VO_ASPECT_SQUARE
Definition: xine.h:402
EM9010_ATTRIBUTE_XOFFSET
#define EM9010_ATTRIBUTE_XOFFSET
Definition: em8300.h:167
spu_encoder_s::hili_color
uint32_t hili_color[16]
Definition: video_out_dxr3.h:159
TYPE_FLOAT
#define TYPE_FLOAT
Definition: goomsl_private.h:219
em8300_button_t::right
int right
Definition: em8300.h:78
dxr3_driver_class_t
struct dxr3_driver_class_s dxr3_driver_class_t
vo_frame_s::proc_slice
void(* proc_slice)(vo_frame_t *vo_img, uint8_t **src)
Definition: video_out.h:83
dxr3_get_capabilities
static uint32_t dxr3_get_capabilities(vo_driver_t *this_gen)
Definition: video_out_dxr3.c:494
dxr3_update_enhanced_mode
static void dxr3_update_enhanced_mode(void *this_gen, xine_cfg_entry_t *entry)
Definition: video_out_dxr3.c:1558
vo_scale_s
Definition: vo_scale.h:39
_x_vo_scale_translate_gui2video
void _x_vo_scale_translate_gui2video(vo_scale_t *this, int x, int y, int *vid_x, int *vid_y)
Definition: vo_scale.c:312
dxr3_overlay_s::shrink
int shrink
Definition: video_out_dxr3.h:64
dxr3_driver_s::fd_spu
int fd_spu
Definition: video_out_dxr3.h:89
dxr3_driver_s::scale
vo_scale_t scale
Definition: video_out_dxr3.h:115
VO_CAP_YV12
#define VO_CAP_YV12
Definition: video_out.h:307
em8300_attribute_t::attribute
int attribute
Definition: em8300.h:68
dxr3_driver_s::pan_scan
int pan_scan
Definition: video_out_dxr3.h:98
dxr3_overlay_set_keycolor
static int dxr3_overlay_set_keycolor(dxr3_overlay_t *this)
encoder_data_s::on_close
int(* on_close)(dxr3_driver_t *)
Definition: video_out_dxr3.h:144
_x_alphablend_free
void _x_alphablend_free(alphablend_t *extra_data)
Definition: alphablend.c:2180
config_values_s::register_num
int(* register_num)(config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:145
em8300_overlay_window_t::width
int width
Definition: em8300.h:60
gather_screen_vars
static void gather_screen_vars(dxr3_driver_t *this, const x11_visual_t *vis)
dxr3_get_property_min_max
static void dxr3_get_property_min_max(vo_driver_t *this_gen, int property, int *min, int *max)
Definition: video_out_dxr3.c:1123
dxr3_present
int dxr3_present(xine_stream_t *stream)
Definition: video_out_dxr3.c:123
EM8300_IOCTL_OVERLAY_SET_ATTRIBUTE
#define EM8300_IOCTL_OVERLAY_SET_ATTRIBUTE
Definition: em8300.h:104
vo_overlay_s
Definition: video_out.h:472
dxr3_scr_init
dxr3_scr_t * dxr3_scr_init(xine_t *xine)
Definition: dxr3_scr.c:72
dxr3_video_setpts
#define dxr3_video_setpts(fd, arg)
Definition: video_out_dxr3.h:177
_x_blend_yuy2
void _x_blend_yuy2(uint8_t *dst_img, vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitch, alphablend_t *extra_data)
Definition: alphablend.c:1602
dxr3_frame_field
static void dxr3_frame_field(vo_frame_t *vo_img, int which_field)
Definition: video_out_dxr3.c:547
x11_visual_t::user_data
void * user_data
Definition: xine.h:1246
dxr3_overlay_s::color_interval
float color_interval
Definition: video_out_dxr3.h:60
EM8300_OVERLAY_MODE_OVERLAY
#define EM8300_OVERLAY_MODE_OVERLAY
Definition: em8300.h:159
em8300_button_t::contrast
int contrast
Definition: em8300.h:74
vo_frame_s::proc_called
int proc_called
Definition: video_out.h:144
dxr3_update_frame_format
static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
Definition: video_out_dxr3.c:563
dxr3_driver_class_s::xine
xine_t * xine
Definition: video_out_dxr3.h:72
dxr3_driver_s::video_width
uint32_t video_width
Definition: video_out_dxr3.h:110
EM8300_ASPECTRATIO_4_3
#define EM8300_ASPECTRATIO_4_3
Definition: em8300.h:125
dxr3_update_add_bars
static void dxr3_update_add_bars(void *data, xine_cfg_entry_t *entry)
Definition: video_out_dxr3.c:1542
xine_usec_sleep
void xine_usec_sleep(unsigned usec)
Definition: utils.c:546
vo_frame_s::proc_frame
void(* proc_frame)(vo_frame_t *vo_img)
Definition: video_out.h:79
vo_driver_t
Definition: video_out.h:50
dxr3_update_swap_fields
static void dxr3_update_swap_fields(void *data, xine_cfg_entry_t *entry)
Definition: video_out_dxr3.c:1550
em8300_overlay_window_t::ypos
int ypos
Definition: em8300.h:59
scale
static signed int scale(mad_fixed_t sample)
Definition: xine_mad_decoder.c:121
ENC_RTE
@ ENC_RTE
Definition: video_out_dxr3.h:42
video_out.h
video_driver_class_s
Definition: video_out.h:426
OVL_PALETTE_SIZE
#define OVL_PALETTE_SIZE
Definition: video_out.h:280
x11_rectangle_t::h
int h
Definition: xine.h:1228
XINE_VO_ASPECT_ANAMORPHIC
#define XINE_VO_ASPECT_ANAMORPHIC
Definition: xine.h:404
llprintf
#define llprintf(cat,...)
Definition: xineutils.h:642
DXR3_VO_ID
#define DXR3_VO_ID
Definition: dxr3.h:42
em8300_register_t::reg
int reg
Definition: em8300.h:39
dxr3_driver_s::spu_device_lock
pthread_mutex_t spu_device_lock
Definition: video_out_dxr3.h:88
vo_frame_s::height
int height
Definition: video_out.h:138
CONF_KEY
#define CONF_KEY
Definition: dxr3.h:33
x11_rectangle_t::x
int x
Definition: xine.h:1228
dxr3_frame_s::real_base
uint8_t * real_base[3]
Definition: video_out_dxr3.h:134
dxr3_driver_s::bcs
em8300_bcs_t bcs
Definition: video_out_dxr3.h:102
NULL
NULL
Definition: xine_plugin.c:78
encoder_data_s::type
encoder_type type
Definition: video_out_dxr3.h:139
XINE_GUI_SEND_VIDEOWIN_VISIBLE
#define XINE_GUI_SEND_VIDEOWIN_VISIBLE
Definition: xine.h:1566
XINE_VERBOSITY_LOG
#define XINE_VERBOSITY_LOG
Definition: xine.h:425
XINE_IMGFMT_DXR3
#define XINE_IMGFMT_DXR3
Definition: dxr3.h:38
em8300_bcs_t
Definition: em8300.h:44
dxr3_overlay_set_attributes
static int dxr3_overlay_set_attributes(dxr3_overlay_t *this)
dxr3_lavc_init
int dxr3_lavc_init(dxr3_driver_t *drv, plugin_node_t *plugin)
Definition: ffmpeg_encoder.c:89
x11_visual_t::display
void * display
Definition: xine.h:1240
EM8300_VIDEOMODE_DEFAULT
#define EM8300_VIDEOMODE_DEFAULT
Definition: em8300.h:134
spu_encoder_s::overlay
vo_overlay_t * overlay
Definition: video_out_dxr3.h:151
dxr3_frame_s::vo_frame
vo_frame_t vo_frame
Definition: video_out_dxr3.h:130
EM8300_IOCTL_SETBCS
#define EM8300_IOCTL_SETBCS
Definition: em8300.h:87
VO_PROP_CONTRAST
#define VO_PROP_CONTRAST
Definition: video_out.h:245
dxr3_overlay_s::stability
int stability
Definition: video_out_dxr3.h:58
XINE_GUI_SEND_EXPOSE_EVENT
#define XINE_GUI_SEND_EXPOSE_EVENT
Definition: xine.h:1560
XINE_VISUAL_TYPE_AA
#define XINE_VISUAL_TYPE_AA
Definition: xine.h:156
encoder_type
encoder_type
Definition: video_out_dxr3.h:42
LOG_VID
#define LOG_VID
Definition: video_out_dxr3.c:61
xine_s::config
config_values_t * config
Definition: xine_internal.h:82
dxr3_driver_s::spu_enc
spu_encoder_t * spu_enc
Definition: video_out_dxr3.h:105
width
unsigned int width
Definition: gfontrle.c:4
em8300_attribute_t
Definition: em8300.h:67
dxr3_driver_class_s::visual_type
int visual_type
Definition: video_out_dxr3.h:74
dxr3_driver_class_s
Definition: video_out_dxr3.h:70
dxr3_overlay_s::colcal_lower
struct coeff colcal_lower[3]
Definition: video_out_dxr3.h:67
dxr3_dispose
static void dxr3_dispose(vo_driver_t *this_gen)
Definition: video_out_dxr3.c:1200
_
#define _(String)
Definition: vcdplayer.h:39
dxr3_spu_encoder_init
spu_encoder_t * dxr3_spu_encoder_init(void)
Definition: dxr3_spu_encoder.c:68
x11_visual_t
Definition: xine.h:1237
dxr3_driver_class_s::devnum
int devnum
Definition: video_out_dxr3.h:77
config_values_s
Definition: configfile.h:83
encoder_data_s::on_update_format
int(* on_update_format)(dxr3_driver_t *, dxr3_frame_t *)
Definition: video_out_dxr3.h:140
dxr3_driver_s
Definition: video_out_dxr3.h:80
vo_overlay_s::rle
rle_elem_t * rle
Definition: video_out.h:474
spu_encoder_s::trans
uint8_t trans[4]
Definition: video_out_dxr3.h:157
EM8300_OVERLAY_MODE_OFF
#define EM8300_OVERLAY_MODE_OFF
Definition: em8300.h:157
dxr3_scr.h
dxr3_driver_s::scr
dxr3_scr_t * scr
Definition: video_out_dxr3.h:83
dxr3_driver_s::enhanced_mode
int enhanced_mode
Definition: video_out_dxr3.h:92
spu_encoder_s::need_reencode
int need_reencode
Definition: video_out_dxr3.h:152
encoder_data_s::on_frame_copy
int(* on_frame_copy)(dxr3_driver_t *, dxr3_frame_t *, uint8_t **src)
Definition: video_out_dxr3.h:141
dxr3_overlay_s::screen_depth
int screen_depth
Definition: video_out_dxr3.h:63
dxr3_overlay_s::xcorr
int xcorr
Definition: video_out_dxr3.h:56
spu_encoder_s
Definition: video_out_dxr3.h:150
group_dxr3.h
dxr3_frame_t
struct dxr3_frame_s dxr3_frame_t
EM8300_VIDEOMODE_NTSC
#define EM8300_VIDEOMODE_NTSC
Definition: em8300.h:131
dxr3_spu_encode
void dxr3_spu_encode(spu_encoder_t *this)
Definition: dxr3_spu_encoder.c:80
dxr3_driver_s::fd_control
int fd_control
Definition: video_out_dxr3.h:85
dxr3_overlay_s::yoffset
int yoffset
Definition: video_out_dxr3.h:55
em8300_button_t::color
int color
Definition: em8300.h:73
metronom_clock_s::get_current_time
int64_t(* get_current_time)(metronom_clock_t *self)
Definition: metronom.h:239
VO_PROP_ZOOM_X
#define VO_PROP_ZOOM_X
Definition: video_out.h:249
coeff
Definition: video_out_dxr3.h:45
vo_scale.h
vo_frame_s::overlay_offset_x
int overlay_offset_x
Definition: video_out.h:155
vo_frame_s::dispose
void(* dispose)(vo_frame_t *vo_img)
Definition: video_out.h:103
encoder_data_s::on_unneeded
int(* on_unneeded)(dxr3_driver_t *)
Definition: video_out_dxr3.h:143
LOG_OVR
#define LOG_OVR
Definition: video_out_dxr3.c:62
dxr3_display_frame
static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
Definition: video_out_dxr3.c:881
VO_PAN_SCAN_FLAG
#define VO_PAN_SCAN_FLAG
Definition: video_out.h:294
dxr3_driver_s::vo_driver
vo_driver_t vo_driver
Definition: video_out_dxr3.h:81
dxr3_overlay_t
struct dxr3_overlay_s dxr3_overlay_t
dxr3_zoomTV
static void dxr3_zoomTV(dxr3_driver_t *this)
Definition: video_out_dxr3.c:1502
XINE_VERBOSITY_DEBUG
#define XINE_VERBOSITY_DEBUG
Definition: xine.h:426
dxr3_overlay_s::fd_control
int fd_control
Definition: video_out_dxr3.h:52
em8300_register_t
Definition: em8300.h:38
config_values_s::xine
xine_t * xine
Definition: configfile.h:255
_x_vo_scale_compute_output_size
void _x_vo_scale_compute_output_size(vo_scale_t *this)
Definition: vo_scale.c:112
XINE_VO_ASPECT_4_3
#define XINE_VO_ASPECT_4_3
Definition: xine.h:403
_x_vo_scale_redraw_needed
int _x_vo_scale_redraw_needed(vo_scale_t *this)
Definition: vo_scale.c:265
VO_PROP_TVMODE
#define VO_PROP_TVMODE
Definition: video_out.h:251
VO_PROP_ZOOM_Y
#define VO_PROP_ZOOM_Y
Definition: video_out.h:254
coeff::k
float k
Definition: video_out_dxr3.h:46
dxr3_overlay_s::screen_yres
int screen_yres
Definition: video_out_dxr3.h:62
dxr3_overlay_update
static void dxr3_overlay_update(dxr3_driver_t *this)
dxr3_set_property
static int dxr3_set_property(vo_driver_t *this_gen, int property, int value)
Definition: video_out_dxr3.c:1027
name
const char name[16]
Definition: memcpy.c:569
dxr3_get_property
static int dxr3_get_property(vo_driver_t *this_gen, int property)
Definition: video_out_dxr3.c:998
XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO
#define XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO
Definition: xine.h:1563
EM8300_VIDEOMODE_PAL
#define EM8300_VIDEOMODE_PAL
Definition: em8300.h:129
vo_frame_s::format
int format
Definition: video_out.h:140
height
unsigned int height
Definition: gfontrle.c:5
MVCOMMAND_SYNC
#define MVCOMMAND_SYNC
Definition: em8300.h:205
xine_cfg_entry_s
Definition: xine.h:1632
xine_cfg_entry_s::num_value
int num_value
Definition: xine.h:1653
_x_vo_scale_init
void _x_vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled, config_values_t *config)
Definition: vo_scale.c:398
xine_open_cloexec
int xine_open_cloexec(const char *name, int flags)
Definition: utils.c:815
dxr3_driver_s::top_bar
int top_bar
Definition: video_out_dxr3.h:113
EM8300_IOCTL_OVERLAY_SETSCREEN
#define EM8300_IOCTL_OVERLAY_SETSCREEN
Definition: em8300.h:102
EM8300_VIDEOMODE_PAL60
#define EM8300_VIDEOMODE_PAL60
Definition: em8300.h:130
EM8300_IOCTL_OVERLAY_SETWINDOW
#define EM8300_IOCTL_OVERLAY_SETWINDOW
Definition: em8300.h:101
dxr3_driver_s::clut_cluttered
int clut_cluttered
Definition: video_out_dxr3.h:90
dxr3_frame_dispose
static void dxr3_frame_dispose(vo_frame_t *frame_gen)
Definition: video_out_dxr3.c:554
_x_blend_yuv
void _x_blend_yuv(uint8_t *dst_base[3], vo_overlay_t *img_overl, int dst_width, int dst_height, int dst_pitches[3], alphablend_t *extra_data)
Definition: alphablend.c:1155
em8300_attribute_t::value
int value
Definition: em8300.h:69
VO_PROP_WINDOW_WIDTH
#define VO_PROP_WINDOW_WIDTH
Definition: video_out.h:261
EM9010_ATTRIBUTE_STABILITY
#define EM9010_ATTRIBUTE_STABILITY
Definition: em8300.h:170
dxr3_driver_class_s::video_driver_class
video_driver_class_t video_driver_class
Definition: video_out_dxr3.h:71
dxr3_overlay_s::xine
xine_t * xine
Definition: video_out_dxr3.h:50
EM9010_ATTRIBUTE_YOFFSET
#define EM9010_ATTRIBUTE_YOFFSET
Definition: em8300.h:168
dxr3_driver_s::swap_fields
int swap_fields
Definition: video_out_dxr3.h:93
dxr3_driver_s::overlay_enabled
int overlay_enabled
Definition: video_out_dxr3.h:99
EM9010_ATTRIBUTE_XCORR
#define EM9010_ATTRIBUTE_XCORR
Definition: em8300.h:166
dxr3_overlay_read_state
static int dxr3_overlay_read_state(dxr3_overlay_t *this)
EM8300_IOCTL_SET_VIDEOMODE
#define EM8300_IOCTL_SET_VIDEOMODE
Definition: em8300.h:91
dxr3_driver_s::video_oheight
uint32_t video_oheight
Definition: video_out_dxr3.h:109
spu_encoder_s::malloc_size
int malloc_size
Definition: video_out_dxr3.h:155
SUPPORTED_ENCODER_COUNT
#define SUPPORTED_ENCODER_COUNT
Definition: video_out_dxr3.h:35
em8300_overlay_window_t
Definition: em8300.h:58
XINE_VISUAL_TYPE_X11
#define XINE_VISUAL_TYPE_X11
Definition: xine.h:154
dxr3_driver_s::alphablend_extra_data
alphablend_t alphablend_extra_data
Definition: video_out_dxr3.h:116
encoder_data_s::handle
void * handle
Definition: video_out_dxr3.h:147
dxr3_overlay_s::xoffset
int xoffset
Definition: video_out_dxr3.h:54
dxr3_frame_proc_frame
static void dxr3_frame_proc_frame(vo_frame_t *frame_gen)
Definition: video_out_dxr3.c:523
dxr3_driver_s::need_update
int need_update
Definition: video_out_dxr3.h:106
spu_encoder_s::size
int size
Definition: video_out_dxr3.h:154
xine_internal.h
vo_frame_s::vpts
int64_t vpts
Definition: video_out.h:110
dxr3_overlay_s::jitter
int jitter
Definition: video_out_dxr3.h:57
dxr3_frame_proc_slice
static void dxr3_frame_proc_slice(vo_frame_t *frame_gen, uint8_t **src)
Definition: video_out_dxr3.c:532
dxr3_overlay_s::screen_xres
int screen_xres
Definition: video_out_dxr3.h:61
dxr3_frame_s::aspect
int aspect
Definition: video_out_dxr3.h:132
dxr3_driver_s::overlay
dxr3_overlay_t overlay
Definition: video_out_dxr3.h:118
dxr3_frame_s::mem
void * mem
Definition: video_out_dxr3.h:133
dxr3_frame_s::swap_fields
int swap_fields
Definition: video_out_dxr3.h:135
DECODE_PIPE_PREBUFFER
#define DECODE_PIPE_PREBUFFER
Definition: video_out_dxr3.c:78
config.h
VO_CAP_YUY2
#define VO_CAP_YUY2
Definition: video_out.h:308
spu_encoder_s::target
uint8_t * target
Definition: video_out_dxr3.h:153
EM9010_ATTRIBUTE_KEYCOLOR_UPPER
#define EM9010_ATTRIBUTE_KEYCOLOR_UPPER
Definition: em8300.h:171
plugin_node_s
Definition: plugin_catalog.h:44
dxr3_driver_s::fd_video
int fd_video
Definition: video_out_dxr3.h:87
vo_frame_s
Definition: video_out.h:59
dxr3_driver_s::video_ratio
double video_ratio
Definition: video_out_dxr3.h:111
coeff::m
float m
Definition: video_out_dxr3.h:46
dxr3_driver_s::video_iheight
uint32_t video_iheight
Definition: video_out_dxr3.h:108
em8300_register_t::microcode_register
int microcode_register
Definition: em8300.h:41
dxr3_overlay_s
Definition: video_out_dxr3.h:49
vo_frame_s::ratio
double ratio
Definition: video_out.h:139
vo_frame_s::width
int width
Definition: video_out.h:138
dxr3_driver_s::add_bars
int add_bars
Definition: video_out_dxr3.h:94
em8300_overlay_window_t::xpos
int xpos
Definition: em8300.h:59
EM8300_IOCTL_SET_ASPECTRATIO
#define EM8300_IOCTL_SET_ASPECTRATIO
Definition: em8300.h:89
dxr3_overlay_s::colorkey
int colorkey
Definition: video_out_dxr3.h:59
spu_encoder_s::color
uint32_t color[16]
Definition: video_out_dxr3.h:156
vo_frame_s::base
uint8_t * base[3]
Definition: video_out.h:116
dxr3_driver_s::tv_switchable
int tv_switchable
Definition: video_out_dxr3.h:100
x11_rectangle_t
Definition: xine.h:1225
dxr3_gui_data_exchange
static int dxr3_gui_data_exchange(vo_driver_t *this_gen, int data_type, void *data)
Definition: video_out_dxr3.c:1140
VO_PROP_COLORKEY
#define VO_PROP_COLORKEY
Definition: video_out.h:247
_x_vo_scale_compute_ideal_size
void _x_vo_scale_compute_ideal_size(vo_scale_t *this)
Definition: vo_scale.c:47
dxr3_spu_button
#define dxr3_spu_button(fd, arg)
Definition: video_out_dxr3.h:180
XINE_IMGFMT_YUY2
#define XINE_IMGFMT_YUY2
Definition: xine.h:495
CONF_NAME
#define CONF_NAME
Definition: dxr3.h:34
dxr3_overlay_blend
static void dxr3_overlay_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
Definition: video_out_dxr3.c:777
_x_asprintf
char * _x_asprintf(const char *format,...)
Definition: utils.c:783
ENC_LAVC
@ ENC_LAVC
Definition: video_out_dxr3.h:42
x11_rectangle_t::w
int w
Definition: xine.h:1228
em8300_overlay_screen_t
Definition: em8300.h:63
xprintf
#define xprintf(xine, verbose,...)
Definition: xineutils.h:664
dxr3_aa_init_plugin
void * dxr3_aa_init_plugin(xine_t *xine, const void *visual_gen)
Definition: video_out_dxr3.c:167
N_
#define N_(String)
Definition: xineintl.h:47
vo_frame_s::free
void(* free)(vo_frame_t *vo_img)
Definition: video_out.h:100
spu_encoder_s::hili_trans
uint8_t hili_trans[4]
Definition: video_out_dxr3.h:160
vo_frame_s::field
void(* field)(vo_frame_t *vo_img, int which_field)
Definition: video_out.h:86
em8300_overlay_screen_t::xsize
int xsize
Definition: em8300.h:64