Skip to content
Snippets Groups Projects
  1. Mar 18, 2022
    • Steve Lhomme's avatar
      dav1d: add DXVA2/D3D9 4:2:0 decoding support · 98a75cd6
      Steve Lhomme authored
      Tested on NVIDIA 3090 GPU and Intel Iris Xe Graphics on 8-bit sources.
      
      The DXVA decoding is only enabled if the decoder device is set to D3D11VA or
      DXVA2. If the hardware decoder is not found, we fallback to software decoding.
      The profile needs to be known on open to use hardware decoding
      as it requires using a single frame thread, so fallback to software after the
      open would have impact on performance.
      
      It's using an "nvdec_pool" for hardware buffer pools, directly from the nvdec
      folder.
      
      Some code could be shared (in a library) with the other DXVA modules.
      98a75cd6
    • Steve Lhomme's avatar
      dav1d: add D3D11 4:2:0 decoding support · 9bd2a024
      Steve Lhomme authored
      Tested on NVIDIA 3090 GPU and Intel Iris Xe Graphics on 8-bit sources.
      
      The DXVA decoding is only enabled if the decoder device is set to D3D11VA or
      DXVA2. If the hardware decoder is not found, we fallback to software decoding.
      The profile needs to be known on open to use hardware decoding
      as it requires using a single frame thread, so fallback to software after the
      open would have impact on performance.
      
      It's using an "nvdec_pool" for hardware buffer pools, directly from the nvdec
      folder.
      
      Some code could be shared (in a library) with the other DXVA modules.
      9bd2a024
    • Steve Lhomme's avatar
      b75e75e6
    • Steve Lhomme's avatar
      dav1d: add DXVA helper functions · fee87300
      Steve Lhomme authored
      
      Use in the next patches.
      
      Co-authored-by: default avatarMatt Wozniak <mwozniak@microsoft.com>
      fee87300
    • Steve Lhomme's avatar
      dav1d: prepare hardware decoding support · 94c0e425
      Steve Lhomme authored
      Using a decoder device and a video context.
      
      The hardware decoders are loaded as modules (as does libavcodec) so it can be
      coded in various languages (C++).
      
      The modules will be added to the configuration with the dav1d package but will
      still need finer tests to enable them or not.
      94c0e425
    • Steve Lhomme's avatar
      contrib: dav1d: add Hardware frame decoding support · 58873018
      Steve Lhomme authored
      Based on (unmerged) code from Matthew Wozniak
      https://code.videolan.org/mwozniak/dav1d/-/tree/dxva
      
      If the AV1 structures are found in dxva.h, dav1d is compiled with DXVA support.
      The code is only enabled on Windows build.
      
      The host app is responsible for feeding the DXVA API(s). This DXVA only layer
      bypasses the software rendering in CPU buffers and fills the DVXA structures
      instead.
      
      When the host app provides DXVA callbacks, only one frame thread is used, since
      DXVA doesn't like to be fed from multiple threads.
      58873018
    • Steve Lhomme's avatar
      c65b8612
    • Steve Lhomme's avatar
      dav1d: decide the number of threads earlier · bbaf8530
      Steve Lhomme authored
      DXVA should use only one thread to feed the frames.
      bbaf8530
    • Steve Lhomme's avatar
      nvdec: rename nvdec_pool to hw_pool · 918c6d73
      Steve Lhomme authored
      We may also move it in the core.
      918c6d73
  2. Mar 17, 2022
  3. Mar 16, 2022
Loading