xine-lib: xine-lib-1.2.13/src/xine-engine/post.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Functions
post.c File Reference
`#include <xine/post.h>`
`#include "xine_private.h"`
`#include <stdarg.h>`
`#include <pthread.h>`

## Data Structures
struct | vf_alias_t

## Macros
#define | POST_INTERNAL
#define | HARD_DEBUG
#define | NAILS_S(struct, nail) memset (struct, nail, sizeof (*(struct)))

## Functions
static void | post_frame_lock (vo_frame_t *vo_img)
static void | post_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src)
static void | post_frame_proc_frame (vo_frame_t *vo_img)
static void | post_frame_field (vo_frame_t *vo_img, int which_field)
static int | post_frame_draw (vo_frame_t *vo_img, xine_stream_t *stream)
static void | post_frame_free (vo_frame_t *vo_img)
static void | post_frame_dispose (vo_frame_t *vo_img)
static vf_alias_t * | post_new_video_alias (post_video_port_t *port, int usage)
static void | post_free_unused_video_alias (post_video_port_t *port, vf_alias_t *f)
static vo_frame_t * | post_intercept_video_frame (post_video_port_t *port, vo_frame_t *frame, vf_alias_t *new_frame, int usage)
static vo_frame_t * | post_restore_video_frame (vo_frame_t *frame, post_video_port_t *port, int usage)
static uint32_t | post_video_get_capabilities (xine_video_port_t *port_gen)
static vo_frame_t * | post_video_get_frame (xine_video_port_t *port_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
static void | post_video_enable_ovl (xine_video_port_t *port_gen, int ovl_enable)
static video_overlay_manager_t * | post_video_get_overlay_manager (xine_video_port_t *port_gen)
static int | post_video_port_ref (xine_video_port_t *port_gen)
int | _x_post_video_port_ref (xine_video_port_t *port_gen)
static int | post_video_port_unref (xine_video_port_t *port_gen)
int | _x_post_video_port_unref (xine_video_port_t *port_gen)
static uint32_t | post_audio_get_capabilities (xine_audio_port_t *port_gen)
static audio_buffer_t * | post_audio_get_buffer (xine_audio_port_t *port_gen)
static int | post_audio_control (xine_audio_port_t *port_gen, int cmd,...)
static void | post_audio_put_buffer (xine_audio_port_t *port_gen, audio_buffer_t *buf, xine_stream_t *stream)
static int | post_audio_port_ref (xine_audio_port_t *port_gen)
int | _x_post_audio_port_ref (xine_audio_port_t *port_gen)
static int | post_audio_port_unref (xine_audio_port_t *port_gen)
int | _x_post_audio_port_unref (xine_audio_port_t *port_gen)
void | _x_post_init (post_plugin_t *post, int num_audio_inputs, int num_video_inputs)
static void | post_video_open (xine_video_port_t *port_gen, xine_stream_t *stream)
static vo_frame_t * | post_video_get_last_frame (xine_video_port_t *port_gen)
static xine_grab_video_frame_t * | post_video_new_grab_video_frame (xine_video_port_t *port_gen)
static void | post_video_close (xine_video_port_t *port_gen, xine_stream_t *stream)
static void | post_video_exit (xine_video_port_t *port_gen)
static void | post_video_flush (xine_video_port_t *port_gen)
static void | post_video_trigger_drawing (xine_video_port_t *port_gen)
static int | post_video_status (xine_video_port_t *port_gen, xine_stream_t *stream, int *width, int *height, int64_t *img_duration)
static int | post_video_get_property (xine_video_port_t *port_gen, int property)
static int | post_video_set_property (xine_video_port_t *port_gen, int property, int value)
static int | post_video_rewire (xine_post_out_t *output_gen, void *data)
post_video_port_t * | _x_post_intercept_video_port (post_plugin_t *post, xine_video_port_t *original, 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)
static void | post_overlay_init (video_overlay_manager_t *ovl_gen)
static void | post_overlay_dispose (video_overlay_manager_t *ovl_gen)
static int32_t | post_overlay_get_handle (video_overlay_manager_t *ovl_gen, int object_type)
static void | post_overlay_free_handle (video_overlay_manager_t *ovl_gen, int32_t handle)
static int32_t | post_overlay_add_event (video_overlay_manager_t *ovl_gen, void *event)
static void | post_overlay_flush_events (video_overlay_manager_t *ovl_gen)
static int | post_overlay_redraw_needed (video_overlay_manager_t *ovl_gen, int64_t vpts)
static void | post_overlay_multiple_overlay_blend (video_overlay_manager_t *ovl_gen, int64_t vpts, vo_driver_t *output, vo_frame_t *vo_img, int enabled)
void | _x_post_intercept_overlay_manager (video_overlay_manager_t *original, post_video_port_t *port)
static int | post_audio_get_property (xine_audio_port_t *port_gen, int property)
static int | post_audio_set_property (xine_audio_port_t *port_gen, int property, int value)
static int | post_audio_open (xine_audio_port_t *port_gen, xine_stream_t *stream, uint32_t bits, uint32_t rate, int mode)
static void | post_audio_close (xine_audio_port_t *port_gen, xine_stream_t *stream)
static void | post_audio_exit (xine_audio_port_t *port_gen)
static void | post_audio_flush (xine_audio_port_t *port_gen)
static int | post_audio_status (xine_audio_port_t *port_gen, xine_stream_t *stream, uint32_t *bits, uint32_t *rate, int *mode)
static int | post_audio_rewire (xine_post_out_t *output_gen, void *data)
post_audio_port_t * | _x_post_intercept_audio_port (post_plugin_t *post, xine_audio_port_t *original, post_in_t **input, post_out_t **output)
int | _x_post_dispose (post_plugin_t *this)

## Macro Definition Documentation

## ◆ HARD_DEBUG

#define HARD_DEBUG

## ◆ NAILS_S

#define NAILS_S | ( |  | struct,
|  |  | nail ) memset (struct, nail, sizeof (*(struct)))

