xine-lib 1.2.11
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
video_out_directx.c File Reference
#include <windows.h>
#include <ddraw.h>
#include <pthread.h>
#include "xine.h"
#include <xine/video_out.h>
#include <xine/xine_internal.h>
#include "yuv2rgb.h"

Data Structures

struct  win32_frame_t
 
struct  win32_driver_t
 
struct  directx_class_t
 

Macros

#define XINE_NEED_WIN32_VISUAL
 
#define LOG_MODULE   "video_out_directx"
 
#define LOG_VERBOSE
 
#define RGB_SUPPORT   0
 
#define BORDER_SIZE   8
 
#define IMGFMT_NATIVE   4
 
#define IID_IDirectDraw   xine_IID_IDirectDraw
 

Typedefs

typedef unsigned char boolean
 

Enumerations

enum  vo_directx_hwaccel_enum { VO_DIRECTX_HWACCEL_FULL = 0 , VO_DIRECTX_HWACCEL_SCALE = 1 , VO_DIRECTX_HWACCEL_NONE = 2 }
 

Functions

static void Error (HWND hwnd, LPCSTR szfmt,...)
 
static void UpdateRect (HWND WndHnd, RECT *rect, const win32_visual_t *win32_visual)
 
static boolean CreatePrimary (win32_driver_t *win32_driver)
 
static boolean CreateSecondary (win32_driver_t *win32_driver, int width, int height, int format)
 
static void Destroy (win32_driver_t *win32_driver)
 
static boolean CheckPixelFormat (win32_driver_t *win32_driver)
 
static boolean Overlay (LPDIRECTDRAWSURFACE src_surface, RECT *src_rect, LPDIRECTDRAWSURFACE dst_surface, RECT *dst_rect, COLORREF color_key)
 
static boolean BltCopy (LPDIRECTDRAWSURFACE src_surface, RECT *src_rect, LPDIRECTDRAWSURFACE dst_surface, RECT *dst_rect)
 
static boolean DisplayFrame (win32_driver_t *win32_driver)
 
static void * Lock (win32_driver_t *win32_driver, void *surface)
 
static void Unlock (void *surface)
 
static uint32_t win32_get_capabilities (vo_driver_t *vo_driver)
 
static void win32_frame_field (vo_frame_t *vo_frame, int which_field)
 
static void win32_free_framedata (vo_frame_t *vo_frame)
 
static void win32_frame_dispose (vo_frame_t *vo_frame)
 
static vo_frame_twin32_alloc_frame (vo_driver_t *vo_driver)
 
static void win32_update_frame_format (vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint32_t width, uint32_t height, double ratio, int format, int flags)
 
static void win32_display_frame (vo_driver_t *vo_driver, vo_frame_t *vo_frame)
 
static void win32_overlay_blend (vo_driver_t *vo_driver, vo_frame_t *vo_frame, vo_overlay_t *vo_overlay)
 
static int win32_get_property (vo_driver_t *vo_driver, int property)
 
static int win32_set_property (vo_driver_t *vo_driver, int property, int value)
 
static void win32_get_property_min_max (vo_driver_t *vo_driver, int property, int *min, int *max)
 
static int win32_gui_data_exchange (vo_driver_t *vo_driver, int data_type, void *data)
 
static int win32_redraw_needed (vo_driver_t *this_gen)
 
static void win32_exit (vo_driver_t *vo_driver)
 
static vo_driver_topen_plugin (video_driver_class_t *class_gen, const void *visual)
 
static void * init_class (xine_t *xine, const void *visual_gen)
 

Variables

static const GUID xine_IID_IDirectDraw
 
static const vo_info_t vo_info_win32
 
const plugin_info_t xine_plugin_info[] EXPORTED
 

Macro Definition Documentation

◆ BORDER_SIZE

#define BORDER_SIZE   8

◆ IID_IDirectDraw

#define IID_IDirectDraw   xine_IID_IDirectDraw

◆ IMGFMT_NATIVE

#define IMGFMT_NATIVE   4

◆ LOG_MODULE

#define LOG_MODULE   "video_out_directx"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ RGB_SUPPORT

#define RGB_SUPPORT   0

◆ XINE_NEED_WIN32_VISUAL

#define XINE_NEED_WIN32_VISUAL

Typedef Documentation

◆ boolean

typedef unsigned char boolean

Enumeration Type Documentation

◆ vo_directx_hwaccel_enum

Enumerator
VO_DIRECTX_HWACCEL_FULL 
VO_DIRECTX_HWACCEL_SCALE 
VO_DIRECTX_HWACCEL_NONE 

Function Documentation

◆ BltCopy()

