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

xine-lib 1.2.12

Data Structures | Functions
vaapi_frame.h File Reference
`#include <xine/video_out.h>`
`#include "accel_vaapi.h"`
`#include "vaapi_util.h"`
`#include "../mem_frame.h"`

Go to the source code of this file.

## Data Structures
struct | vaapi_frame_t

## Functions
vaapi_frame_t * | _x_va_frame_alloc_frame (vaapi_context_impl_t *va, vo_driver_t *driver, int guarded_render)
void | _x_va_frame_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
void | _x_va_frame_provide_standard_frame_data (vo_frame_t *vo_frame, xine_current_frame_data_t *data)
void | _x_va_frame_duplicate_frame_data (vo_frame_t *this_gen, vo_frame_t *original)
static vaapi_context_impl_t * | _ctx_from_frame (vo_frame_t *vo_frame)
static int | _x_va_accel_profile_from_imgfmt (vo_frame_t *vo_frame, unsigned format)
static ff_vaapi_context_t * | _x_va_accel_get_context (vo_frame_t *vo_frame)
static int | _x_va_accel_vaapi_init (vo_frame_t *vo_frame, int va_profile, int width, int height)
static int | _x_va_accel_guarded_render (vo_frame_t *vo_frame)
static int | _x_va_accel_lock_decode_dummy (vo_frame_t *vo_frame)
static ff_vaapi_surface_t * | _x_va_accel_get_vaapi_surface (vo_frame_t *vo_frame)
static ff_vaapi_surface_t * | _x_va_accel_alloc_vaapi_surface (vo_frame_t *vo_frame)
static void | _x_va_accel_render_vaapi_surface (vo_frame_t *vo_frame, ff_vaapi_surface_t *va_surface)
static void | _x_va_accel_release_vaapi_surface (vo_frame_t *vo_frame, ff_vaapi_surface_t *va_surface)
static void | _x_va_frame_displayed (vo_frame_t *vo_frame)

## Function Documentation

## ◆ _ctx_from_frame()

static vaapi_context_impl_t * _ctx_from_frame | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References vaapi_frame_t::ctx_impl, and xine_container_of.

Referenced by _x_va_accel_alloc_vaapi_surface(), _x_va_accel_get_context(), _x_va_accel_get_vaapi_surface(), _x_va_accel_profile_from_imgfmt(), _x_va_accel_release_vaapi_surface(), _x_va_accel_render_vaapi_surface(), _x_va_accel_vaapi_init(), _x_va_frame_displayed(), _x_va_frame_duplicate_frame_data(), _x_va_frame_provide_standard_frame_data(), and _x_va_frame_update_frame_format().

## ◆ _x_va_accel_alloc_vaapi_surface()

static ff_vaapi_surface_t * _x_va_accel_alloc_vaapi_surface | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References _ctx_from_frame(), and _x_va_alloc_surface().

Referenced by _x_va_frame_alloc_frame(), _x_va_frame_duplicate_frame_data(), and vaapi_alloc_frame().

## ◆ _x_va_accel_get_context()

static ff_vaapi_context_t * _x_va_accel_get_context | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References _ctx_from_frame(), and vaapi_context_impl::c.

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_get_vaapi_surface()

static ff_vaapi_surface_t * _x_va_accel_get_vaapi_surface | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References _ctx_from_frame(), _x_assert, vo_frame_s::accel_data, vaapi_context_impl::c, vaapi_accel_s::index, RENDER_SURFACES, and ff_vaapi_context_s::va_render_surfaces.

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_guarded_render()

static int _x_va_accel_guarded_render | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References vo_frame_s::accel_data, vaapi_accel_s::f, NULL, and vaapi_accel_funcs_s::render_vaapi_surface.

Referenced by _x_va_frame_alloc_frame(), _x_va_frame_duplicate_frame_data(), _x_va_frame_update_frame_format(), and vaapi_alloc_frame().

## ◆ _x_va_accel_lock_decode_dummy()

static int _x_va_accel_lock_decode_dummy | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_profile_from_imgfmt()

static int _x_va_accel_profile_from_imgfmt | ( | vo_frame_t * | vo_frame,
|  | unsigned | format
| ) |  |
| inlinestatic

References _ctx_from_frame(), and _x_va_profile_from_imgfmt().

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_release_vaapi_surface()

static void _x_va_accel_release_vaapi_surface | ( | vo_frame_t * | vo_frame,
|  | ff_vaapi_surface_t * | va_surface
| ) |  |
| inlinestatic

References _ctx_from_frame(), and _x_va_release_surface().

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_render_vaapi_surface()

static void _x_va_accel_render_vaapi_surface | ( | vo_frame_t * | vo_frame,
|  | ff_vaapi_surface_t * | va_surface
| ) |  |
| inlinestatic

References _ctx_from_frame(), _x_va_render_surface(), vo_frame_s::accel_data, ff_vaapi_surface_s::index, and vaapi_accel_s::index.

Referenced by _x_va_frame_alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_accel_vaapi_init()

static int _x_va_accel_vaapi_init | ( | vo_frame_t * | vo_frame,
|  | int | va_profile,
|  | int | width,
|  | int | height
| ) |  |
| inlinestatic

References _ctx_from_frame(), _x_va_init(), height, and width.

Referenced by _x_va_frame_alloc_frame().

