#include "config.h"
#include <windows.h>
#include <initguid.h>
#include <d3d11.h>
#include <dxgi1_2.h>
#include "avassert.h"
#include "common.h"
#include "hwcontext.h"
#include "hwcontext_d3d11va.h"
#include "hwcontext_internal.h"
#include "imgutils.h"
#include "mem.h"
#include "pixdesc.h"
#include "pixfmt.h"
#include "thread.h"
#include "compat/w32dlfcn.h"
Go to the source code of this file.
|  | 
| static av_cold void | load_functions (void) | 
|  | 
| static void | d3d11va_default_lock (void *ctx) | 
|  | 
| static void | d3d11va_default_unlock (void *ctx) | 
|  | 
| static void | d3d11va_frames_uninit (AVHWFramesContext *ctx) | 
|  | 
| static int | d3d11va_frames_get_constraints (AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints) | 
|  | 
| static void | free_texture (void *opaque, uint8_t *data) | 
|  | 
| static AVBufferRef * | wrap_texture_buf (AVHWFramesContext *ctx, ID3D11Texture2D *tex, int index) | 
|  | 
| static AVBufferRef * | d3d11va_alloc_single (AVHWFramesContext *ctx) | 
|  | 
| static AVBufferRef * | d3d11va_pool_alloc (void *opaque, size_t size) | 
|  | 
| static int | d3d11va_frames_init (AVHWFramesContext *ctx) | 
|  | 
| static int | d3d11va_get_buffer (AVHWFramesContext *ctx, AVFrame *frame) | 
|  | 
| static int | d3d11va_transfer_get_formats (AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats) | 
|  | 
| static int | d3d11va_create_staging_texture (AVHWFramesContext *ctx, DXGI_FORMAT format) | 
|  | 
| static void | fill_texture_ptrs (uint8_t *data[4], int linesize[4], AVHWFramesContext *ctx, D3D11_TEXTURE2D_DESC *desc, D3D11_MAPPED_SUBRESOURCE *map) | 
|  | 
| static int | d3d11va_transfer_data (AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src) | 
|  | 
| static int | d3d11va_device_init (AVHWDeviceContext *hwdev) | 
|  | 
| static void | d3d11va_device_uninit (AVHWDeviceContext *hwdev) | 
|  | 
| static int | d3d11va_device_find_adapter_by_vendor_id (AVHWDeviceContext *ctx, uint32_t flags, const char *vendor_id) | 
|  | 
| static int | d3d11va_device_create (AVHWDeviceContext *ctx, const char *device, AVDictionary *opts, int flags) | 
|  | 
◆ COBJMACROS
◆ MAX_ARRAY_SIZE
      
        
          | #define MAX_ARRAY_SIZE   64 | 
      
 
 
◆ PFN_CREATE_DXGI_FACTORY
      
        
          | typedef HRESULT(WINAPI * PFN_CREATE_DXGI_FACTORY) (REFIID riid, void **ppFactory) | 
      
 
 
◆ load_functions()
  
  | 
        
          | static av_cold void load_functions | ( | void |  | ) |  |  | static | 
 
 
◆ d3d11va_default_lock()
  
  | 
        
          | static void d3d11va_default_lock | ( | void * | ctx | ) |  |  | static | 
 
 
◆ d3d11va_default_unlock()
  
  | 
        
          | static void d3d11va_default_unlock | ( | void * | ctx | ) |  |  | static | 
 
 
◆ d3d11va_frames_uninit()
◆ d3d11va_frames_get_constraints()
◆ free_texture()
  
  | 
        
          | static void free_texture | ( | void * | opaque, |  
          |  |  | uint8_t * | data |  
          |  | ) |  |  |  | static | 
 
 
◆ wrap_texture_buf()
◆ d3d11va_alloc_single()
◆ d3d11va_pool_alloc()
  
  | 
        
          | static AVBufferRef* d3d11va_pool_alloc | ( | void * | opaque, |  
          |  |  | size_t | size |  
          |  | ) |  |  |  | static | 
 
 
◆ d3d11va_frames_init()
◆ d3d11va_get_buffer()
◆ d3d11va_transfer_get_formats()
◆ d3d11va_create_staging_texture()
  
  | 
        
          | static int d3d11va_create_staging_texture | ( | AVHWFramesContext * | ctx, |  
          |  |  | DXGI_FORMAT | format |  
          |  | ) |  |  |  | static | 
 
 
◆ fill_texture_ptrs()
  
  | 
        
          | static void fill_texture_ptrs | ( | uint8_t * | data[4], |  
          |  |  | int | linesize[4], |  
          |  |  | AVHWFramesContext * | ctx, |  
          |  |  | D3D11_TEXTURE2D_DESC * | desc, |  
          |  |  | D3D11_MAPPED_SUBRESOURCE * | map |  
          |  | ) |  |  |  | static | 
 
 
◆ d3d11va_transfer_data()
◆ d3d11va_device_init()
◆ d3d11va_device_uninit()
◆ d3d11va_device_find_adapter_by_vendor_id()
  
  | 
        
          | static int d3d11va_device_find_adapter_by_vendor_id | ( | AVHWDeviceContext * | ctx, |  
          |  |  | uint32_t | flags, |  
          |  |  | const char * | vendor_id |  
          |  | ) |  |  |  | static | 
 
 
◆ d3d11va_device_create()
◆ functions_loaded
◆ mCreateDXGIFactory
◆ mD3D11CreateDevice
  
  | 
        
          | PFN_D3D11_CREATE_DEVICE mD3D11CreateDevice |  | static | 
 
 
◆ d3d_format
◆ pix_fmt
◆ supported_formats
      
        
          | const { ... }  supported_formats[] | 
      
 
 
◆ ff_hwcontext_type_d3d11va
 
static int d3d11va_transfer_get_formats(AVHWFramesContext *ctx, enum AVHWFrameTransferDirection dir, enum AVPixelFormat **formats)
static int d3d11va_transfer_data(AVHWFramesContext *ctx, AVFrame *dst, const AVFrame *src)
static int d3d11va_get_buffer(AVHWFramesContext *ctx, AVFrame *frame)
@ AV_HWDEVICE_TYPE_D3D11VA
static void d3d11va_frames_uninit(AVHWFramesContext *ctx)
static int d3d11va_frames_get_constraints(AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints)
static int d3d11va_device_create(AVHWDeviceContext *ctx, const char *device, AVDictionary *opts, int flags)
static int d3d11va_frames_init(AVHWFramesContext *ctx)
This struct is allocated as AVHWDeviceContext.hwctx.
static void d3d11va_device_uninit(AVHWDeviceContext *hwdev)
static int d3d11va_device_init(AVHWDeviceContext *hwdev)