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-04-08obu: don't output invisible but showable key frames more than onceJames Almer
From section 6.8.2 in the AV1 spec: "It is a requirement of bitstream conformance that when show_existing_frame is used to show a previous frame with RefFrameType[ frame_to_show_map_idx ] equal to KEY_FRAME, that the frame is output via the show_existing_frame mechanism at most once."
2022-04-07picture: ensure the new seq header and op param info flags are attached to ↵James Almer
the next visible picture in display order If the first picture in coding order after a new sequence header is parsed is not visible, the first picture output by dav1d after the fact (which is coded after the aforementioned invisible picture) would not trigger the new seq header event flag as expected, despite being the first containing a reference to a new sequence header. Assuming the invisible picture is ever output, the result of this change will be two pictures signaling a new sequence header was seen despite there being only one new sequence header.
2022-02-26reset Dav1dDataProps to defaults when unreferencing data and picturesJames Almer
2022-02-03add a picture flag to signal that a new temporal delimiter unit was seenJames Almer
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-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.
2020-11-22Add more buffer poolsHenrik Gramner
Add buffer pools for miscellaneous smaller buffers that are repeatedly being freed and reallocated. Also improve dav1d_ref_create() by consolidating two separate memory allocations into a single one.
2020-11-17Add a picture buffer poolHenrik Gramner
Reuse buffers allocated for picture data instead of constantly freeing and allocating new ones. The impact of this can vary significantly between different systems, in particular it's highly beneficial on Windows where it can result in an overall performance increase of up to 10% in some cases.
2020-03-27const correctness in picture.cLuc Trudeau
2019-11-27Avoid excessive L2 collisions with certain frame widthsHenrik Gramner
Memory addresses with certain power-of-two offsets will map to the same set of cache lines. Using such offsets as strides will cause excessive cache evictions resulting in more cache misses. Avoid this by adding a small padding when the stride is a multiple of 1024 (somewhat arbitrarily chosen as the specific number depends on the hardware implementation) when allocating picture buffers.
2019-08-19Utilize the constraints in assertions to improve code generationHenrik Gramner
When compiling in release mode, instead of just deleting assertions, use them to give hints to the compiler. This allows for slightly better code generation in some cases.
2019-08-08Export frame ITU-T T.35 MetadataJames Almer
Based on a patch by Renato Cassaca.
2019-05-09Add a DAV1D_ERR define to negate errno values when neededJames Almer
2019-05-06Add missing dav1d prefixes to picture allocation functionsHenrik Gramner
2019-03-01picture: fix default_picture_allocator() return value on failureJames Almer
The doxy for Dav1dPicAllocator.alloc_picture_callback() states it must be a negative errno value. Propagate it as well in picture_alloc_with_edges().
2019-03-01picture: make mastering display and content light metadata accessible when ↵James Almer
allocating pictures
2019-02-21Slightly over-allocate picture buffersRonald S. Bultje
Allows simplified SIMD function implementations that don't exactly respect picture boundaries when reading picture data. Fixes #251 and #250.
2019-02-20picture: use the input picture metadata buffer references in ↵James Almer
dav1d_picture_alloc_copy() The references in the Dav1dContext may not necessarely apply to the picture being copied.
2019-02-13Parse OBU metadata for HDR10 supportVittorio Giovara
2019-02-08Simplify dav1d_thread_picture_alloc()James Almer
It's called from a single function in the entire codebase, so no point passing so many individual arguments to it when almost all of them are derived from a single struct.
2019-01-28replace fprintf uses with dav1d_log()James Almer
2019-01-24data: factorize setting Dav1dDataProps to default valuesJames Almer
2019-01-11pass the sequence header corresponding to the picture being allocatedSteve Lhomme
2019-01-08picture: properly handle Dav1dUserData references in Dav1dPictureJames Almer
2019-01-05Add a user data pointer to Dav1dDataPropsMichael Bradshaw
2018-12-20Perform stack realignment in every API entry pointHenrik Gramner
Unlikely to cause problems in practice, but technically required since the compiler is free to use aligned AVX stores to zero local stack-allocated variables (when using the appropriate compiler flags) for example.
2018-12-08picture: free pic_ctx on dav1d_ref_wrap errorJanne Grunau
2018-11-30common: make 0 the default for Dav1dDataProps.durationJames Almer
2018-11-30common: make -1 the default for Dav1dDataProps.offsetJames Almer
2018-11-30common: make Dav1dDataProps.duration signedJames Almer
2018-11-29Make Dav1dDataProps::timestamp and offset signed.Jean-Yves Avenard
2018-11-25Move Dav1dPictureParameters-related entries to top of Dav1dSeqHdrRonald S. Bultje
Also remove redundant entries from Dav1dPictureParameters, and move documentation of these fields into Dav1dFrame/SequenceHeader instead.
2018-11-25Add frame_hdr/seq_hdr to Dav1dPictureRonald S. Bultje
2018-11-25Rewrite flushing logicRonald S. Bultje
The old flushing logic would simply leave frame threads (and tile threads) running without caring how much latency that might impose in the post-seek time-to-first-frame. This commit adds a 'flush' state that will abort all running frame/tile threads from decoding their current frame, as well as dispose of all frames in the output queue. Then, we use dav1d_flush() in dav1d_close() to abort running threads on exit, instead of signaling their respective dependents to prevent deadlocks. The advantage of this approach is that we don't signal on objects we don't have ownership over, and thus this should prevent race conditions where the owning thread could dispose of the object just as we're signaling it, which I believe is what causes #193.
2018-11-23Add API to match input images to specific output picturesRonald S. Bultje
Fixes #59.
2018-11-22Modify release_picture_callback to take a picture instead of a data pointerMichael Bradshaw
2018-11-22Set correct width for post-scaling picture if super-res is enabledRonald S. Bultje
Fixed 00000802.ivf.
2018-11-21Merge dav1d_picture_alloc() and dav1d_picture_alloc_copy()Ronald S. Bultje
Also ensure we apply film-grain to delayed pictures.
2018-11-19film_grain: implement film grain synthesisNiklas Haas
This is using a slightly adapted version of my GPU-based algorithm. The major difference to the algorithm suggested by the spec (and implemented in libaom) is that instead of using a line buffer to hold the previous row's film grain blocks, we compute each row/block fully independently. This opens up the door to exploit parallelism in the future, since we don't have any left->right or top->down dependency except for the PRNG state. (Which we could pre-compute for a massively parallel / GPU implementation) That being said, it's probably somewhat slower than using a line buffer for the serial / single CPU case, although most likely not by much (since the areas with the most redundant work get progressively smaller, down to a single 2x2 square for the worst case).
2018-11-19picture: make the film grain metadata publicNiklas Haas
This becomes part of the picture properties, since users may want to apply film grain themselves (e.g. for a GPU implementation).
2018-11-16Add support for super-resRonald S. Bultje
Fixes #172.
2018-11-07picture: add dav1d_picture_move_ref()James Almer
2018-11-07frame threading: signal reference frame decoding errorsJanne Grunau
Fixes #127
2018-11-07do not use the picture after an allocation errorJanne Grunau
2018-10-31ref: don't leave dangling pointers around when freeing Dav1dRefJames Almer
Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-29API: constify Dav1dData and dav1d_data_wrap()Janne Grunau
Fix #120.
2018-10-19Add support for external picture buffer allocationSteve Lhomme
2018-10-05fix -Wsign-compare warningsskal
"comparison between signed and unsigned integer expressions"
2018-10-01Fix ss_ver assignment in thread_picture_wait()Ronald S. Bultje
2018-10-01Fix for progress at edges of imageRonald S. Bultje