Referenced by _x_post_dispose().

## ◆ POST_INTERNAL

#define POST_INTERNAL

## Function Documentation

## ◆ _x_post_audio_port_ref()

int _x_post_audio_port_ref | ( | xine_audio_port_t * | port_gen | ) |

References post_audio_port_ref().

Referenced by stream_rewire_audio().

## ◆ _x_post_audio_port_unref()

int _x_post_audio_port_unref | ( | xine_audio_port_t * | port_gen | ) |

References post_audio_port_unref().

Referenced by stream_rewire_audio().

## ◆ _x_post_dispose()

int _x_post_dispose | ( | post_plugin_t * | this | ) |

References _x_freep(), vf_alias_t::frame, vo_frame_s::free, input(), NAILS_S, vo_frame_s::next, NULL, post_audio_port_s::original_port, post_video_port_s::original_port, post_audio_port_unref(), post_audio_rewire(), post_frame_free(), post_video_port_unref(), post_video_rewire(), xine_stream_private_st::refs, xine_post_out_s::rewire, vf_alias_t::stream, xine_post_out_s::type, post_audio_port_s::usage_count, post_video_port_s::usage_count, post_audio_port_s::usage_lock, post_video_port_s::usage_lock, xine_list_delete(), xine_list_next_value(), XINE_POST_DATA_AUDIO, XINE_POST_DATA_VIDEO, xine_refs_sub(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by boxblur_dispose(), deinterlace_dispose(), denoise3d_dispose(), eq2_dispose(), eq_dispose(), expand_dispose(), fftgraph_dispose(), fftscope_dispose(), fill_dispose(), fooviz_dispose(), goom_dispose(), invert_dispose(), mosaico_dispose(), noise_dispose(), oscope_dispose(), pp_dispose(), stretch_dispose(), switch_dispose(), tdaan_dispose(), unsharp_dispose(), upmix_dispose(), upmix_mono_dispose(), vdr_audio_dispose(), vdr_video_dispose(), and volnorm_dispose().

## ◆ _x_post_frame_copy_down()

void _x_post_frame_copy_down | ( | vo_frame_t * | from,
|  | vo_frame_t * | to )

References _x_extra_info_merge(), vo_frame_s::bad_frame, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vo_frame_s::drawn, vo_frame_s::duration, vo_frame_s::extra_info, vf_alias_t::frame, vo_frame_s::free, vo_frame_s::picture_coding_type, post_frame_free(), vo_frame_s::progressive_frame, vo_frame_s::pts, vo_frame_s::ratio, xine_stream_private_st::refs, vo_frame_s::repeat_first_field, vf_alias_t::stream, vo_frame_s::stream, vo_frame_s::top_field_first, xine_refs_add(), and xine_refs_sub().

Referenced by boxblur_draw(), deinterlace_draw(), denoise3d_draw(), eq2_draw(), eq_draw(), expand_draw(), fill_draw(), invert_draw(), mosaico_draw_background(), noise_draw(), post_frame_draw(), post_frame_field(), post_frame_free(), post_frame_lock(), post_frame_proc_frame(), post_frame_proc_slice(), post_restore_video_frame(), pp_draw(), switch_draw(), unsharp_draw(), and vdr_video_draw().

## ◆ _x_post_frame_copy_up()

void _x_post_frame_copy_up | ( | vo_frame_t * | to,
|  | vo_frame_t * | from )

References _x_extra_info_merge(), vo_frame_s::duration, vo_frame_s::extra_info, vf_alias_t::frame, vo_frame_s::free, post_frame_free(), xine_stream_private_st::refs, vf_alias_t::stream, vo_frame_s::stream, vo_frame_s::vpts, xine_refs_add(), and xine_refs_sub().

Referenced by boxblur_draw(), deinterlace_draw(), denoise3d_draw(), eq2_draw(), eq_draw(), expand_draw(), fill_draw(), invert_draw(), mosaico_draw_background(), noise_draw(), post_frame_draw(), post_frame_field(), post_frame_free(), post_frame_lock(), post_frame_proc_frame(), post_frame_proc_slice(), pp_draw(), switch_draw(), unsharp_draw(), and vdr_video_draw().

## ◆ _x_post_frame_u_turn()

void _x_post_frame_u_turn | ( | vo_frame_t * | frame,
|  | xine_stream_t * | stream )

References _x_extra_info_merge(), vo_frame_s::extra_info, vf_alias_t::frame, vo_frame_s::free, metronom_s::got_video_frame, xine_stream_s::metronom, post_frame_free(), xine_stream_private_st::refs, vf_alias_t::stream, vo_frame_s::stream, xine_stream_private_st::video_decoder_extra_info, xine_refs_add(), and xine_refs_sub().

Referenced by mosaico_draw(), and switch_draw().

## ◆ _x_post_init()

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

References xine_post_s::audio_input, post_plugin_s::input, post_plugin_s::output, xine_post_s::video_input, xine_list_new(), and post_plugin_s::xine_post.

Referenced by boxblur_open_plugin(), deinterlace_open_plugin(), denoise3d_open_plugin(), eq2_open_plugin(), eq_open_plugin(), expand_open_plugin(), fftgraph_open_plugin(), fftscope_open_plugin(), fill_open_plugin(), fooviz_open_plugin(), goom_open_plugin(), invert_open_plugin(), mosaico_open_plugin(), noise_open_plugin(), oscope_open_plugin(), pp_open_plugin(), stretch_open_plugin(), switch_open_plugin(), tdaan_open_plugin(), unsharp_open_plugin(), upmix_mono_open_plugin(), upmix_open_plugin(), vdr_audio_open_plugin(), vdr_video_open_plugin(), and volnorm_open_plugin().

## ◆ _x_post_intercept_audio_port()

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

References xine_audio_port_s::close, xine_audio_port_s::control, xine_audio_port_s::exit, xine_audio_port_s::flush, xine_audio_port_s::get_buffer, xine_audio_port_s::get_capabilities, xine_audio_port_s::get_property, input(), post_plugin_s::input, post_audio_port_s::new_port, NULL, xine_audio_port_s::open, post_audio_port_s::original_port, post_plugin_s::output, post_audio_port_s::post, post_audio_close(), post_audio_control(), post_audio_exit(), post_audio_flush(), post_audio_get_buffer(), post_audio_get_capabilities(), post_audio_get_property(), post_audio_open(), post_audio_port_ref(), post_audio_put_buffer(), post_audio_rewire(), post_audio_set_property(), post_audio_status(), xine_audio_port_s::put_buffer, xine_audio_port_s::set_property, xine_audio_port_s::status, post_audio_port_s::usage_lock, xine_list_push_back(), and XINE_POST_DATA_AUDIO.

Referenced by fftgraph_open_plugin(), fftscope_open_plugin(), fooviz_open_plugin(), goom_open_plugin(), oscope_open_plugin(), stretch_open_plugin(), tdaan_open_plugin(), upmix_mono_open_plugin(), upmix_open_plugin(), vdr_audio_open_plugin(), and volnorm_open_plugin().

## ◆ _x_post_intercept_overlay_manager()

void _x_post_intercept_overlay_manager | ( | video_overlay_manager_t * | original,
|  | post_video_port_t * | port )

References video_overlay_manager_s::add_event, video_overlay_manager_s::dispose, video_overlay_manager_s::flush_events, video_overlay_manager_s::free_handle, video_overlay_manager_s::get_handle, video_overlay_manager_s::init, video_overlay_manager_s::multiple_overlay_blend, post_video_port_s::new_manager, post_video_port_s::original_manager, post_overlay_add_event(), post_overlay_dispose(), post_overlay_flush_events(), post_overlay_free_handle(), post_overlay_get_handle(), post_overlay_init(), post_overlay_multiple_overlay_blend(), post_overlay_redraw_needed(), and video_overlay_manager_s::redraw_needed.

Referenced by post_video_get_overlay_manager().

## ◆ _x_post_intercept_video_frame()

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

References post_intercept_video_frame(), and post_new_video_alias().

Referenced by expand_get_frame(), and fill_get_frame().

## ◆ _x_post_intercept_video_port()

post_video_port_t * _x_post_intercept_video_port | ( | post_plugin_t * | post,
|  | xine_video_port_t * | original,
|  | 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, input(), post_plugin_s::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_restore_video_frame()

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

References post_restore_video_frame().

## ◆ _x_post_video_port_ref()

int _x_post_video_port_ref | ( | xine_video_port_t * | port_gen | ) |

References post_video_port_ref().

Referenced by stream_rewire_video().

## ◆ _x_post_video_port_unref()

int _x_post_video_port_unref | ( | xine_video_port_t * | port_gen | ) |

References post_video_port_unref().

Referenced by stream_rewire_video().

## ◆ post_audio_close()

static void post_audio_close | ( | xine_audio_port_t * | port_gen,
|  | xine_stream_t * | stream )
| static

References _x_post_dec_usage, xine_audio_port_s::close, NULL, post_audio_port_s::original_port, post_audio_port_s::port_lock, and post_audio_port_s::stream.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_control()

static int post_audio_control | ( | xine_audio_port_t * | port_gen,
|  | int | cmd,
|  |  | ... )
| static

References xine_audio_port_s::control, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port(), post_audio_port_ref(), and post_audio_port_unref().

## ◆ post_audio_exit()

static void post_audio_exit | ( | xine_audio_port_t * | port_gen | ) |
| static

References xine_audio_port_s::exit, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_flush()

static void post_audio_flush | ( | xine_audio_port_t * | port_gen | ) |
| static

References xine_audio_port_s::flush, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_get_buffer()

static audio_buffer_t * post_audio_get_buffer | ( | xine_audio_port_t * | port_gen | ) |
| static

References _x_post_dec_usage, _x_post_inc_usage, xine_audio_port_s::get_buffer, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port(), post_audio_port_ref(), and post_audio_port_unref().

## ◆ post_audio_get_capabilities()

static uint32_t post_audio_get_capabilities | ( | xine_audio_port_t * | port_gen | ) |
| static

References xine_audio_port_s::get_capabilities, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port(), post_audio_port_ref(), and post_audio_port_unref().

## ◆ post_audio_get_property()

static int post_audio_get_property | ( | xine_audio_port_t * | port_gen,
|  | int | property )
| static

References xine_audio_port_s::get_property, post_audio_port_s::original_port, and post_audio_port_s::port_lock.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_open()

static int post_audio_open | ( | xine_audio_port_t * | port_gen,
|  | xine_stream_t * | stream,
|  | uint32_t | bits,
|  | uint32_t | rate,
|  | int | mode )
| static

References _x_post_inc_usage, _x_post_rewire(), bits, post_audio_port_s::bits, mode(), post_audio_port_s::mode, xine_audio_port_s::open, post_audio_port_s::original_port, post_audio_port_s::port_lock, post_audio_port_s::post, post_audio_port_s::rate, and post_audio_port_s::stream.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_port_ref()

static int post_audio_port_ref | ( | xine_audio_port_t * | port_gen | ) |
| static

References xine_audio_port_s::control, xine_audio_port_s::get_buffer, xine_audio_port_s::get_capabilities, post_audio_port_s::new_port, post_audio_control(), post_audio_get_buffer(), post_audio_get_capabilities(), post_audio_put_buffer(), xine_audio_port_s::put_buffer, post_audio_port_s::usage_count, and post_audio_port_s::usage_lock.

Referenced by _x_post_audio_port_ref(), _x_post_intercept_audio_port(), and post_audio_rewire().

## ◆ post_audio_port_unref()

static int post_audio_port_unref | ( | xine_audio_port_t * | port_gen | ) |
| static

References xine_audio_port_s::control, post_plugin_s::dispose, post_plugin_s::dispose_pending, xine_audio_port_s::get_buffer, xine_audio_port_s::get_capabilities, post_audio_port_s::new_port, post_audio_port_s::post, post_audio_control(), post_audio_get_buffer(), post_audio_get_capabilities(), post_audio_put_buffer(), xine_audio_port_s::put_buffer, post_audio_port_s::usage_count, and post_audio_port_s::usage_lock.

Referenced by _x_post_audio_port_unref(), _x_post_dispose(), and post_audio_rewire().

## ◆ post_audio_put_buffer()

static void post_audio_put_buffer | ( | xine_audio_port_t * | port_gen,
|  | audio_buffer_t * | buf,
|  | xine_stream_t * | stream )
| static

References post_audio_port_s::original_port, post_audio_port_s::port_lock, and xine_audio_port_s::put_buffer.

Referenced by _x_post_intercept_audio_port(), post_audio_port_ref(), and post_audio_port_unref().

## ◆ post_audio_rewire()

static int post_audio_rewire | ( | xine_post_out_t * | output_gen,
|  | void * | data )
| static

References bits, xine_audio_port_s::close, mode(), xine_audio_port_s::open, post_audio_port_s::original_port, post_out_s::post, post_audio_port_ref(), post_audio_port_unref(), xine_audio_port_s::status, post_audio_port_s::stream, and post_out_s::user_data.

Referenced by _x_post_dispose(), and _x_post_intercept_audio_port().

## ◆ post_audio_set_property()

static int post_audio_set_property | ( | xine_audio_port_t * | port_gen,
|  | int | property,
|  | int | value )
| static

References post_audio_port_s::original_port, post_audio_port_s::port_lock, and xine_audio_port_s::set_property.

Referenced by _x_post_intercept_audio_port().

## ◆ post_audio_status()

static int post_audio_status | ( | xine_audio_port_t * | port_gen,
|  | xine_stream_t * | stream,
|  | uint32_t * | bits,
|  | uint32_t * | rate,
|  | int * | mode )
| static

References bits, post_audio_port_s::bits, mode(), post_audio_port_s::mode, post_audio_port_s::original_port, post_audio_port_s::port_lock, post_audio_port_s::rate, and xine_audio_port_s::status.

Referenced by _x_post_intercept_audio_port().

## ◆ post_frame_dispose()

static void post_frame_dispose | ( | vo_frame_t * | vo_img | ) |
| static

References _x_post_video_frame_to_port(), vo_frame_s::dispose, post_video_port_s::frame_lock, and post_restore_video_frame().

Referenced by post_intercept_video_frame().

## ◆ post_frame_draw()

static int post_frame_draw | ( | vo_frame_t * | vo_img,
|  | xine_stream_t * | stream )
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), vo_frame_s::draw, post_video_port_s::frame_lock, and vo_frame_s::next.

Referenced by post_intercept_video_frame().

## ◆ post_frame_field()

static void post_frame_field | ( | vo_frame_t * | vo_img,
|  | int | which_field )
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), vo_frame_s::field, post_video_port_s::frame_lock, and vo_frame_s::next.

