1. 17 Aug, 2020 1 commit
  2. 14 Aug, 2020 1 commit
  3. 04 Aug, 2020 1 commit
  4. 17 Jul, 2020 2 commits
  5. 16 Jul, 2020 1 commit
    • Matthew Wozniak's avatar
      Remove bitstream allocation callbacks. · 1ddf1ded
      Matthew Wozniak authored
      Based on review feedback remove bitstream allocation callbacks: alloc_bitstream_callbakc and release_bitstream_callback.
      Replaced with passing tile group data directly to decode_callback which can then copy bitstream data itself.  Note that
      this requires publishing an internal structure: Dav1dTileGroup.
      
      Also found some cases where picture information is necessary for accurate DXVA structure allocation.  So Dav1dPicture parameter
      was added to alloc_callback.
      1ddf1ded
  6. 10 Jul, 2020 1 commit
    • Matthew Wozniak's avatar
      Update DXVA structure definitions · 0ea72c06
      Matthew Wozniak authored
      API review has completed on the DXVA structure definitions for AV1.  This resulted in a few minor naming changes.  This commit updates the copy in dAV1D to match.
      0ea72c06
  7. 16 Jun, 2020 2 commits
    • Matthew Wozniak's avatar
      d87f6ecb
    • Matthew Wozniak's avatar
      Add DXVA support · a8a7d8c3
      Matthew Wozniak authored
      A new set of callbacks have been added which allow an application to have dAV1d generate AV1 DXVA structures.
      The application can then take these generated structures and use them to call DXVA APIs (in DX9, DX11, or DX12).  When using DXVA
      to decode dAV1d software based decoding is disabled and replaced with the DXVA callback functions.
      
      There are 5 new callbacks:
       * decode_callback - called to perform DXVA decode (using SubmitBuffers)
       * alloc_callback / release_callback - for allocating and releasing AV1 DXVA picture structs
       * alloc_bitstream_callback / release_bitstream_callback - used for allocating and releasing
           GPU backed memory for bitstream data.
      
       These callbacks are designed to be compatible with all 3 variants of DXVA decoding: DX9, DX11 and DX12.
       Currently when DXVA decode is enabled (by setting up the DXVA callback structure), the following decoder behaviours are changed:
       * decoder always operates in single threaded mode (multi-threaded operation only works for DX12)
       ...
      a8a7d8c3
  8. 07 Jun, 2020 1 commit
    • Niklas Haas's avatar
      CI: Enable coverage reports · 2b98fd28
      Niklas Haas authored and Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf committed
      Blacklisted some files not directly relevant to the codebase (such as
      tests, tools and debugging functions).
      
      The coverage HTML report gets attached as a build artifact, although
      unfortunately we can't link directly to the `index.html`. We also attach
      the coverage XML as a cobertura report, although I'm not sure if it does
      anything.
      2b98fd28
  9. 04 Jun, 2020 2 commits
  10. 01 Jun, 2020 1 commit
    • Victorien Le Couviour--Tuffet's avatar
      x86: Add put_8tap_scaled AVX2 asm · a755541f
      Victorien Le Couviour--Tuffet authored
      mc_scaled_8tap_regular_w2_8bpc_c: 764.4
      mc_scaled_8tap_regular_w2_8bpc_avx2: 191.3
      mc_scaled_8tap_regular_w2_dy1_8bpc_c: 705.8
      mc_scaled_8tap_regular_w2_dy1_8bpc_avx2: 89.5
      mc_scaled_8tap_regular_w2_dy2_8bpc_c: 964.0
      mc_scaled_8tap_regular_w2_dy2_8bpc_avx2: 120.3
      
      mc_scaled_8tap_regular_w4_8bpc_c: 1355.7
      mc_scaled_8tap_regular_w4_8bpc_avx2: 180.9
      mc_scaled_8tap_regular_w4_dy1_8bpc_c: 1233.2
      mc_scaled_8tap_regular_w4_dy1_8bpc_avx2: 115.3
      mc_scaled_8tap_regular_w4_dy2_8bpc_c: 1707.6
      mc_scaled_8tap_regular_w4_dy2_8bpc_avx2: 117.9
      
      mc_scaled_8tap_regular_w8_8bpc_c: 2483.2
      mc_scaled_8tap_regular_w8_8bpc_avx2: 294.8
      mc_scaled_8tap_regular_w8_dy1_8bpc_c: 2166.4
      mc_scaled_8tap_regular_w8_dy1_8bpc_avx2: 222.0
      mc_scaled_8tap_regular_w8_dy2_8bpc_c: 3133.7
      mc_scaled_8tap_regular_w8_dy2_8bpc_avx2: 292.6
      
      mc_scaled_8tap_regular_w16_8bpc_c: 5239.2
      mc_scaled_8tap_regular_w16_8bpc_avx2: 729.9
      mc_scaled_8tap_regular_w16_dy1_8bpc_c: 5156.5
      mc_scaled_8tap_regular_w16_dy1_8bpc_avx2: 602.2
      mc_scaled_8tap_regular_w16_dy2_8bpc_c: 8018.4
      mc_scaled_8tap_regular_w16_dy2_8bpc_avx2: 783.1
      
      mc_scaled_8tap_regular_w32_8bpc_c: 14745.0
      mc_scaled_8tap_regular_w32_8bpc_avx2: 2205.0
      mc_scaled_8tap_regular_w32_dy1_8bpc_c: 14862.3
      mc_scaled_8tap_regular_w32_dy1_8bpc_avx2: 1721.3
      mc_scaled_8tap_regular_w32_dy2_8bpc_c: 23607.6
      mc_scaled_8tap_regular_w32_dy2_8bpc_avx2: 2325.7
      
      mc_scaled_8tap_regular_w64_8bpc_c: 54891.7
      mc_scaled_8tap_regular_w64_8bpc_avx2: 8351.4
      mc_scaled_8tap_regular_w64_dy1_8bpc_c: 50249.0
      mc_scaled_8tap_regular_w64_dy1_8bpc_avx2: 5864.4
      mc_scaled_8tap_regular_w64_dy2_8bpc_c: 79400.1
      mc_scaled_8tap_regular_w64_dy2_8bpc_avx2: 8295.7
      
      mc_scaled_8tap_regular_w128_8bpc_c: 121046.8
      mc_scaled_8tap_regular_w128_8bpc_avx2: 21809.1
      mc_scaled_8tap_regular_w128_dy1_8bpc_c: 133720.4
      mc_scaled_8tap_regular_w128_dy1_8bpc_avx2: 16197.8
      mc_scaled_8tap_regular_w128_dy2_8bpc_c: 218774.8
      mc_scaled_8tap_regular_w128_dy2_8bpc_avx2: 22993.1
      a755541f
  11. 28 May, 2020 1 commit
    • Steve Lhomme's avatar
      meson: favor _aligned_malloc over posix_memalign · ed39e8fb
      Steve Lhomme authored
      posix_memalign is defined as a built-in in gcc in msys2 but it's not available
      when linking with the Universal C Runtime. _aligned_malloc is available in the
      UCRT.
      
      That should only affect builds targeting Windows since _aligned_malloc is a MS
      thing.
      ed39e8fb
  12. 26 May, 2020 2 commits
  13. 25 May, 2020 1 commit
    • Niklas Haas's avatar
      dav1dplay: allow resizing the window · a1e7a329
      Niklas Haas authored
      libplacebo v66 got helper functions that make preserving the aspect
      ratio in this case trivial. But we still need to make sure to clear the
      FBO to black if the image doesn't cover it fully.
      a1e7a329
  14. 20 May, 2020 1 commit
    • Niklas Haas's avatar
      dav1dplay: don't freeze on render errors · df40d36d
      Niklas Haas authored
      Returning out of this function when pl_render_image() fails is the wrong
      thing to do, since that leaves the swapchain frame acquired but never
      submitted. Instead, just clear the target FBO to blank red (to make it
      clear that something went wrong) and continue on with presentation.
      df40d36d
  15. 19 May, 2020 1 commit
  16. 18 May, 2020 4 commits
    • Niklas Haas's avatar
      dav1dplay: support on-GPU film grain synthesis · cbe05cf4
      Niklas Haas authored
      Annoying minor differences in this struct layout mean we can't just
      memcpy the entire thing. Oh well.
      
      Note: technically, PL_API_VER 33 added this API, but PL_API_VER 63 is
      the minimum version of libplacebo that doesn't have glaring bugs when
      generating chroma grain, so we require that as a minimum instead.
      
      (I tested this version on some 4:2:2 and 4:2:0, 8-bit and 10-bit grain
      samples I had lying around and made sure the output was identical up to
      differences in rounding / dithering.)
      cbe05cf4
    • Niklas Haas's avatar
      dav1dplay: handle all supported csps/reprs/bitdepths · 7bbebdb4
      Niklas Haas authored
      Generalize the code to set the right pl_image metadata based on the
      values signaled in the Dav1dPictureParameters / Dav1dSequenceHeader.
      
      Some values are not mapped, in which case stdout will be spammed.
      Whatever. Hopefully somebody sees that error spam and opens a bug report
      for libplacebo to implement it.
      7bbebdb4
    • Niklas Haas's avatar
      dav1dplay: move and simplify pl_image generation · f01fd0f1
      Niklas Haas authored
      Having the pl_image generation live in upload_planes() rather than
      render() will make it easier to set the correct pl_image metadata based
      on the Dav1dPicture headers moving forwards. Rename the function to make
      more sense, semantically.
      
      Reduce some code duplication by turning per-plane fields into arrays
      wherever appropriate.
      
      As an aside, also apply the correct chroma location rather than
      hard-coding it as PL_CHROMA_LEFT.
      f01fd0f1
    • Niklas Haas's avatar
      dav1dplay: don't write directly to iparams.extensions · 3bb0aed1
      Niklas Haas authored
      This is turned into a const array in upstream libplacebo, which
      generates warnings due to the implicit cast. Rewrite the code to have
      the mutable array live inside a separate variable `extensions` and only
      set `iparams.extensions` to this, rather than directly manipulating it.
      3bb0aed1
  17. 16 May, 2020 2 commits
  18. 15 May, 2020 7 commits
  19. 14 May, 2020 6 commits
  20. 13 May, 2020 2 commits