Skip to content
Snippets Groups Projects
  1. Nov 15, 2024
  2. Sep 11, 2024
  3. Sep 10, 2024
  4. Sep 06, 2024
    • Kyle Siefring's avatar
      Improve density of group context setting macros · 4385e7e1
      Kyle Siefring authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      Shared object binary size reduction:
      x84_64           : 16112 bytes
      ARM64            : 16008 bytes
      ARM64(+Os)       : 21592 bytes
      ARMv7(+Os+mthumb): 18480 bytes
      
      Size reduction of symbols:
      x84_64           : 15712 bytes
      ARM64            : 18688 bytes
      ARM64(+Os)       : 18404 bytes
      ARMv7(+Os+mthumb): 17322 bytes
      
      Compiles were done with clang version 18.1.8 and symbol sizes were
      obtained using nm on the shared object.
      
      Provides speed ups on older ARM64 cpus with very little impact on other
      cpus.
      
      Speedup:
      
      c7i (skylake)
       Nature1080p      : x0.999
       Chimera          : x0.998
      
      odroid C4
       Nature1080p      : x1.007
       Chimera          : x1.016
       Models1080p      : x1.005
       MountainBike1080p: x1.009
       Balloons1080p    : x1.008
      
      Raspberry Pi 4
       Nature1080p      : x1.005
       Chimera          : x0.999
       Models1080p      : x0.999
       MountainBike1080p: x1.004
       Balloons1080p    : x1.003
      
      Raspberry Pi 2 (Cortex-A7):
       (using size optimized build)
       Nature1080p      : x1.003
       Models1080p      : x0.997
      4385e7e1
  5. Sep 05, 2024
    • Kacper Michajłow's avatar
      meson: fix include directories when building as subproject · 7629402b
      Kacper Michajłow authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      This makes `#include <dav1d/dav1d.h>` work correctly as we point to the
      parent include directory, same as in the normal installation.
      
      Also fixes conflict of including "version.h" which may already exist in
      parent project or another subproject. Be more specific about the
      headers. Normally it works, but when building as subproject version.h is
      generated in build directory, so it no longer is prioritized when
      including from dav1d.h and other header with the same name may be
      included.
      7629402b
  6. Sep 01, 2024
  7. Aug 29, 2024
  8. Jan 31, 2024
  9. Jan 21, 2024
  10. Jul 06, 2023
  11. Jun 12, 2023
  12. Jun 07, 2023
  13. Jun 06, 2023
  14. Jun 02, 2023
  15. Jun 01, 2023
  16. May 31, 2023
  17. May 24, 2023
  18. May 06, 2023
  19. Apr 18, 2023
    • James Almer's avatar
      picture: allow storing an array of Dav1dITUTT35 entries · feeeccb6
      James Almer authored
      Nothing in the spec prevents a Temporal Unit from having more than one Metadata
      OBU of type ITU-T T.35, so export them as an array instead of only exporting
      the last one we parse.
      This is backwards compatible with the previous implementation, as users unaware
      of this change can ignore the n_itut_t35 field and still access the first (or
      only) entry in the array as they have been doing until now.
      feeeccb6
  20. Apr 12, 2023
  21. Apr 08, 2023
  22. Dec 14, 2022
  23. Nov 10, 2022
  24. Oct 26, 2022
  25. Sep 30, 2022
  26. Jul 06, 2022
  27. Apr 28, 2022
  28. Apr 23, 2022
  29. Mar 31, 2022
  30. Mar 08, 2022
  31. Jan 14, 2022
  32. Jan 11, 2022
  33. Jan 07, 2022
  34. Jan 06, 2022
    • Wan-Teh Chang's avatar
      DAV1D_MC_IDENTITY requires DAV1D_PIXEL_LAYOUT_I444 · f9bddfff
      Wan-Teh Chang authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      Section 6.4.2 (Color config semantics) of the AV1 spec says:
        If matrix_coefficients is equal to MC_IDENTITY, it is a requirement of
        bitstream conformance that subsampling_x is equal to 0 and
        subsampling_y is equal to 0.
      Add Dav1dSettings.strict_std_compliance flag which, when set, allows
      aborting decoding when such standard-compliance violations fail, even
      though they don't affect decoding. In CLI, this flag can be accessed
      using -strict.
      f9bddfff
  35. Jan 01, 2022
    • Niklas Haas's avatar
      Expose dav1d_apply_grain as part of the public API · 2a183945
      Niklas Haas authored
      This change is motivated by a desire to be able to toggle between CPU
      and GPU film gain synthesis in players such as VLC. Because VLC
      initializes the codec before the vout (and, indeed, the active vout
      module may change in the middle of decoding), it cannot make the
      decision of whether to apply film grain in libdav1d as part of codec
      initialization. It needs to be decided on a frame-by-frame basis
      depending on whether the currently active vout supports film grain
      synthesis or not.
      
      Using the new API, users like VLC can simply set `apply_grain` to 0 and
      then manually call `dav1d_apply_grain` whenever the vout does not
      support GPU film grain synthesis. As a side note, `dav1d_apply_grain`
      could also technically be called from dedicated worker threads,
      something that libdav1d does not currently do internally.
      
      The alternative to this solution would have been to allow changing
      Dav1dSettings at runtime, but that would be more invasive and a proper
      API would also need to take other settings into consideration, some of
      which can't be changed as easily as `apply_grain`. This commit
      represents a stop-gap solution.
      
      Bump the minor version to allow clients to depend on this API.
      2a183945
Loading