Referenced by post_intercept_video_frame().

## ◆ post_frame_free()

static void post_frame_free | ( | vo_frame_t * | vo_img | ) |
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), post_video_port_s::frame_lock, vo_frame_s::free, vo_frame_s::lock_counter, vo_frame_s::next, and post_restore_video_frame().

Referenced by _x_post_dispose(), _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_frame_u_turn(), post_intercept_video_frame(), post_restore_video_frame(), and post_video_close().

## ◆ post_frame_lock()

static void post_frame_lock | ( | vo_frame_t * | vo_img | ) |
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), post_video_port_s::frame_lock, vo_frame_s::lock, vo_frame_s::lock_counter, and vo_frame_s::next.

Referenced by post_intercept_video_frame().

## ◆ post_frame_proc_frame()

static void post_frame_proc_frame | ( | vo_frame_t * | vo_img | ) |
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), post_video_port_s::frame_lock, vo_frame_s::next, and vo_frame_s::proc_frame.

Referenced by post_intercept_video_frame().

## ◆ post_frame_proc_slice()

static void post_frame_proc_slice | ( | vo_frame_t * | vo_img,
|  | uint8_t ** | src )
| static

References _x_post_frame_copy_down(), _x_post_frame_copy_up(), _x_post_video_frame_to_port(), post_video_port_s::frame_lock, vo_frame_s::next, and vo_frame_s::proc_slice.

