xine-lib 1.2.13-20230125hg15249
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

Referenced by open_plugin_fb().

◆ 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"

Referenced by open_plugin_fb().

◆ 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

Referenced by directfb_clean_output_area(), directfb_dispose(), directfb_gui_data_exchange(), directfb_overlay_begin(), directfb_overlay_blend(), and directfb_overlay_end().

◆ 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)

Referenced by directfb_clean_output_area(), directfb_dispose(), directfb_gui_data_exchange(), directfb_overlay_begin(), directfb_overlay_blend(), and directfb_overlay_end().

◆ VERSION_CODE

#define VERSION_CODE ( M,
m,
r )   (((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,
b )
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)

Referenced by directfb_subpicture_paint().

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:369
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