static boolean BltCopy ( LPDIRECTDRAWSURFACE  src_surface,
RECT *  src_rect,
LPDIRECTDRAWSURFACE  dst_surface,
RECT *  dst_rect 
)
static

References Error().

Referenced by DisplayFrame().

◆ CheckPixelFormat()

static boolean CheckPixelFormat ( win32_driver_t win32_driver)
static

◆ CreatePrimary()

static boolean CreatePrimary ( win32_driver_t win32_driver)
static

◆ CreateSecondary()

static boolean CreateSecondary ( win32_driver_t win32_driver,
int  width,
int  height,
int  format 
)
static

◆ Destroy()

static void Destroy ( win32_driver_t win32_driver)
static

◆ DisplayFrame()

static boolean DisplayFrame ( win32_driver_t win32_driver)
static

◆ Error()

static void Error ( HWND  hwnd,
LPCSTR  szfmt,
  ... 
)
static

◆ init_class()

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

◆ Lock()

static void * Lock ( win32_driver_t win32_driver,
void *  surface 
)
static

References win32_driver_t::ddsd, and Error().

Referenced by win32_display_frame().

◆ open_plugin()

static vo_driver_t * open_plugin ( video_driver_class_t class_gen,
const void *  visual 
)
static

◆ Overlay()

static boolean Overlay ( LPDIRECTDRAWSURFACE  src_surface,
RECT *  src_rect,
LPDIRECTDRAWSURFACE  dst_surface,
RECT *  dst_rect,
COLORREF  color_key 
)
static

References Error().

Referenced by DisplayFrame().

◆ Unlock()

static void Unlock ( void *  surface)
static

Referenced by win32_display_frame().

◆ UpdateRect()

static void UpdateRect ( HWND  WndHnd,
RECT *  rect,
const win32_visual_t *  win32_visual 
)
static

◆ win32_alloc_frame()

static vo_frame_t * win32_alloc_frame ( vo_driver_t vo_driver)
static

◆ win32_display_frame()

static void win32_display_frame ( vo_driver_t vo_driver,
vo_frame_t vo_frame 
)
static

◆ win32_exit()

static void win32_exit ( vo_driver_t vo_driver)
static

References Destroy().

Referenced by open_plugin().

◆ win32_frame_dispose()

static void win32_frame_dispose ( vo_frame_t vo_frame)
static

◆ win32_frame_field()

static void win32_frame_field ( vo_frame_t vo_frame,
int  which_field 
)
static

Referenced by win32_alloc_frame().

◆ win32_free_framedata()

static void win32_free_framedata ( vo_frame_t vo_frame)
static

◆ win32_get_capabilities()

static uint32_t win32_get_capabilities ( vo_driver_t vo_driver)
static

References VO_CAP_YUY2, and VO_CAP_YV12.

Referenced by open_plugin().

◆ win32_get_property()

static int win32_get_property ( vo_driver_t vo_driver,
int  property 
)
static

References lprintf.

Referenced by open_plugin().

◆ win32_get_property_min_max()

static void win32_get_property_min_max ( vo_driver_t vo_driver,
int  property,
int *  min,
int *  max 
)
static

Referenced by open_plugin().

◆ win32_gui_data_exchange()

static int win32_gui_data_exchange ( vo_driver_t vo_driver,
int  data_type,
void *  data 
)
static

◆ win32_overlay_blend()

static void win32_overlay_blend ( vo_driver_t vo_driver,
vo_frame_t vo_frame,
vo_overlay_t vo_overlay 
)
static

◆ win32_redraw_needed()

static int win32_redraw_needed ( vo_driver_t this_gen)
static

◆ win32_set_property()

static int win32_set_property ( vo_driver_t vo_driver,
int  property,
int  value 
)
static

◆ win32_update_frame_format()

static void win32_update_frame_format ( vo_driver_t vo_driver,
vo_frame_t vo_frame,
uint32_t  width,
uint32_t  height,
double  ratio,
int  format,
int  flags 
)
static

Variable Documentation

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
static const vo_info_t vo_info_win32
Definition: video_out_directx.c:1366
static void * init_class(xine_t *xine, const void *visual_gen)
Definition: video_out_directx.c:1345
#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_win32

const vo_info_t vo_info_win32
static
Initial value:
= {
.priority = 7,
.visual_type = XINE_VISUAL_TYPE_DIRECTX,
}
#define XINE_VISUAL_TYPE_DIRECTX
Definition: xine.h:161

◆ xine_IID_IDirectDraw

const GUID xine_IID_IDirectDraw
static
Initial value:
= {
0x6C14DB80,0xA733,0x11CE,{0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60}
}