Referenced by post_intercept_video_frame().

## ◆ post_free_unused_video_alias()

static void post_free_unused_video_alias | ( | post_video_port_t * | port,
|  | vf_alias_t * | f )
| static

References post_plugin_s::dispose, post_plugin_s::dispose_pending, vf_alias_t::frame, vo_frame_s::next, post_video_port_s::post, post_video_port_s::usage_count, and post_video_port_s::usage_lock.

Referenced by post_video_get_frame().

## ◆ post_intercept_video_frame()

static vo_frame_t * post_intercept_video_frame | ( | post_video_port_t * | port,
|  | vo_frame_t * | frame,
|  | vf_alias_t * | new_frame,
|  | int | usage )
| static

References vo_frame_s::dispose, vo_frame_s::draw, vo_frame_s::field, vf_alias_t::frame, post_video_port_s::frame_lock, vo_frame_s::free, vo_frame_s::lock, post_video_port_s::new_frame, post_video_port_s::new_port, vo_frame_s::next, NULL, vo_frame_s::port, post_frame_dispose(), post_frame_draw(), post_frame_field(), post_frame_free(), post_frame_lock(), post_frame_proc_frame(), post_frame_proc_slice(), vo_frame_s::proc_frame, vo_frame_s::proc_slice, xine_stream_private_st::refs, post_video_port_s::route_preprocessing_procs, vf_alias_t::stream, vo_frame_s::stream, xine_fast_memcpy, xine_refs_add(), and xine_refs_sub().

