37#define POST_PLUGIN_IFACE_VERSION 10
78#define default_post_class_dispose (void (*) (post_class_t *this_gen))free
246 pthread_mutex_t free_frames_lock;
399#define _x_post_inc_usage(port) \
401 pthread_mutex_lock(&(port)->usage_lock); \
402 (port)->usage_count++; \
403 pthread_mutex_unlock(&(port)->usage_lock); \
406#define _x_post_dec_usage(port) \
408 pthread_mutex_lock(&(port)->usage_lock); \
409 (port)->usage_count--; \
410 if ((port)->usage_count == 0) { \
411 if ((port)->post->dispose_pending) { \
412 pthread_mutex_unlock(&(port)->usage_lock); \
413 (port)->post->dispose((port)->post); \
415 pthread_mutex_unlock(&(port)->usage_lock); \
417 pthread_mutex_unlock(&(port)->usage_lock); \
431#define START_PARAM_DESCR( param_t ) \
432typedef param_t temp_t; \
433static xine_post_api_parameter_t temp_p[] = {
439#define PARAM_ITEM( param_type, var, enumv, min, max, readonly, descr ) \
440{ param_type, #var, sizeof(((temp_t*)0)->var), \
441 offsetof(temp_t, var), enumv, min, max, readonly, descr },
443#define END_PARAM_DESCR( name ) \
444 { POST_PARAM_TYPE_LAST, NULL, 0, 0, NULL, 0, 0, 1, NULL } \
446static xine_post_api_descr_t name = { \
static int input(void)
Definition goomsl_lex.c:1495
#define XINE_PROTECTED
Definition attributes.h:75
int _x_post_video_port_ref(xine_video_port_t *port_gen)
Definition post.c:211
int _x_post_audio_port_ref(xine_audio_port_t *port_gen)
Definition post.c:262
int _x_post_audio_port_unref(xine_audio_port_t *port_gen)
Definition post.c:287
int _x_post_video_port_unref(xine_video_port_t *port_gen)
Definition post.c:236
void _x_post_frame_u_turn(vo_frame_t *frame, xine_stream_t *stream)
Definition post.c:719
static void _x_post_rewire(post_plugin_t *post)
Definition post.h:373
int _x_post_dispose(post_plugin_t *post)
Definition post.c:1044
void _x_post_frame_copy_up(vo_frame_t *to, vo_frame_t *from)
Definition post.c:695
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)
Definition post.c:993
void _x_post_frame_copy_down(vo_frame_t *from, vo_frame_t *to)
Definition post.c:660
static post_video_port_t * _x_post_ovl_manager_to_port(video_overlay_manager_t *manager)
Definition post.h:287
void _x_post_intercept_overlay_manager(video_overlay_manager_t *manager, post_video_port_t *port)
Definition post.c:817
static void _x_post_lock(post_plugin_t *post)
Definition post.h:380
static void _x_post_unlock(post_plugin_t *post)
Definition post.h:383
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)
Definition post.c:509
static post_video_port_t * _x_post_video_frame_to_port(vo_frame_t *frame)
Definition post.h:283
vo_frame_t * _x_post_restore_video_frame(vo_frame_t *frame, post_video_port_t *port)
Definition post.c:656
vo_frame_t * _x_post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *port)
Definition post.c:651
void _x_post_init(post_plugin_t *post, int num_audio_inputs, int num_video_inputs)
Definition post.c:292
Definition plugin_catalog.h:44
xine_stream_t * stream
Definition post.h:309
uint32_t mode
Definition post.h:319
pthread_mutex_t usage_lock
Definition post.h:311
int usage_count
Definition post.h:314
post_plugin_t * post
Definition post.h:326
uint32_t bits
Definition post.h:317
xine_audio_port_t new_port
Definition post.h:302
void * user_data
Definition post.h:329
pthread_mutex_t * port_lock
Definition post.h:322
uint32_t rate
Definition post.h:318
xine_audio_port_t * original_port
Definition post.h:305
const char * description
human readable (verbose = 1 line) description for this plugin class
Definition post.h:64
const char * text_domain
Optional non-standard catalog to use with dgettext() for description.
Definition post.h:69
void(* dispose)(post_class_t *this_gen)
Definition post.h:75
const char * identifier
short human readable identifier for this plugin class
Definition post.h:57
xine_post_in_t xine_in
Definition post.h:137
void * user_data
Definition post.h:143
post_plugin_t * post
Definition post.h:140
xine_post_out_t xine_out
Definition post.h:149
post_plugin_t * post
Definition post.h:152
void * user_data
Definition post.h:155
xine_list_t * output
Definition post.h:90
const char ** output_ids
Definition post.h:117
int dispose_pending
Definition post.h:128
xine_ticket_t * running_ticket
Definition post.h:109
void(* dispose)(post_plugin_t *this_gen)
Definition post.h:95
const char ** input_ids
Definition post.h:116
struct plugin_node_s *node XINE_PRIVATE_FIELD
Pointer to the loaded plugin node.
Definition post.h:125
xine_list_t * input
Definition post.h:89
xine_t * xine
Definition post.h:113
xine_post_t xine_post
Definition post.h:83
pthread_mutex_t * frame_lock
Definition post.h:220
xine_stream_t * stream
Definition post.h:216
pthread_mutex_t * manager_lock
Definition post.h:221
pthread_mutex_t * port_lock
Definition post.h:219
int(* intercept_ovl)(post_video_port_t *self)
Definition post.h:201
int(* route_preprocessing_procs)(post_video_port_t *self, vo_frame_t *frame)
Definition post.h:195
pthread_mutex_t usage_lock
Definition post.h:212
int(* intercept_frame)(post_video_port_t *self, vo_frame_t *frame)
Definition post.h:185
int usage_count
Definition post.h:211
vo_frame_t * new_frame
Definition post.h:188
xine_video_port_t new_port
Definition post.h:176
void * user_data
Definition post.h:228
video_overlay_manager_t * new_manager
Definition post.h:204
xine_video_port_t * original_port
Definition post.h:179
post_plugin_t * post
Definition post.h:225
video_overlay_manager_t * original_manager
Definition post.h:207
Definition video_out.h:541
Definition video_out.h:70
xine_video_port_t * port
Definition video_out.h:161
Definition audio_out.h:172
Definition xine_internal.h:80
Definition xine_internal.h:123
void(* acquire)(xine_ticket_t *self, int irrevocable)
Definition tickets.h:66
void(* release)(xine_ticket_t *self, int irrevocable)
Definition tickets.h:69
void(* renew)(xine_ticket_t *self, int irrevocable)
Definition tickets.h:75
int ticket_revoked
Definition tickets.h:61
Definition video_out.h:187
NULL
Definition xine_plugin.c:78