xine-lib: xine-lib-1.2.12/src/video_out/xxmc.h File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions
xxmc.h File Reference
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <errno.h>`
`#include <math.h>`
`#include <stdint.h>`
`#include <sys/types.h>`
`#include <sys/ipc.h>`
`#include <sys/shm.h>`
`#include <sys/time.h>`
`#include <X11/Xlib.h>`
`#include <X11/Xutil.h>`
`#include <X11/cursorfont.h>`
`#include <X11/extensions/XShm.h>`
`#include <X11/extensions/Xv.h>`
`#include <X11/extensions/Xvlib.h>`
`#include <X11/extensions/XvMClib.h>`
`#include "xine.h"`
`#include <xine/video_out.h>`
`#include <xine/xine_internal.h>`
`#include <xine/xineutils.h>`
`#include <xine/vo_scale.h>`
`#include "x11osd.h"`
`#include "accel_xvmc.h"`

Go to the source code of this file.

## Data Structures
struct | xvmc_macroblocks_t
struct | xxmc_property_t
struct | xxmc_frame_t
struct | xvmc_capabilities_t
struct | xvmc_surface_handler_s
struct | context_lock_s
struct | xxmc_driver_s
struct | xxmc_class_t

## Macros
#define | XVMC_THREAD_SAFE
#define | LOG_MODULE "video_out_xxmc"
#define | LOG_VERBOSE
#define | FOURCC_IA44 0x34344149
#define | FOURCC_AI44 0x34344941
#define | XVMC_MAX_SURFACES 16
#define | XVMC_MAX_SUBPICTURES 4
#define | LOCK_AND_SURFACE_VALID(driver, surface)
#define | XVMCLOCKDISPLAY(display) XLockDisplay(display)
#define | XVMCUNLOCKDISPLAY(display) XUnlockDisplay(display)

## Typedefs
typedef struct xxmc_driver_s | xxmc_driver_t
typedef struct xvmc_surface_handler_s | xvmc_surface_handler_t
typedef struct context_lock_s | context_lock_t

## Functions
void | xvmc_context_reader_unlock (context_lock_t *c)
void | xvmc_context_reader_lock (context_lock_t *c)
int | xxmc_xvmc_surface_valid (xxmc_driver_t *this, XvMCSurface *surf)
void | xvmc_vld_slice (vo_frame_t *this_gen)
void | xvmc_vld_frame (struct vo_frame_s *this_gen)
void | xxmc_xvmc_proc_macro_block (int x, int y, int mb_type, int motion_type, int(*mv_field_sel)[2], int *dmvector, int cbp, int dct_type, vo_frame_t *current_frame, vo_frame_t *forward_ref_frame, vo_frame_t *backward_ref_frame, int picture_structure, int second_field, int(*f_mot_pmv)[2], int(*b_mot_pmv)[2])

## Macro Definition Documentation

## ◆ FOURCC_AI44

#define FOURCC_AI44 0x34344941

## ◆ FOURCC_IA44

#define FOURCC_IA44 0x34344149

## ◆ LOCK_AND_SURFACE_VALID

#define LOCK_AND_SURFACE_VALID | ( |  | driver,
|  |  | surface
| ) |  |

Value:
xvmc_context_reader_lock( &(driver)->xvmc_lock ); \
if (!xxmc_xvmc_surface_valid((driver),(surface))) { \
xvmc_context_reader_unlock( &(driver)->xvmc_lock ); \
return; \
}
xxmc_xvmc_surface_valid
int xxmc_xvmc_surface_valid(xxmc_driver_t *this, XvMCSurface *surf)
Definition: video_out_xxmc.c:269
xvmc_context_reader_lock
void xvmc_context_reader_lock(context_lock_t *c)
Definition: video_out_xxmc.c:93

## ◆ LOG_MODULE

#define LOG_MODULE "video_out_xxmc"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## ◆ XVMC_MAX_SUBPICTURES