Referenced by _x_post_intercept_video_frame(), and post_video_get_frame().

## ◆ post_new_video_alias()

static vf_alias_t * post_new_video_alias | ( | post_video_port_t * | port,
|  | int | usage )
| static

References vf_alias_t::frame, vo_frame_s::next, post_video_port_s::usage_count, and post_video_port_s::usage_lock.

Referenced by _x_post_intercept_video_frame(), and post_video_get_frame().

## ◆ post_overlay_add_event()

static int32_t post_overlay_add_event | ( | video_overlay_manager_t * | ovl_gen,
|  | void * | event )
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::add_event, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_dispose()

static void post_overlay_dispose | ( | video_overlay_manager_t * | ovl_gen | ) |
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::dispose, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_flush_events()

static void post_overlay_flush_events | ( | video_overlay_manager_t * | ovl_gen | ) |
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::flush_events, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_free_handle()

static void post_overlay_free_handle | ( | video_overlay_manager_t * | ovl_gen,
|  | int32_t | handle )
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::free_handle, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_get_handle()

static int32_t post_overlay_get_handle | ( | video_overlay_manager_t * | ovl_gen,
|  | int | object_type )
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::get_handle, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_init()

static void post_overlay_init | ( | video_overlay_manager_t * | ovl_gen | ) |
| static

