Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-181.0.01.0.0Jean-Baptiste Kempf
2022-03-08lib: add a public function to return the props from the last frame that ↵James Almer
failed to decode
2022-03-08data: add a public function to release a Dav1dDataProps referenceJames Almer
2022-02-09meson: Use native check of return valueMatthias Dressel
2022-01-31build: Only use -mcmodel=small for the core libraryHenrik Gramner
Avoids issues when dynamically linking with third party libraries in tools/examples.
2022-01-15add --inloopfilters to enable/disable postfilters dynamicallyRonald S. Bultje
(To be used alongside --filmgrain.) Addresses part of #310.
2022-01-10Update copyright yearHenrik Gramner
2022-01-08Add interface to output invisible (alt-ref) framesRonald S. Bultje
Addresses part of #310.
2022-01-06DAV1D_MC_IDENTITY requires DAV1D_PIXEL_LAYOUT_I444Wan-Teh Chang
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.
2022-01-01Expose dav1d_apply_grain as part of the public APINiklas Haas
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.
2021-10-28meson: Check for the pthread_getaffinity_np function before deciding to use itMartin Storsjö
Use the check result instead of hardcoding what OSes have got the function. This also requires checking for the pthread_np.h header and including it while testing for functions in meson, but allows getting rid of the hardcoded OS conditions in the source. This fixes building for Android, if _GNU_SOURCE happens to be defined. (It gets defined if building with a slightly nonstandard cross file that defines "system = 'linux'", but it could also have been set by the caller.)
2021-10-18x86: Remove the option to disable AVX-512Henrik Gramner
2021-09-21build: avoid meson's symbols_have_underscore_prefixJanne Grunau
Meson's dynamic check is unreliable when additional compiler flags are passed via CFLAGS. For example '-fprofile-instr-generate' in oss-fuzz' coverage build. Fixes #370.
2021-09-03Merge the 3 threading models into a single oneVictorien Le Couviour--Tuffet
Merges the 3 threading parameters into a single `--threads=` argument. Frame threading can still be controlled via the `--framedelay=` argument. Internally, the threading model is now a global thread/task pool design. Co-authored-by: Ronald S. Bultje <rsbultje@gmail.com>
2021-09-03Update version number to 0.9.20.9.2Jean-Baptiste Kempf
2021-08-31x86: Automatically convert SSE asm to AVX when compiling for AVX targetsHenrik Gramner
Requires meson 0.51 or newer (older versions will just keep the SSE).
2021-07-28Release 0.9.1Jean-Baptiste Kempf
2021-07-15build : enable atomics for wasm-emscriptenMehdi Sabwat
When targetting wasm32-unknown-emscripten, we need to have the -pthread option during compilation for all the objects that use atomic instructions. When -pthread option is used on a object that has atomic instructions, a section is added to the binary notifying the linker that it is safe to use shared linear memory because atomic instructions were not stripped (default behavior if the option is not set). cf. https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md#target-features-section Before this patch, lib.c and thread_task.c were using atomic instructions but since -pthread was not passed during compilation a section was added to the binary, disallowing shared linear memory and preventing linking dav1d with a multi threaded wasm application. It also renames stdatomic_dependency to stdatomic_dependencies, for clarity because it is now an array of dependency objects. cf. https://mesonbuild.com/Reference-manual.html#dependency-object
2021-07-09lib: return DAV1D_ERR(ENOENT) if no seqhdr OBU was foundJames Almer
Helps differentiating actual errors in the buffer data or passed-in arguments with scenarios like empty buffers or containing OBUs other than Sequence Header.
2021-06-20build: add -Wstrict-prototypes to the compiler argumentsJames Almer
2021-05-13On the road to 0.9.0Jean-Baptiste Kempf
2021-04-16dav1d: add event flags to the decoding processJames Almer
And a function to fetch them. Should be useful to signal changes in the bitstream the user may want to know about. Starting with two flags, DAV1D_EVENT_FLAG_NEW_SEQUENCE and DAV1D_EVENT_FLAG_NEW_OP_PARAMS_INFO, which signal the presence of an updated sequence header in the last returned (or to be returned) picture.
2021-02-15Update NEWS for 0.8.2Jean-Baptiste Kempf
2021-02-15msvc: Disable the C4090 warningHenrik Gramner
It's supposed to warn about const-correctness issues, but it doesn't handle arrays of pointers correctly and will cause false positive warnings when using memset() to zero such arrays for example.
2021-01-28Add post-filters threading modelVictorien Le Couviour--Tuffet
2021-01-25Update copyright yearMatthias Dressel
2021-01-18tests: Add a seek stress testVictorien Le Couviour--Tuffet
Closes #203.
2021-01-01Update NEWS for 0.8.10.8.1Janne Grunau
2020-11-23Update NEWS for 0.8.00.8.0Jean-Baptiste Kempf
2020-09-20meson: Set msvc like warning options for clang-clMartin Storsjö
This avoids lots of warnings about unsupported warning options.
2020-09-20meson: Use gas-preprocessor as generator, for targets that need itMartin Storsjö
Don't pass the .S assembly sources as C source files in this case, as e.g. MSVC doesn't support them (and meson knows it doesn't, so it refuses to proceed with an MSVC/gas-preprocessor wrapper script, as meson detects it as MSVC - unless meson is hacked to allow passing .S files to MSVC). This allows building dav1d with MSVC for ARM targets without hacks to meson. (Building in a pure MSVC setup with no other compilers available does require a few new patches to gas-preprocessor though.) This has been postponed for quite some time, as compiling with MSVC for non-x86 targets in meson has been problematic, as meson used to require a working compiler for the build system as well, and MSVC for all targets are named cl.exe, and you can't have one for the cross target and the build machine first in the path at the same time. This was recently fixed though, see https://github.com/mesonbuild/meson/issues/4402 and https://github.com/mesonbuild/meson/pull/6512. This matches how gas-preprocessor is hooked up for e.g. OpenH264 in https://github.com/cisco/openh264/commit/013c4566a219a1f0fd50a8186f2b11fd8c3efcfb.
2020-09-20build: increase minimal meson to 0.49Janne Grunau
Fixes #350.
2020-09-06cli: Add support for Unicode and long paths on Windows 10Henrik Gramner
2020-08-23bump soname for API changesJanne Grunau
2020-08-21x86inc.asm: remove private_prefix define and config.asm includeJanne Grunau
Makes using unmodified upstream x86inc.asm possible.
2020-07-10meson: disable asm for x32 ABIJanne Grunau
Fixes #345.
2020-06-29meson: Workaround missing aarch64 normalisationMarvin Scholz
Meson does not yet normalises arm64 to the aarch64 in the reference table. To workaround this, in addition to the cpu_family check the cpu field.
2020-06-18Update NEWS for 0.7.1Jean-Baptiste Kempf
2020-06-11meson: Use dav1d_src_root everywhere for consistencyMatthias Dressel
2020-05-28meson: favor _aligned_malloc over posix_memalignSteve Lhomme
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.
2020-05-16Update NEWS for 0.7.0Jean-Baptiste Kempf
2020-03-27meson/x86: add option to disable AVX-512 asmJanne Grunau
Allows building with nasm < 2.14.
2020-03-21meson/android: undefine _FILE_OFFSET_BITS if fseeko is not availableJanne Grunau
2020-02-10Update NEWS for 0.6.0Jean-Baptiste Kempf
2020-01-22x86: Bump nasm version requirement to 2.14Henrik Gramner
Required for the AVX-512 instructions added in Ice Lake.
2020-01-09x86: add prep_bilin AVX512 asmVictorien Le Couviour--Tuffet
------------------------------------------ mct_bilinear_w4_0_8bpc_avx2: 3.8 mct_bilinear_w4_0_8bpc_avx512icl: 3.7 --------------------- mct_bilinear_w8_0_8bpc_avx2: 5.0 mct_bilinear_w8_0_8bpc_avx512icl: 4.8 --------------------- mct_bilinear_w16_0_8bpc_avx2: 8.5 mct_bilinear_w16_0_8bpc_avx512icl: 7.1 --------------------- mct_bilinear_w32_0_8bpc_avx2: 29.5 mct_bilinear_w32_0_8bpc_avx512icl: 17.1 --------------------- mct_bilinear_w64_0_8bpc_avx2: 68.1 mct_bilinear_w64_0_8bpc_avx512icl: 34.7 --------------------- mct_bilinear_w128_0_8bpc_avx2: 180.5 mct_bilinear_w128_0_8bpc_avx512icl: 138.0 ------------------------------------------ mct_bilinear_w4_h_8bpc_avx2: 4.0 mct_bilinear_w4_h_8bpc_avx512icl: 3.9 --------------------- mct_bilinear_w8_h_8bpc_avx2: 5.3 mct_bilinear_w8_h_8bpc_avx512icl: 5.0 --------------------- mct_bilinear_w16_h_8bpc_avx2: 11.7 mct_bilinear_w16_h_8bpc_avx512icl: 7.5 --------------------- mct_bilinear_w32_h_8bpc_avx2: 41.8 mct_bilinear_w32_h_8bpc_avx512icl: 20.3 --------------------- mct_bilinear_w64_h_8bpc_avx2: 94.9 mct_bilinear_w64_h_8bpc_avx512icl: 35.0 --------------------- mct_bilinear_w128_h_8bpc_avx2: 240.1 mct_bilinear_w128_h_8bpc_avx512icl: 143.8 ------------------------------------------ mct_bilinear_w4_v_8bpc_avx2: 4.1 mct_bilinear_w4_v_8bpc_avx512icl: 4.0 --------------------- mct_bilinear_w8_v_8bpc_avx2: 6.0 mct_bilinear_w8_v_8bpc_avx512icl: 5.4 --------------------- mct_bilinear_w16_v_8bpc_avx2: 10.3 mct_bilinear_w16_v_8bpc_avx512icl: 8.9 --------------------- mct_bilinear_w32_v_8bpc_avx2: 29.5 mct_bilinear_w32_v_8bpc_avx512icl: 25.9 --------------------- mct_bilinear_w64_v_8bpc_avx2: 64.3 mct_bilinear_w64_v_8bpc_avx512icl: 41.3 --------------------- mct_bilinear_w128_v_8bpc_avx2: 198.2 mct_bilinear_w128_v_8bpc_avx512icl: 139.6 ------------------------------------------ mct_bilinear_w4_hv_8bpc_avx2: 5.6 mct_bilinear_w4_hv_8bpc_avx512icl: 5.2 --------------------- mct_bilinear_w8_hv_8bpc_avx2: 8.3 mct_bilinear_w8_hv_8bpc_avx512icl: 7.0 --------------------- mct_bilinear_w16_hv_8bpc_avx2: 19.4 mct_bilinear_w16_hv_8bpc_avx512icl: 12.1 --------------------- mct_bilinear_w32_hv_8bpc_avx2: 69.1 mct_bilinear_w32_hv_8bpc_avx512icl: 32.5 --------------------- mct_bilinear_w64_hv_8bpc_avx2: 164.4 mct_bilinear_w64_hv_8bpc_avx512icl: 71.1 --------------------- mct_bilinear_w128_hv_8bpc_avx2: 405.2 mct_bilinear_w128_hv_8bpc_avx512icl: 193.1 ------------------------------------------
2020-01-08Fix building as a meson subprojectXavier Claessens
- When building dav1d as a dependency fallback, the parent project needs to provide the variable name of a dependency object, added dav1d_dep for that. - SOURCE_ROOT is the root of the main project source tree, use current_source_dir() instead.
2019-12-18Don't assume dlsym exists on linuxMartin Storsjö
After checking if -ldl exists, use it for checking for the dlsym function. This fixes building in environments where the dlsym function is unavailable. (My testcase is NDK builds with -static, where dlsym isn't available for static linking, only if linking dynamically.)
2019-12-17Linux: Add a workaround for a glibc stack size issueHenrik Gramner
2019-12-06Simplify shifting in generate_grain_y/uv AVX2Ronald S. Bultje