xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | Typedefs | Functions
post.h File Reference
#include <pthread.h>
#include <xine.h>
#include <xine/attributes.h>
#include <xine/video_out.h>
#include <xine/audio_out.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  post_class_s
 
struct  post_plugin_s
 
struct  post_in_s
 
struct  post_out_s
 
struct  post_video_port_s
 
struct  post_audio_port_s
 

Macros

#define POST_PLUGIN_IFACE_VERSION   10
 
#define default_post_class_dispose   (void (*) (post_class_t *this_gen))free
 
#define _x_post_inc_usage(port)
 
#define _x_post_dec_usage(port)
 
#define START_PARAM_DESCR(param_t)
 
#define PARAM_ITEM(param_type, var, enumv, min, max, readonly, descr)
 
#define END_PARAM_DESCR(name)
 

Typedefs

typedef struct post_class_s post_class_t
 
typedef struct post_plugin_s post_plugin_t
 
typedef struct post_in_s post_in_t
 
typedef struct post_out_s post_out_t
 
typedef struct post_video_port_s post_video_port_t
 
typedef struct post_audio_port_s post_audio_port_t
 

Functions

void _x_post_init (post_plugin_t *post, int num_audio_inputs, int num_video_inputs)
 
post_video_port_t_x_post_intercept_video_port (post_plugin_t *post, xine_video_port_t *port, post_in_t **input, post_out_t **output)
 
vo_frame_t_x_post_intercept_video_frame (vo_frame_t *frame, post_video_port_t *port)
 
vo_frame_t_x_post_restore_video_frame (vo_frame_t *frame, post_video_port_t *port)
 
void _x_post_frame_copy_down (vo_frame_t *from, vo_frame_t *to)
 
void _x_post_frame_copy_up (vo_frame_t *to, vo_frame_t *from)
 
void _x_post_frame_u_turn (vo_frame_t *frame, xine_stream_t *stream)
 
void _x_post_intercept_overlay_manager (video_overlay_manager_t *manager, post_video_port_t *port)
 
static post_video_port_t_x_post_video_frame_to_port (vo_frame_t *frame)
 
static post_video_port_t_x_post_ovl_manager_to_port (video_overlay_manager_t *manager)
 
post_audio_port_t_x_post_intercept_audio_port (post_plugin_t *post, xine_audio_port_t *port, post_in_t **input, post_out_t **output)
 
static void _x_post_rewire (post_plugin_t *post)
 
static void _x_post_lock (post_plugin_t *post)
 
static void _x_post_unlock (post_plugin_t *post)
 
int _x_post_dispose (post_plugin_t *post)
 

Macro Definition Documentation

◆ _x_post_dec_usage

#define _x_post_dec_usage ( port)
Value:
do { \
pthread_mutex_lock(&(port)->usage_lock); \
(port)->usage_count--; \
if ((port)->usage_count == 0) { \
if ((port)->post->dispose_pending) { \
pthread_mutex_unlock(&(port)->usage_lock); \
(port)->post->dispose((port)->post); \
} else \
pthread_mutex_unlock(&(port)->usage_lock); \
} else \
pthread_mutex_unlock(&(port)->usage_lock); \
} while(0)

Referenced by deinterlace_close(), denoise3d_close(), fftgraph_port_close(), fftscope_port_close(), fooviz_port_close(), goom_port_close(), mosaico_close(), oscope_port_close(), post_audio_close(), post_audio_get_buffer(), post_video_close(), stretch_port_close(), tdaan_port_close(), and volnorm_port_close().

◆ _x_post_inc_usage

#define _x_post_inc_usage ( port)

◆ default_post_class_dispose

#define default_post_class_dispose   (void (*) (post_class_t *this_gen))free

◆ END_PARAM_DESCR

#define END_PARAM_DESCR ( name)
Value:
{ POST_PARAM_TYPE_LAST, NULL, 0, 0, NULL, 0, 0, 1, NULL } \
}; \
sizeof( temp_t ), \
temp_p \
};
Definition xine.h:873
const char * name
Definition xine.c:1575
#define POST_PARAM_TYPE_LAST
Definition xine.h:904
NULL
Definition xine_plugin.c:78

◆ PARAM_ITEM

#define PARAM_ITEM ( param_type,
var,
enumv,
min,
max,
readonly,
descr )
Value:
{ param_type, #var, sizeof(((temp_t*)0)->var), \
offsetof(temp_t, var), enumv, min, max, readonly, descr },

◆ POST_PLUGIN_IFACE_VERSION

