xine-lib 1.2.11
Data Structures | Macros | Typedefs | Functions | Variables
video_out_directfb.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "xine.h"
#include <xine/xine_internal.h>
#include <xine/video_out.h>
#include <xine/xineutils.h>
#include <xine/vo_scale.h>
#include <directfb.h>
#include <directfb_version.h>

Data Structures

struct  directfb_frame_s
 
struct  directfb_driver_s
 
struct  directfb_class_t
 

Macros

#define LOG_MODULE   "video_out_directfb"
 
#define LOG_VERBOSE
 
#define VERSION_CODE(M, m, r)   (((M) * 1000) + ((m) * 100) + (r))
 
#define DIRECTFB_VERSION_CODE
 
#define DEFAULT_COLORKEY   0x202040
 
#define DIRECTFB_OPTIONS
 
#define XDIRECTFB_OPTIONS
 
#define YCBCR_TO_RGB(y, cb, cr, r, g, b)
 
#define LOCK_DISPLAY()
 
#define UNLOCK_DISPLAY()
 
#define MAX_RECTS   100
 

Typedefs

typedef struct directfb_frame_s directfb_frame_t
 
typedef struct directfb_driver_s directfb_driver_t
 

Functions

static uint32_t directfb_get_capabilities (vo_driver_t *this_gen)
 
static void directfb_frame_field (vo_frame_t *vo_img, int which_field)
 
static void directfb_frame_dispose (vo_frame_t *vo_img)
 
static vo_frame_tdirectfb_alloc_frame (vo_driver_t *this_gen)
 
static void directfb_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int fmt, int flags)
 
static void directfb_clean_output_area (directfb_driver_t *this)
 
static void directfb_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
 
static void directfb_subpicture_paint (directfb_driver_t *this, vo_overlay_t *overlay)
 
static void directfb_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
 
static void directfb_overlay_end (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static int directfb_redraw_needed (vo_driver_t *this_gen)
 
static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static int directfb_get_property (vo_driver_t *this_gen, int property)
 
static int directfb_set_property (vo_driver_t *this_gen, int property, int value)
 
static void directfb_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
 
static int directfb_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
 
static void directfb_dispose (vo_driver_t *this_gen)
 
static void update_config_cb (void *data, xine_cfg_entry_t *entry)
 
static void init_config (directfb_driver_t *this)
 
static DFBEnumerationResult find_overlay (DFBDisplayLayerID id, DFBDisplayLayerDescription dsc, void *ctx)
 
static DFBEnumerationResult find_underlay (DFBDisplayLayerID id, DFBDisplayLayerDescription dsc, void *ctx)
 
static void init_subpicture (directfb_driver_t *this)
 
static DFBResult init_device (directfb_driver_t *this)
 
static void directfb_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)
 
static int convert_caps (DFBDisplayLayerCapabilities caps)
 
static vo_driver_topen_plugin_fb (video_driver_class_t *class_gen, const void *visual_gen)
 
static void * init_class_fb (xine_t *xine, const void *visual_gen)
 

Variables

static const vo_info_t vo_info_directfb_fb
 
const plugin_info_t xine_plugin_info[] EXPORTED
 

Macro Definition Documentation

◆ DEFAULT_COLORKEY

#define DEFAULT_COLORKEY   0x202040

◆ DIRECTFB_OPTIONS

#define DIRECTFB_OPTIONS
Value:
"no-banner,"\
"bg-colour=00000000,"\
"no-vt-switch,"\
"no-vt-switching,"\
"no-sighandler,"\
"no-deinit-check,"\
"disable-module=linux_input,"\
"disable-module=keyboard"

◆ DIRECTFB_VERSION_CODE

#define DIRECTFB_VERSION_CODE
Value:
VERSION_CODE( DIRECTFB_MAJOR_VERSION,\
DIRECTFB_MINOR_VERSION,\
DIRECTFB_MICRO_VERSION )
#define VERSION_CODE(M, m, r)
Definition: video_out_directfb.c:54

◆ LOCK_DISPLAY

#define LOCK_DISPLAY ( )
Value:
do { \
if (this->lock_display) \
this->lock_display (this->user_data); \
else \
XLockDisplay (this->display); \
} while (0)
static void user_data(vdpau_mpeg4_decoder_t *this_gen, uint8_t *buffer, int len)
Definition: vdpau_mpeg4.c:695

◆ LOG_MODULE

#define LOG_MODULE   "video_out_directfb"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ MAX_RECTS

#define MAX_RECTS   100

◆ UNLOCK_DISPLAY

#define UNLOCK_DISPLAY ( )
Value:
do { \
if (this->unlock_display) \
this->unlock_display (this->user_data); \
else \
XUnlockDisplay (this->display); \
} while (0)

◆ VERSION_CODE

#define VERSION_CODE (   M,
  m,
 
)    (((M) * 1000) + ((m) * 100) + (r))

◆ XDIRECTFB_OPTIONS

#define XDIRECTFB_OPTIONS
Value:
"no-banner,"\
"no-sighandler,"\
"no-deinit-check"

◆ YCBCR_TO_RGB