#define XVMC_MAX_SUBPICTURES 4

## ◆ XVMC_MAX_SURFACES

#define XVMC_MAX_SURFACES 16

## ◆ XVMC_THREAD_SAFE

#define XVMC_THREAD_SAFE

## ◆ XVMCLOCKDISPLAY

#define XVMCLOCKDISPLAY | ( |  | display | ) | XLockDisplay(display)

## ◆ XVMCUNLOCKDISPLAY

#define XVMCUNLOCKDISPLAY | ( |  | display | ) | XUnlockDisplay(display)

## Typedef Documentation

## ◆ context_lock_t

typedef struct context_lock_s context_lock_t

## ◆ xvmc_surface_handler_t

typedef struct xvmc_surface_handler_s xvmc_surface_handler_t

## ◆ xxmc_driver_t

typedef struct xxmc_driver_s xxmc_driver_t

## Function Documentation

## ◆ xvmc_context_reader_lock()

void xvmc_context_reader_lock | ( | context_lock_t * | c | ) |

References context_lock_s::mutex, and context_lock_s::num_readers.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), xxmc_overlay_begin(), xxmc_property_callback(), and xxmc_set_property().

## ◆ xvmc_context_reader_unlock()

void xvmc_context_reader_unlock | ( | context_lock_t * | c | ) |

References context_lock_s::cond, context_lock_s::mutex, and context_lock_s::num_readers.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), xxmc_overlay_begin(), xxmc_overlay_blend(), xxmc_overlay_end(), xxmc_property_callback(), xxmc_set_property(), and xxmc_unlock_surfaces().

## ◆ xvmc_vld_frame()

void xvmc_vld_frame | ( | struct vo_frame_s * | this_gen | ) |

Referenced by xxmc_frame_updates().

## ◆ xvmc_vld_slice()

void xvmc_vld_slice | ( | vo_frame_t * | this_gen | ) |

Referenced by xxmc_frame_updates().

## ◆ xxmc_xvmc_proc_macro_block()

void xxmc_xvmc_proc_macro_block | ( | int | x,
|  | int | y,
|  | int | mb_type,
|  | int | motion_type,
|  | int(*) | mv_field_sel[2],
|  | int * | dmvector,
|  | int | cbp,
|  | int | dct_type,
|  | vo_frame_t * | current_frame,
|  | vo_frame_t * | forward_ref_frame,
|  | vo_frame_t * | backward_ref_frame,
|  | int | picture_structure,
|  | int | second_field,
|  | int(*) | f_mot_pmv[2],
|  | int(*) | b_mot_pmv[2]
| ) |  |

References calc_DMV(), vo_frame_s::driver, NULL, vo_frame_s::picture_coding_type, vo_frame_s::top_field_first, VO_BOTH_FIELDS, XINE_MACROBLOCK_INTRA, XINE_MACROBLOCK_MOTION_BACKWARD, XINE_MACROBLOCK_MOTION_FORWARD, XINE_MACROBLOCK_PATTERN, XINE_MC_16X8, XINE_MC_DMV, XINE_MC_FIELD, XINE_MC_FRAME, XINE_PICT_B_TYPE, XINE_PICT_D_TYPE, XINE_PICT_I_TYPE, XINE_PICT_P_TYPE, and xvmc_render_macro_blocks().

Referenced by xxmc_frame_updates().

## ◆ xxmc_xvmc_surface_valid()

int xxmc_xvmc_surface_valid | ( | xxmc_driver_t * | this,
|  | XvMCSurface * | surf
| ) |  |

References xvmc_surface_handler_s::mutex, xvmc_surface_handler_s::surfaces, xvmc_surface_handler_s::surfValid, and XVMC_MAX_SURFACES.

Referenced by xvmc_flush(), xxmc_display_frame(), xxmc_duplicate_frame_data(), xxmc_frame_updates(), xxmc_gui_data_exchange(), xxmc_lock_and_validate_surfaces(), and xxmc_overlay_begin().