From b38d7298bdc31e000c3d533d99c0cae1ef57d1c2 Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Sun, 22 Mar 2009 01:32:27 +0000 Subject: Add common VA API data structures and helpers. Originally committed as revision 18136 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vaapi_internal.h | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 libavcodec/vaapi_internal.h (limited to 'libavcodec/vaapi_internal.h') diff --git a/libavcodec/vaapi_internal.h b/libavcodec/vaapi_internal.h new file mode 100644 index 0000000000..345289086e --- /dev/null +++ b/libavcodec/vaapi_internal.h @@ -0,0 +1,59 @@ +/* + * Video Acceleration API (video decoding) + * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1 + * + * Copyright (C) 2008-2009 Splitted-Desktop Systems + * + * This file is part of FFmpeg. + * + * FFmpeg 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. + * + * FFmpeg 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 FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VAAPI_INTERNAL_H +#define AVCODEC_VAAPI_INTERNAL_H + +#include +#include "vaapi.h" +#include "avcodec.h" +#include "mpegvideo.h" + +/** + * \addtogroup VAAPI_Decoding + * + * @{ + */ + +/** Extract VASurfaceID from a Picture */ +static inline VASurfaceID ff_vaapi_get_surface(Picture *pic) +{ + return (uintptr_t)pic->data[3]; +} + +/** Common AVHWAccel.end_frame() implementation */ +int ff_vaapi_common_end_frame(MpegEncContext *s); + +/** + * Allocate a new slice descriptor for the input slice. + * + * @param vactx the VA API context + * @param buffer the slice data buffer base + * @param size the size of the slice in bytes + * @return the newly allocated slice parameter + */ +VASliceParameterBufferBase *ff_vaapi_alloc_slice(struct vaapi_context *vactx, const uint8_t *buffer, uint32_t size); + +/* @} */ + +#endif /* AVCODEC_VAAPI_INTERNAL_H */ -- cgit v1.2.3