Path: blob/a-new-beginning/libavcodec.xcframework/macos-arm64/libavcodec.framework/Versions/A/Headers/d3d11va.h
2 views
/*1* Direct3D11 HW acceleration2*3* copyright (c) 2009 Laurent Aimar4* copyright (c) 2015 Steve Lhomme5*6* This file is part of FFmpeg.7*8* FFmpeg is free software; you can redistribute it and/or9* modify it under the terms of the GNU Lesser General Public10* License as published by the Free Software Foundation; either11* version 2.1 of the License, or (at your option) any later version.12*13* FFmpeg is distributed in the hope that it will be useful,14* but WITHOUT ANY WARRANTY; without even the implied warranty of15* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU16* Lesser General Public License for more details.17*18* You should have received a copy of the GNU Lesser General Public19* License along with FFmpeg; if not, write to the Free Software20* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA21*/2223#ifndef AVCODEC_D3D11VA_H24#define AVCODEC_D3D11VA_H2526/**27* @file28* @ingroup lavc_codec_hwaccel_d3d11va29* Public libavcodec D3D11VA header.30*/3132#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x060233#undef _WIN32_WINNT34#define _WIN32_WINNT 0x060235#endif3637#include <stdint.h>38#include <d3d11.h>3940/**41* @defgroup lavc_codec_hwaccel_d3d11va Direct3D1142* @ingroup lavc_codec_hwaccel43*44* @{45*/4647#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for Direct3D11 and old UVD/UVD+ ATI video cards48#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for Direct3D11 and old Intel GPUs with ClearVideo interface4950/**51* This structure is used to provides the necessary configurations and data52* to the Direct3D11 FFmpeg HWAccel implementation.53*54* The application must make it available as AVCodecContext.hwaccel_context.55*56* Use av_d3d11va_alloc_context() exclusively to allocate an AVD3D11VAContext.57*/58typedef struct AVD3D11VAContext {59/**60* D3D11 decoder object61*/62ID3D11VideoDecoder *decoder;6364/**65* D3D11 VideoContext66*/67ID3D11VideoContext *video_context;6869/**70* D3D11 configuration used to create the decoder71*/72D3D11_VIDEO_DECODER_CONFIG *cfg;7374/**75* The number of surface in the surface array76*/77unsigned surface_count;7879/**80* The array of Direct3D surfaces used to create the decoder81*/82ID3D11VideoDecoderOutputView **surface;8384/**85* A bit field configuring the workarounds needed for using the decoder86*/87uint64_t workaround;8889/**90* Private to the FFmpeg AVHWAccel implementation91*/92unsigned report_id;9394/**95* Mutex to access video_context96*/97HANDLE context_mutex;98} AVD3D11VAContext;99100/**101* Allocate an AVD3D11VAContext.102*103* @return Newly-allocated AVD3D11VAContext or NULL on failure.104*/105AVD3D11VAContext *av_d3d11va_alloc_context(void);106107/**108* @}109*/110111#endif /* AVCODEC_D3D11VA_H */112113114