tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

vaapi.h (3889B)


      1 /*
      2 * Video Acceleration API (shared data between Libav and the video player)
      3 * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1
      4 *
      5 * Copyright (C) 2008-2009 Splitted-Desktop Systems
      6 *
      7 * This file is part of Libav.
      8 *
      9 * Libav is free software; you can redistribute it and/or
     10 * modify it under the terms of the GNU Lesser General Public
     11 * License as published by the Free Software Foundation; either
     12 * version 2.1 of the License, or (at your option) any later version.
     13 *
     14 * Libav is distributed in the hope that it will be useful,
     15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     17 * Lesser General Public License for more details.
     18 *
     19 * You should have received a copy of the GNU Lesser General Public
     20 * License along with Libav; if not, write to the Free Software
     21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     22 */
     23 
     24 #ifndef AVCODEC_VAAPI_H
     25 #define AVCODEC_VAAPI_H
     26 
     27 #include <stdint.h>
     28 
     29 /**
     30 * @defgroup VAAPI_Decoding VA API Decoding
     31 * @ingroup Decoder
     32 * @{
     33 */
     34 
     35 /**
     36 * This structure is used to share data between the Libav library and
     37 * the client video application.
     38 * This shall be zero-allocated and available as
     39 * AVCodecContext.hwaccel_context. All user members can be set once
     40 * during initialization or through each AVCodecContext.get_buffer()
     41 * function call. In any case, they must be valid prior to calling
     42 * decoding functions.
     43 */
     44 struct vaapi_context {
     45    /**
     46     * Window system dependent data
     47     *
     48     * - encoding: unused
     49     * - decoding: Set by user
     50     */
     51    void *display;
     52 
     53    /**
     54     * Configuration ID
     55     *
     56     * - encoding: unused
     57     * - decoding: Set by user
     58     */
     59    uint32_t config_id;
     60 
     61    /**
     62     * Context ID (video decode pipeline)
     63     *
     64     * - encoding: unused
     65     * - decoding: Set by user
     66     */
     67    uint32_t context_id;
     68 
     69    /**
     70     * VAPictureParameterBuffer ID
     71     *
     72     * - encoding: unused
     73     * - decoding: Set by libavcodec
     74     */
     75    uint32_t pic_param_buf_id;
     76 
     77    /**
     78     * VAIQMatrixBuffer ID
     79     *
     80     * - encoding: unused
     81     * - decoding: Set by libavcodec
     82     */
     83    uint32_t iq_matrix_buf_id;
     84 
     85    /**
     86     * VABitPlaneBuffer ID (for VC-1 decoding)
     87     *
     88     * - encoding: unused
     89     * - decoding: Set by libavcodec
     90     */
     91    uint32_t bitplane_buf_id;
     92 
     93    /**
     94     * Slice parameter/data buffer IDs
     95     *
     96     * - encoding: unused
     97     * - decoding: Set by libavcodec
     98     */
     99    uint32_t *slice_buf_ids;
    100 
    101    /**
    102     * Number of effective slice buffer IDs to send to the HW
    103     *
    104     * - encoding: unused
    105     * - decoding: Set by libavcodec
    106     */
    107    unsigned int n_slice_buf_ids;
    108 
    109    /**
    110     * Size of pre-allocated slice_buf_ids
    111     *
    112     * - encoding: unused
    113     * - decoding: Set by libavcodec
    114     */
    115    unsigned int slice_buf_ids_alloc;
    116 
    117    /**
    118     * Pointer to VASliceParameterBuffers
    119     *
    120     * - encoding: unused
    121     * - decoding: Set by libavcodec
    122     */
    123    void *slice_params;
    124 
    125    /**
    126     * Size of a VASliceParameterBuffer element
    127     *
    128     * - encoding: unused
    129     * - decoding: Set by libavcodec
    130     */
    131    unsigned int slice_param_size;
    132 
    133    /**
    134     * Size of pre-allocated slice_params
    135     *
    136     * - encoding: unused
    137     * - decoding: Set by libavcodec
    138     */
    139    unsigned int slice_params_alloc;
    140 
    141    /**
    142     * Number of slices currently filled in
    143     *
    144     * - encoding: unused
    145     * - decoding: Set by libavcodec
    146     */
    147    unsigned int slice_count;
    148 
    149    /**
    150     * Pointer to slice data buffer base
    151     * - encoding: unused
    152     * - decoding: Set by libavcodec
    153     */
    154    const uint8_t *slice_data;
    155 
    156    /**
    157     * Current size of slice data
    158     *
    159     * - encoding: unused
    160     * - decoding: Set by libavcodec
    161     */
    162    uint32_t slice_data_size;
    163 };
    164 
    165 /* @} */
    166 
    167 #endif /* AVCODEC_VAAPI_H */