xine-lib: xine-lib-1.2.13/src/video_out/hw_frame.h Source File

xine-lib 1.2.13-20230125hg15249

hw_frame.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2022 the xine project
3 * Copyright (C) 2021-2022 Petri Hintukainen <phintuka@users.sourceforge.net>
4 *
5 * This file is part of xine, a free video player.
6 *
7 * xine is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * xine is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20 *
21 * hw_frame.h, Interface between video output and HW decoders
22 *
23 */
24
25#ifndef XINE_HW_FRAME_H_
26#define XINE_HW_FRAME_H_
27
28#include <xine/video_out.h>
29#include <xine/xine_internal.h>
30
31struct mem_frame_t;
32struct xine_gl;
33
34 typedef struct xine_glconv_t xine_glconv_t;
35 struct xine_glconv_t {
36 int (*get_textures)(xine_glconv_t *, vo_frame_t *, unsigned target,
37 unsigned *textures, unsigned *textures_count, unsigned *sw_format);
38 void (*destroy) (xine_glconv_t **);
39};
40
41 typedef struct xine_hwdec_t xine_hwdec_t;
42
43 struct xine_hwdec_t {
44 int frame_format; /* Frame format (XINE_IMGFMT_*) */
45 uint32_t driver_capabilities; /* VO_CAP_* */
46
47 struct
48 mem_frame_t *(*alloc_frame) (xine_hwdec_t *);
49 void (*update_frame_format) (vo_driver_t *vo_driver,
50 vo_frame_t *vo_frame,
51 uint32_t width, uint32_t height,
52 double ratio, int format, int flags);
53 void (*destroy) (xine_hwdec_t **);
54
55
56 xine_glconv_t *(*opengl_interop) (xine_hwdec_t *, struct xine_gl *);
57};
58
59 xine_hwdec_t *_x_hwdec_new(xine_t *xine, vo_driver_t *vo_driver,
60 unsigned visual_type, const void *visual,
61 unsigned flags);
62
63#endif /* XINE_HW_FRAME_H_ */
height
unsigned int height
Definition gfontrle.c:5
width
unsigned int width
Definition gfontrle.c:4
_x_hwdec_new
xine_hwdec_t * _x_hwdec_new(xine_t *xine, vo_driver_t *vo_driver, unsigned visual_type, const void *visual, unsigned flags)
Definition hw_frame.c:56
video_out.h
mem_frame_t
Definition mem_frame.h:32
vo_driver_t
Definition video_out.h:50
vo_frame_s
Definition video_out.h:70
xine_gl
Definition xine_gl.h:38
xine_glconv_t
Definition hw_frame.h:35
xine_glconv_t::destroy
void(* destroy)(xine_glconv_t **)
Definition hw_frame.h:38
xine_glconv_t::get_textures
int(* get_textures)(xine_glconv_t *, vo_frame_t *, unsigned target, unsigned *textures, unsigned *textures_count, unsigned *sw_format)
Definition hw_frame.h:36
xine_hwdec_t
Definition hw_frame.h:43
xine_hwdec_t::frame_format
int frame_format
Definition hw_frame.h:44
xine_hwdec_t::driver_capabilities
uint32_t driver_capabilities
Definition hw_frame.h:45
xine_hwdec_t::destroy
void(* destroy)(xine_hwdec_t **)
Definition hw_frame.h:53
xine_hwdec_t::update_frame_format
void(* update_frame_format)(vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint32_t width, uint32_t height, double ratio, int format, int flags)
Definition hw_frame.h:49
xine_s
Definition xine_internal.h:80
xine_internal.h