xine-lib 1.2.11
Data Structures | Macros | Typedefs | Functions
video_overlay.c File Reference
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/types.h>
#include <xine/buffer.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/video_overlay.h>
#include "bswap.h"

Data Structures

struct  video_overlay_events_s
 
struct  video_overlay_showing_s
 
struct  video_overlay_s
 

Macros

#define LUT_SIZE   (sizeof(overlay->color)/sizeof(overlay->color[0]))
 
#define GET_DIM(dest, src, max)   dest = src; if (dest < 0) dest = 0; else if (dest > max) dest = max;
 
#define MAKE_LINE(offs)
 

Typedefs

typedef struct video_overlay_events_s video_overlay_events_t
 
typedef struct video_overlay_showing_s video_overlay_showing_t
 
typedef struct video_overlay_s video_overlay_t
 

Functions

static void add_showing_handle (video_overlay_t *this, int32_t handle)
 
static void remove_showing_handle (video_overlay_t *this, int32_t handle)
 
static void remove_events_handle (video_overlay_t *this, int32_t handle, int lock)
 
static int32_t video_overlay_get_handle (video_overlay_manager_t *this_gen, int object_type)
 
static void internal_video_overlay_free_handle (video_overlay_t *this, int32_t handle)
 
static void video_overlay_free_handle (video_overlay_manager_t *this_gen, int32_t handle)
 
static void video_overlay_reset (video_overlay_t *this)
 
static void video_overlay_init (video_overlay_manager_t *this_gen)
 
static int32_t video_overlay_add_event (video_overlay_manager_t *this_gen, void *event_gen)
 
static int video_overlay_event (video_overlay_t *this, int64_t vpts)
 
void _x_overlay_clut_yuv2rgb (vo_overlay_t *overlay, int video_color_matrix)
 
static void clut_to_argb (const uint32_t *color, const uint8_t *trans, int num_items, uint32_t *argb, const char *format)
 
void _x_overlay_to_argb32 (const vo_overlay_t *overlay, uint32_t *rgba_buf, int stride, const char *format)
 
static void video_overlay_multiple_overlay_blend (video_overlay_manager_t *this_gen, int64_t vpts, vo_driver_t *output, vo_frame_t *vo_img, int enabled)
 
static void video_overlay_flush_events (video_overlay_manager_t *this_gen)
 
static int video_overlay_redraw_needed (video_overlay_manager_t *this_gen, int64_t vpts)
 
static void video_overlay_dispose (video_overlay_manager_t *this_gen)
 
video_overlay_manager_t_x_video_overlay_new_manager (xine_t *xine)
 

Macro Definition Documentation

◆ GET_DIM

#define GET_DIM (   dest,
  src,
  max 
)    dest = src; if (dest < 0) dest = 0; else if (dest > max) dest = max;

◆ LUT_SIZE

#define LUT_SIZE   (sizeof(overlay->color)/sizeof(overlay->color[0]))

◆ MAKE_LINE

#define MAKE_LINE (   offs)
Value:
while (1) { \
int pleft = prest > pixels ? pixels : prest; \
pixels -= pleft; \
prest -= pleft; \
while (pleft > 0) { \
*rgba++ = color; \
pleft--; \
} \
if (pixels <= 0) \
break; \
if (rle >= rle_end) \
goto _fill; \
color = colors[rle->color + offs]; \
prest = rle->len; \
rle++; \
}

Typedef Documentation

◆ video_overlay_events_t

◆ video_overlay_showing_t

◆ video_overlay_t

Function Documentation

◆ _x_overlay_clut_yuv2rgb()

void _x_overlay_clut_yuv2rgb ( vo_overlay_t overlay,
int  video_color_matrix 
)

◆ _x_overlay_to_argb32()

void _x_overlay_to_argb32 ( const vo_overlay_t overlay,
uint32_t *  rgba_buf,
int  stride,
const char *  format 
)

◆ _x_video_overlay_new_manager()

video_overlay_manager_t * _x_video_overlay_new_manager ( xine_t xine)

◆ add_showing_handle()

static void add_showing_handle ( video_overlay_t this,
int32_t  handle 
)
static

◆ clut_to_argb()

static void clut_to_argb ( const uint32_t *  color,
const uint8_t *  trans,
int  num_items,
uint32_t *  argb,
const char *  format 
)
static

References clut_s::cb.

Referenced by _x_overlay_to_argb32().

◆ internal_video_overlay_free_handle()

static void internal_video_overlay_free_handle ( video_overlay_t this,
int32_t  handle 
)
static

◆ remove_events_handle()

static void remove_events_handle ( video_overlay_t this,
int32_t  handle,
int  lock 
)
static

◆ remove_showing_handle()

static void remove_showing_handle ( video_overlay_t this,
int32_t  handle 
)
static

◆ video_overlay_add_event()

static int32_t video_overlay_add_event ( video_overlay_manager_t this_gen,
void *  event_gen 
)
static

◆ video_overlay_dispose()

static void video_overlay_dispose ( video_overlay_manager_t this_gen)
static

◆ video_overlay_event()

static int video_overlay_event ( video_overlay_t this,
int64_t  vpts 
)
static

◆ video_overlay_flush_events()

static void video_overlay_flush_events ( video_overlay_manager_t this_gen)
static

◆ video_overlay_free_handle()

static void video_overlay_free_handle ( video_overlay_manager_t this_gen,
int32_t  handle 
)
static

◆ video_overlay_get_handle()

static int32_t video_overlay_get_handle ( video_overlay_manager_t this_gen,
int  object_type 
)
static

References MAX_OBJECTS.

Referenced by _x_video_overlay_new_manager().

◆ video_overlay_init()

static void video_overlay_init ( video_overlay_manager_t this_gen)
static

◆ video_overlay_multiple_overlay_blend()

static void video_overlay_multiple_overlay_blend ( video_overlay_manager_t this_gen,
int64_t  vpts,
vo_driver_t output,
vo_frame_t vo_img,
int  enabled 
)
static

◆ video_overlay_redraw_needed()

static int video_overlay_redraw_needed ( video_overlay_manager_t this_gen,
int64_t  vpts 
)
static

◆ video_overlay_reset()

static void video_overlay_reset ( video_overlay_t this)
static