References _x_post_ovl_manager_to_port(), video_overlay_manager_s::init, post_video_port_s::manager_lock, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_multiple_overlay_blend()

static void post_overlay_multiple_overlay_blend | ( | video_overlay_manager_t * | ovl_gen,
|  | int64_t | vpts,
|  | vo_driver_t * | output,
|  | vo_frame_t * | vo_img,
|  | int | enabled )
| static

References _x_post_ovl_manager_to_port(), enabled, post_video_port_s::manager_lock, video_overlay_manager_s::multiple_overlay_blend, and post_video_port_s::original_manager.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_overlay_redraw_needed()

static int post_overlay_redraw_needed | ( | video_overlay_manager_t * | ovl_gen,
|  | int64_t | vpts )
| static

References _x_post_ovl_manager_to_port(), post_video_port_s::manager_lock, post_video_port_s::original_manager, and video_overlay_manager_s::redraw_needed.

Referenced by _x_post_intercept_overlay_manager().

## ◆ post_restore_video_frame()

static vo_frame_t * post_restore_video_frame | ( | vo_frame_t * | frame,
|  | post_video_port_t * | port,
|  | int | usage )
| static

References _x_post_frame_copy_down(), post_plugin_s::dispose, post_plugin_s::dispose_pending, post_video_port_s::frame_lock, vo_frame_s::free, vo_frame_s::next, NULL, post_video_port_s::post, post_frame_free(), xine_stream_private_st::refs, post_video_port_s::stream, vf_alias_t::stream, post_video_port_s::usage_count, post_video_port_s::usage_lock, and xine_refs_sub().