#define POST_PLUGIN_IFACE_VERSION   10

◆ START_PARAM_DESCR

#define START_PARAM_DESCR ( param_t)
Value:
typedef param_t temp_t; \
static xine_post_api_parameter_t temp_p[] = {
Definition xine.h:860

Typedef Documentation

◆ post_audio_port_t

◆ post_class_t

typedef struct post_class_s post_class_t

◆ post_in_t

typedef struct post_in_s post_in_t

◆ post_out_t

typedef struct post_out_s post_out_t

◆ post_plugin_t

typedef struct post_plugin_s post_plugin_t

◆ post_video_port_t

Function Documentation

◆ _x_post_dispose()

int _x_post_dispose ( post_plugin_t * post)

◆ _x_post_frame_copy_down()

void _x_post_frame_copy_down ( vo_frame_t * from,
vo_frame_t * to )

◆ _x_post_frame_copy_up()

void _x_post_frame_copy_up ( vo_frame_t * to,
vo_frame_t * from )

◆ _x_post_frame_u_turn()

void _x_post_frame_u_turn ( vo_frame_t * frame,
xine_stream_t * stream )

◆ _x_post_init()

void _x_post_init ( post_plugin_t * post,
int num_audio_inputs,
int num_video_inputs )

◆ _x_post_intercept_audio_port()

post_audio_port_t * _x_post_intercept_audio_port ( post_plugin_t * post,
xine_audio_port_t * port,
post_in_t ** input,
post_out_t ** output )

◆ _x_post_intercept_overlay_manager()

void _x_post_intercept_overlay_manager ( video_overlay_manager_t * manager,
post_video_port_t * port )

◆ _x_post_intercept_video_frame()

vo_frame_t * _x_post_intercept_video_frame ( vo_frame_t * frame,
post_video_port_t * port )

◆ _x_post_intercept_video_port()

post_video_port_t * _x_post_intercept_video_port ( post_plugin_t * post,
xine_video_port_t * port,
post_in_t ** input,
post_out_t ** output )

References xine_video_port_s::close, xine_video_port_s::driver, xine_video_port_s::enable_ovl, xine_video_port_s::exit, xine_video_port_s::flush, xine_video_port_s::get_capabilities, xine_video_port_s::get_frame, xine_video_port_s::get_last_frame, xine_video_port_s::get_overlay_manager, xine_video_port_s::get_property, post_plugin_s::input, input(), post_video_port_s::new_frame, xine_video_port_s::new_grab_video_frame, post_video_port_s::new_manager, post_video_port_s::new_port, NULL, xine_video_port_s::open, post_video_port_s::original_port, post_plugin_s::output, post_video_port_s::post, post_video_close(), post_video_enable_ovl(), post_video_exit(), post_video_flush(), post_video_get_capabilities(), post_video_get_frame(), post_video_get_last_frame(), post_video_get_overlay_manager(), post_video_get_property(), post_video_new_grab_video_frame(), post_video_open(), post_video_port_ref(), post_video_rewire(), post_video_set_property(), post_video_status(), post_video_trigger_drawing(), xine_video_port_s::set_property, xine_video_port_s::status, xine_video_port_s::trigger_drawing, post_video_port_s::usage_lock, xine_list_push_back(), and XINE_POST_DATA_VIDEO.

Referenced by boxblur_open_plugin(), deinterlace_open_plugin(), denoise3d_open_plugin(), eq2_open_plugin(), eq_open_plugin(), expand_open_plugin(), fill_open_plugin(), invert_open_plugin(), mosaico_open_plugin(), noise_open_plugin(), pp_open_plugin(), switch_open_plugin(), unsharp_open_plugin(), and vdr_video_open_plugin().

◆ _x_post_lock()

static void _x_post_lock ( post_plugin_t * post)
inlinestatic

◆ _x_post_ovl_manager_to_port()

static post_video_port_t * _x_post_ovl_manager_to_port ( video_overlay_manager_t * manager)
inlinestatic

◆ _x_post_restore_video_frame()

vo_frame_t * _x_post_restore_video_frame ( vo_frame_t * frame,
post_video_port_t * port )

◆ _x_post_rewire()

static void _x_post_rewire ( post_plugin_t * post)
inlinestatic

◆ _x_post_unlock()

static void _x_post_unlock ( post_plugin_t * post)
inlinestatic

◆ _x_post_video_frame_to_port()

static post_video_port_t * _x_post_video_frame_to_port ( vo_frame_t * frame)
inlinestatic