X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Favcodec%2Fva.h;h=eabe1b5a93f5a8613e7f3582ab8568ec4e27f2c2;hb=fef270581f736d4f6289a77cb115195241ed691d;hp=fe6a1f497c7bd1f44b62248002c45ebcc8d2d278;hpb=6f121876e5fcab04c7203fb259df7d80be98a4b0;p=vlc diff --git a/modules/codec/avcodec/va.h b/modules/codec/avcodec/va.h index fe6a1f497c..eabe1b5a93 100644 --- a/modules/codec/avcodec/va.h +++ b/modules/codec/avcodec/va.h @@ -6,34 +6,40 @@ * * Authors: Laurent Aimar * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program 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. * * This program 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 General Public License for more details. + * 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 General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #ifndef _VLC_VA_H #define _VLC_VA_H 1 typedef struct vlc_va_t vlc_va_t; +typedef struct vlc_va_sys_t vlc_va_sys_t; + struct vlc_va_t { + VLC_COMMON_MEMBERS + + vlc_va_sys_t *sys; + module_t *module; char *description; + int pix_fmt; int (*setup)(vlc_va_t *, void **hw, vlc_fourcc_t *output, int width, int height); int (*get)(vlc_va_t *, AVFrame *frame); void (*release)(vlc_va_t *, AVFrame *frame); int (*extract)(vlc_va_t *, picture_t *dst, AVFrame *src); - void (*close)(vlc_va_t *); }; static inline int vlc_va_Setup(vlc_va_t *va, void **hw, vlc_fourcc_t *output, @@ -53,12 +59,8 @@ static inline int vlc_va_Extract(vlc_va_t *va, picture_t *dst, AVFrame *src) { return va->extract(va, dst, src); } -static inline void vlc_va_Delete(vlc_va_t *va) -{ - va->close(va); -} -vlc_va_t *vlc_va_NewVaapi(int codec_id); +static vlc_va_t *vlc_va_New(vlc_object_t *, int, const es_format_t *); +static void vlc_va_Delete(vlc_va_t *va); #endif -