Referenced by _x_post_restore_video_frame(), post_frame_dispose(), and post_frame_free().

## ◆ post_video_close()

static void post_video_close | ( | xine_video_port_t * | port_gen,
|  | xine_stream_t * | stream )
| static

References _x_post_dec_usage, xine_video_port_s::close, vf_alias_t::frame, vo_frame_s::free, vo_frame_s::next, NULL, post_video_port_s::original_port, post_video_port_s::port_lock, post_frame_free(), xine_stream_private_st::refs, post_video_port_s::stream, vf_alias_t::stream, post_video_port_s::usage_lock, and xine_refs_sub().

Referenced by _x_post_intercept_video_port().

## ◆ post_video_enable_ovl()

static void post_video_enable_ovl | ( | xine_video_port_t * | port_gen,
|  | int | ovl_enable )
| static

References xine_video_port_s::enable_ovl, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port(), post_video_port_ref(), and post_video_port_unref().

## ◆ post_video_exit()

static void post_video_exit | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::exit, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_flush()

static void post_video_flush | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::flush, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_get_capabilities()

static uint32_t post_video_get_capabilities | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::get_capabilities, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port(), post_video_port_ref(), and post_video_port_unref().

## ◆ post_video_get_frame()

static vo_frame_t * post_video_get_frame | ( | xine_video_port_t * | port_gen,
|  | uint32_t | width,
|  | uint32_t | height,
|  | double | ratio,
|  | int | format,
|  | int | flags )
| static

References xine_video_port_s::get_frame, height, post_video_port_s::intercept_frame, post_video_port_s::original_port, post_video_port_s::port_lock, post_free_unused_video_alias(), post_intercept_video_frame(), post_new_video_alias(), and width.

