1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-14 19:11:53 +00:00
mpv/video/vaapi.h
wm4 f3512686ee vaapi: replace error macro implementation
The current check_va_status() function could probably be argued to be
derived from the original VAAPI's patch check_status() function, thus
GPL-only. While I have my doubts that it applies to an idiom on this
level, it's better to replace it. Similar idea, different expression
equals no copyright association.

An earlier commit message promised this, but it was forgotten.
2017-09-30 16:07:00 +02:00

57 lines
1.8 KiB
C

/*
* This file is part of mpv.
*
* mpv is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* mpv is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MPV_VAAPI_H
#define MPV_VAAPI_H
#include <stdbool.h>
#include <inttypes.h>
#include <pthread.h>
#include <va/va.h>
#include "mp_image.h"
#include "hwdec.h"
struct mp_vaapi_ctx {
struct mp_hwdec_ctx hwctx;
struct mp_log *log;
VADisplay display;
struct AVBufferRef *av_device_ref; // AVVAAPIDeviceContext*
// Internal, for va_create_standalone()
void *native_ctx;
void (*destroy_native_ctx)(void *native_ctx);
};
#define CHECK_VA_STATUS(ctx, msg) \
(status == VA_STATUS_SUCCESS ? true \
: (MP_ERR(ctx, "%s failed (%s)\n", msg, vaErrorStr(status)), false))
int va_get_colorspace_flag(enum mp_csp csp);
struct mp_vaapi_ctx * va_initialize(VADisplay *display, struct mp_log *plog, bool probing);
void va_destroy(struct mp_vaapi_ctx *ctx);
VASurfaceID va_surface_id(struct mp_image *mpi);
bool va_guess_if_emulated(struct mp_vaapi_ctx *ctx);
struct mpv_global;
struct mp_hwdec_ctx *va_create_standalone(struct mpv_global *global,
struct mp_log *plog, bool probing);
#endif