#define YCBCR_TO_RGB (   y,
  cb,
  cr,
  r,
  g,
 
)
Value:
do { \
int _y, _cb, _cr, _r, _g, _b; \
_y = ((y) - 16) * 76309; \
_cb = (cb) - 128; \
_cr = (cr) - 128; \
_r = (_y + _cr * 104597 + 0x8000) >> 16; \
_g = (_y - _cb * 25675 - _cr * 53279 + 0x8000) >> 16; \
_b = (_y + _cb * 132201 + 0x8000) >> 16; \
(r) = (_r < 0) ? 0 : ((_r > 255) ? 255 : _r); \
(g) = (_g < 0) ? 0 : ((_g > 255) ? 255 : _g); \
(b) = (_b < 0) ? 0 : ((_b > 255) ? 255 : _b); \
} while (0)

Typedef Documentation

◆ directfb_driver_t

◆ directfb_frame_t

Function Documentation

◆ convert_caps()

static int convert_caps ( DFBDisplayLayerCapabilities  caps)
inlinestatic

◆ directfb_alloc_frame()

static vo_frame_t * directfb_alloc_frame ( vo_driver_t this_gen)
static

◆ directfb_clean_output_area()

static void directfb_clean_output_area ( directfb_driver_t this)
static

◆ directfb_display_frame()

static void directfb_display_frame ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

◆ directfb_display_frame2()

static void directfb_display_frame2 ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

◆ directfb_dispose()

static void directfb_dispose ( vo_driver_t this_gen)
static

◆ directfb_frame_dispose()

static void directfb_frame_dispose ( vo_frame_t vo_img)
static

◆ directfb_frame_field()

static void directfb_frame_field ( vo_frame_t vo_img,
int  which_field 
)
static

Referenced by directfb_alloc_frame().

◆ directfb_frame_output_cb()

static void directfb_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 
)
static

References user_data().

Referenced by open_plugin_fb().

◆ directfb_get_capabilities()

static uint32_t directfb_get_capabilities ( vo_driver_t this_gen)
static

Referenced by open_plugin_fb().

◆ directfb_get_property()

static int directfb_get_property ( vo_driver_t this_gen,
int  property 
)
static

◆ directfb_get_property_min_max()

static void directfb_get_property_min_max ( vo_driver_t this_gen,
int  property,
int *  min,
int *  max 
)
static

◆ directfb_gui_data_exchange()

static int directfb_gui_data_exchange ( vo_driver_t this_gen,
int  data_type,
void *  data 
)
static

◆ directfb_overlay_begin()

static void directfb_overlay_begin ( vo_driver_t this_gen,
vo_frame_t frame_gen,
int  changed 
)
static

◆ directfb_overlay_blend()

static void directfb_overlay_blend ( vo_driver_t this_gen,
vo_frame_t frame_gen,
vo_overlay_t overlay 
)
static

◆ directfb_overlay_end()

static void directfb_overlay_end ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

◆ directfb_redraw_needed()

static int directfb_redraw_needed ( vo_driver_t this_gen)
static

◆ directfb_set_property()

static int directfb_set_property ( vo_driver_t this_gen,
int  property,
int  value 
)
static

◆ directfb_subpicture_paint()

static void directfb_subpicture_paint ( directfb_driver_t this,
vo_overlay_t overlay 
)
static

◆ directfb_update_frame_format()

static void directfb_update_frame_format ( vo_driver_t this_gen,
vo_frame_t frame_gen,
uint32_t  width,
uint32_t  height,
double  ratio,
int  fmt,
int  flags 
)
static

◆ find_overlay()

static DFBEnumerationResult find_overlay ( DFBDisplayLayerID  id,
DFBDisplayLayerDescription  dsc,
void *  ctx 
)
static

References lprintf.

Referenced by open_plugin_fb().

◆ find_underlay()

static DFBEnumerationResult find_underlay ( DFBDisplayLayerID  id,
DFBDisplayLayerDescription  dsc,
void *  ctx 
)
static

References lprintf.

Referenced by init_device().

◆ init_class_fb()

static void * init_class_fb ( xine_t xine,
const void *  visual_gen 
)
static

◆ init_config()

static void init_config ( directfb_driver_t this)
static

◆ init_device()

static DFBResult init_device ( directfb_driver_t this)
static

◆ init_subpicture()

static void init_subpicture ( directfb_driver_t this)
static

References _, lprintf, NULL, XINE_VERBOSITY_LOG, and xprintf.

Referenced by open_plugin_fb().

◆ open_plugin_fb()

static vo_driver_t * open_plugin_fb ( video_driver_class_t class_gen,
const void *  visual_gen 
)
static

◆ update_config_cb()

static void update_config_cb ( void *  data,
xine_cfg_entry_t entry 
)
static

Variable Documentation

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
#define VIDEO_OUT_DRIVER_IFACE_VERSION
Definition: video_out.h:346
static void * init_class_fb(xine_t *xine, const void *visual_gen)
Definition: video_out_directfb.c:1931
static const vo_info_t vo_info_directfb_fb
Definition: video_out_directfb.c:1961
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
NULL
Definition: xine_plugin.c:78
#define PLUGIN_NONE
Definition: xine_plugin.h:29
#define PLUGIN_VIDEO_OUT
Definition: xine_plugin.h:36

◆ vo_info_directfb_fb

const vo_info_t vo_info_directfb_fb
static
Initial value:
= {
.priority = 8,
.visual_type = XINE_VISUAL_TYPE_FB,
}
#define XINE_VISUAL_TYPE_FB
Definition: xine.h:157