Referenced by _x_post_intercept_video_port(), post_video_port_ref(), and post_video_port_unref().

## ◆ post_video_get_last_frame()

static vo_frame_t * post_video_get_last_frame | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::get_last_frame, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_get_overlay_manager()

static video_overlay_manager_t * post_video_get_overlay_manager | ( | xine_video_port_t * | port_gen | ) |
| static

References _x_post_intercept_overlay_manager(), xine_video_port_s::get_overlay_manager, post_video_port_s::intercept_ovl, post_video_port_s::new_manager, post_video_port_s::original_manager, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port(), post_video_port_ref(), and post_video_port_unref().

## ◆ post_video_get_property()

static int post_video_get_property | ( | xine_video_port_t * | port_gen,
|  | int | property )
| static

References xine_video_port_s::get_property, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_new_grab_video_frame()

static xine_grab_video_frame_t * post_video_new_grab_video_frame | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::new_grab_video_frame, post_video_port_s::original_port, and post_video_port_s::port_lock.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_open()

static void post_video_open | ( | xine_video_port_t * | port_gen,
|  | xine_stream_t * | stream )
| static

References _x_post_inc_usage, _x_post_rewire(), xine_video_port_s::open, post_video_port_s::original_port, post_video_port_s::port_lock, post_video_port_s::post, and post_video_port_s::stream.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_port_ref()

static int post_video_port_ref | ( | xine_video_port_t * | port_gen | ) |
| static

References xine_video_port_s::enable_ovl, xine_video_port_s::get_capabilities, xine_video_port_s::get_frame, xine_video_port_s::get_overlay_manager, post_video_port_s::new_port, post_video_enable_ovl(), post_video_get_capabilities(), post_video_get_frame(), post_video_get_overlay_manager(), post_video_port_s::usage_count, and post_video_port_s::usage_lock.

Referenced by _x_post_intercept_video_port(), _x_post_video_port_ref(), and post_video_rewire().

## ◆ post_video_port_unref()

static int post_video_port_unref | ( | xine_video_port_t * | port_gen | ) |
| static

References post_plugin_s::dispose, post_plugin_s::dispose_pending, xine_video_port_s::enable_ovl, xine_video_port_s::get_capabilities, xine_video_port_s::get_frame, xine_video_port_s::get_overlay_manager, post_video_port_s::new_port, post_video_port_s::post, post_video_enable_ovl(), post_video_get_capabilities(), post_video_get_frame(), post_video_get_overlay_manager(), post_video_port_s::usage_count, and post_video_port_s::usage_lock.

Referenced by _x_post_dispose(), _x_post_video_port_unref(), and post_video_rewire().

## ◆ post_video_rewire()

static int post_video_rewire | ( | xine_post_out_t * | output_gen,
|  | void * | data )
| static

References xine_video_port_s::close, height, xine_video_port_s::open, post_video_port_s::original_port, post_out_s::post, post_video_port_ref(), post_video_port_unref(), xine_video_port_s::status, post_video_port_s::stream, post_out_s::user_data, and width.

Referenced by _x_post_dispose(), and _x_post_intercept_video_port().

## ◆ post_video_set_property()

static int post_video_set_property | ( | xine_video_port_t * | port_gen,
|  | int | property,
|  | int | value )
| static

References post_video_port_s::original_port, post_video_port_s::port_lock, and xine_video_port_s::set_property.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_status()

static int post_video_status | ( | xine_video_port_t * | port_gen,
|  | xine_stream_t * | stream,
|  | int * | width,
|  | int * | height,
|  | int64_t * | img_duration )
| static

References height, post_video_port_s::original_port, post_video_port_s::port_lock, xine_video_port_s::status, and width.

Referenced by _x_post_intercept_video_port().

## ◆ post_video_trigger_drawing()

static void post_video_trigger_drawing | ( | xine_video_port_t * | port_gen | ) |
| static

References post_video_port_s::original_port, post_video_port_s::port_lock, and xine_video_port_s::trigger_drawing.

Referenced by _x_post_intercept_video_port().