## ◆ _x_va_frame_alloc_frame()

vaapi_frame_t * _x_va_frame_alloc_frame | ( | vaapi_context_impl_t * | va,
|  | vo_driver_t * | driver,
|  | int | guarded_render
| ) |  |

References _mem_frame_alloc_frame(), _x_va_accel_alloc_vaapi_surface(), _x_va_accel_get_context(), _x_va_accel_get_vaapi_surface(), _x_va_accel_guarded_render(), _x_va_accel_lock_decode_dummy(), _x_va_accel_profile_from_imgfmt(), _x_va_accel_release_vaapi_surface(), _x_va_accel_render_vaapi_surface(), _x_va_accel_vaapi_init(), vo_frame_s::accel_data, vaapi_frame_t::ctx_impl, vaapi_accel_s::f, vaapi_context_impl::frames, vaapi_accel_funcs_s::guarded_render, vaapi_accel_s::index, LOG_MODULE, vaapi_frame_t::mem_frame, NULL, vaapi_context_impl::num_frames, RENDER_SURFACES, vaapi_frame_t::vaapi_accel_data, vaapi_accel_funcs_s::vaapi_init, mem_frame_t::vo_frame, vaapi_context_impl::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by _alloc_frame(), and vaapi_alloc_frame().

## ◆ _x_va_frame_displayed()

static void _x_va_frame_displayed | ( | vo_frame_t * | vo_frame | ) |
| inlinestatic

References _ctx_from_frame(), _x_va_surface_displayed(), vo_frame_s::accel_data, vaapi_context_impl::c, vaapi_accel_s::index, RENDER_SURFACES, and ff_vaapi_context_s::va_render_surfaces.

Referenced by _add_recent_frame(), _flush_recent_frames(), and _x_va_frame_update_frame_format().

## ◆ _x_va_frame_duplicate_frame_data()

void _x_va_frame_duplicate_frame_data | ( | vo_frame_t * | this_gen,
|  | vo_frame_t * | original
| ) |  |

References _ctx_from_frame(), _x_assert, _x_va_accel_alloc_vaapi_surface(), _x_va_accel_guarded_render(), _x_va_check_status(), _x_va_create_image(), _x_va_destroy_image(), _x_va_surface_displayed(), vo_frame_s::accel_data, vaapi_context_impl::c, vaapi_context_impl::ctx_lock, vo_frame_s::format, vo_frame_s::height, ff_vaapi_context_s::height, ff_vaapi_surface_s::index, vaapi_accel_s::index, LOG_MODULE, lprintf, NULL, RENDER_SURFACES, ff_vaapi_surface_s::status, SURFACE_RENDER_RELEASE, ff_vaapi_context_s::va_display, ff_vaapi_context_s::va_render_surfaces, ff_vaapi_surface_s::va_surface_id, vo_frame_s::width, ff_vaapi_context_s::width, vaapi_context_impl::xine, xine_fast_memcpy, XINE_IMGFMT_VAAPI, XINE_VERBOSITY_LOG, and xprintf.

Referenced by _x_va_frame_update_frame_format().

## ◆ _x_va_frame_provide_standard_frame_data()

void _x_va_frame_provide_standard_frame_data | ( | vo_frame_t * | vo_frame,
|  | xine_current_frame_data_t * | data
| ) |  |

References _ctx_from_frame(), _x_assert, _x_nv12_to_yv12(), _x_va_check_status(), _x_va_create_image(), _x_va_destroy_image(), vo_frame_s::accel_data, vaapi_context_impl::c, vaapi_context_impl::ctx_lock, xine_current_frame_data_s::format, vo_frame_s::format, xine_current_frame_data_s::height, vo_frame_s::height, height, ff_vaapi_context_s::height, xine_current_frame_data_s::img, xine_current_frame_data_s::img_size, vaapi_accel_s::index, LOG_MODULE, lprintf, vaapi_context_impl::query_va_status, RENDER_SURFACES, ff_vaapi_context_s::va_display, ff_vaapi_context_s::va_render_surfaces, ff_vaapi_surface_s::va_surface_id, xine_current_frame_data_s::width, vo_frame_s::width, width, ff_vaapi_context_s::width, vaapi_context_impl::xine, XINE_IMGFMT_VAAPI, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, and yv12_to_yv12().

Referenced by _x_va_frame_update_frame_format().

## ◆ _x_va_frame_update_frame_format()

void _x_va_frame_update_frame_format | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | uint32_t | width,
|  | uint32_t | height,
|  | double | ratio,
|  | int | format,
|  | int | flags
| ) |  |

References _ctx_from_frame(), _x_assert, _x_va_accel_guarded_render(), _x_va_frame_displayed(), _x_va_frame_duplicate_frame_data(), _x_va_frame_provide_standard_frame_data(), vo_frame_s::accel_data, vaapi_context_impl::ctx_lock, mem_frame_t::format, FRAME_FORMAT_STR, height, vaapi_accel_s::index, lprintf, mem_frame_update_frame_format(), NULL, vo_frame_s::proc_duplicate_frame_data, vo_frame_s::proc_provide_standard_frame_data, RENDER_SURFACES, mem_frame_t::vo_frame, vo_frame_s::width, width, mem_frame_t::width, xine_container_of, and XINE_IMGFMT_VAAPI.

Referenced by _get_instance(), and vaapi_open_plugin().