/*
- * Video Acceleration API (shared data between FFmpeg and the video player)
+ * Video Acceleration API (shared data between Libav and the video player)
* 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.
+ * This file is part of Libav.
*
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav 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,
+ * Libav 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
+ * License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVCODEC_VAAPI_H
#define AVCODEC_VAAPI_H
+/**
+ * @file
+ * @ingroup lavc_codec_hwaccel_vaapi
+ * Public libavcodec VA API header.
+ */
+
#include <stdint.h>
-#include <va/va.h>
+
+#include "libavutil/attributes.h"
+
+#include "version.h"
+
+#if FF_API_VAAPI_CONTEXT
/**
- * \defgroup VAAPI_Decoding VA API Decoding
- * \ingroup Decoder
+ * @defgroup lavc_codec_hwaccel_vaapi VA API Decoding
+ * @ingroup lavc_codec_hwaccel
* @{
*/
/**
- * This structure is used to share data between the FFmpeg library and
+ * This structure is used to share data between the Libav library and
* the client video application.
* This shall be zero-allocated and available as
* AVCodecContext.hwaccel_context. All user members can be set once
* during initialization or through each AVCodecContext.get_buffer()
* function call. In any case, they must be valid prior to calling
* decoding functions.
+ *
+ * Deprecated: use AVCodecContext.hw_frames_ctx instead.
*/
+attribute_deprecated
struct vaapi_context {
/**
* Window system dependent data
* - encoding: unused
* - decoding: Set by libavcodec
*/
- VABufferID pic_param_buf_id;
+ uint32_t pic_param_buf_id;
/**
* VAIQMatrixBuffer ID
* - encoding: unused
* - decoding: Set by libavcodec
*/
- VABufferID iq_matrix_buf_id;
+ uint32_t iq_matrix_buf_id;
/**
* VABitPlaneBuffer ID (for VC-1 decoding)
* - encoding: unused
* - decoding: Set by libavcodec
*/
- VABufferID bitplane_buf_id;
+ uint32_t bitplane_buf_id;
/**
* Slice parameter/data buffer IDs
* - encoding: unused
* - decoding: Set by libavcodec
*/
- VABufferID *slice_buf_ids;
+ uint32_t *slice_buf_ids;
/**
* Number of effective slice buffer IDs to send to the HW
*/
unsigned int slice_buf_ids_alloc;
- /**
- * Picture parameter buffer
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- union {
- VAPictureParameterBufferMPEG2 mpeg2;
- VAPictureParameterBufferMPEG4 mpeg4;
- VAPictureParameterBufferH264 h264;
- VAPictureParameterBufferVC1 vc1;
- } pic_param;
-
- /**
- * Size of a VAPictureParameterBuffer element
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int pic_param_size;
-
- /**
- * Inverse quantization matrix buffer
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- union {
- VAIQMatrixBufferMPEG2 mpeg2;
- VAIQMatrixBufferMPEG4 mpeg4;
- VAIQMatrixBufferH264 h264;
- } iq_matrix;
-
- /**
- * Size of a VAIQMatrixBuffer element
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int iq_matrix_size;
-
- /**
- * Flag: is quantization matrix present?
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint8_t iq_matrix_present;
-
- /**
- * VC-1 bitplane buffer
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- uint8_t *bitplane_buffer;
-
- /**
- * Size of VC-1 bitplane buffer
- *
- * - encoding: unused
- * - decoding: Set by libavcodec
- */
- unsigned int bitplane_buffer_size;
-
/**
* Pointer to VASliceParameterBuffers
*
/* @} */
+#endif /* FF_API_VAAPI_CONTEXT */
+
#endif /* AVCODEC_VAAPI_H */