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-02-02dav1dplay: Update threading --help textHenrik Gramner
2022-01-30dav1dplay: Fix a typo in an error messageMartin Storsjö
2021-10-31dav1dplay: Suppress compiler warningNiklas Haas
The signature of pl_allocate/release_dav1dpic takes a void *cookie, which the compiler warns about if we don't implicitly cast.
2021-10-06dav1dplay: Avoid using external libplacebo data symbolsHenrik Gramner
Fixes segfaults on Windows.
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-06-20build: add -Wstrict-prototypes to the compiler argumentsJames Almer
2021-02-11dav1dplay: Add -lm for llround() supportEmmanuel Gil Peyrot
Neither --buildtype=plain nor --buildtype=debug set -ffast-math, so llround() is kept as a function call and isn’t optimised out into cvttsd2siq (on amd64), thus requiring the math lib to be linked. Note that even with -ffast-math, it isn’t guaranteed that a call to llround() will always be omitted (I have reproduced this on PowerPC), so this fix is correct even if we ever decide to enable -ffast-math in other build types.
2021-02-06dav1dplay: Only repaint the window when necessaryNiklas Haas
The current playback loop triggers a repaint on any single event, including spammy events such as SDL_MOUSEMOTION. Fix this by only repainting on SDL_WINDOWEVENT_EXPOSED, which is defined as the event sent when the window was damaged and needs to be repainted, as well as on new frames. Fixes https://code.videolan.org/videolan/dav1d/-/issues/356
2021-02-06dav1dplay: Update/modernize placebo-based rendererNiklas Haas
Upstream libplacebo added support for dav1d integration directly, allowing us to vastly simplify all of this code. In order to take advantage of new optimizations, I had to allow update_frame to unref the Dav1dPicture. (This is fine, since double unref is a no-op) In addition, some of the functions we use were deprecated in recent libplacebo versions, so since we're taking a new dependency we might as well fix the deprecation warnings.
2021-02-06dav1dplay: Disable zerocopy on placebo-glNiklas Haas
These functions are not thread-safe on GL, because they are not called from the thread holding the GL context. Work around this by simply disabling it. Not very optimal, but better than crashing.
2021-02-01dav1dplay: Add pause and seek featuresVictorien Le Couviour--Tuffet
2021-01-28Add post-filters threading modelVictorien Le Couviour--Tuffet
2020-07-20dav1dplay: Fix type mismatch warningMarvin Scholz
2020-05-26dav1dplay: use new pl_chroma_location APINiklas Haas
This one correctly sets the subsampling mode based on whether or not the plane is actually subsampled, and also infers PL_CHROMA_UNKNOWN as PL_CHROMA_TOP_LEFT in such cases.
2020-05-25dav1dplay: allow resizing the windowNiklas Haas
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.
2020-05-20dav1dplay: don't freeze on render errors0.7.0Niklas Haas
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.
2020-05-18dav1dplay: support on-GPU film grain synthesisNiklas Haas
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.)
2020-05-18dav1dplay: handle all supported csps/reprs/bitdepthsNiklas Haas
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.
2020-05-18dav1dplay: move and simplify pl_image generationNiklas Haas
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.
2020-05-18dav1dplay: don't write directly to iparams.extensionsNiklas Haas
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.
2020-05-16Fix swapped define guards in dav1dplay’s libplacebo rendererEmmanuel Gil Peyrot
Signed-off-by: Marvin Scholz <epirat07@gmail.com>
2020-05-15Dav1dPlay: Split placebo renderer into twoMarvin Scholz
This allows selecting at runtime if placebo should use OpenGL or Vulkan for rendering.
2020-05-15Dav1dPlay: Remove redundant log messageMarvin Scholz
2020-05-15Dav1dPlay: Remove unused renderer_info memberMarvin Scholz
2020-05-15Dav1dPlay: Allow runtime renderer selectionMarvin Scholz
2020-05-15Dav1dPlay: Fix renderer selectionMarvin Scholz
2020-05-15Dav1dPlay: Split renderers into different filesMarvin Scholz
2020-05-14Dav1dPlay: Add support for OpenGL with libplaceboMarvin Scholz
2020-05-14Dav1dPlay: Split FIFO to different filesMarvin Scholz
To un-clutter the main dav1dplay.c, move the fifo to its own file and header.
2020-03-07examples: fail when SDL is not foundKonstantin Pavlov
Now when -Denable_examples=true is requested, meson will fail as expected if there is no SDL available.
2020-03-06examples: chase cacc8e350c40Jan Beich
../examples/dav1dplay.c:1030:5: warning: implicit declaration of function 'init_demuxers' is invalid in C99 [-Wimplicit-function-declaration] init_demuxers(); ^ /usr/bin/ld.bfd: examples/c590b3c@@dav1dplay@exe/dav1dplay.c.o: in function `decoder_thread_main': dav1dplay.c:(.text+0x1243): undefined reference to `init_demuxers' cc: error: linker command failed with exit code 1 (use -v to see invocation)
2019-09-28dav1dplay: initial support for --zerocopyNiklas Haas
Right now this just allocates a new buffer for every frame, uses it, then discards it immediately. This is not optimal, either dav1d should start reusing buffers internally or we need to pool them in dav1dplay. As it stands, this is not really a performance gain. I'll have to investigate why, but my suspicion is that seeing any gains might require reusing buffers somewhere. Note: Thrashing buffers is not as bad as it seems, initially. Not only does libplacebo pool and reuse GPU memory and buffer state objects internally, but this also absolves us from having to do any manual polling to figure out when the buffer is reusable again. Creating, using and immediately destroying buffers actually isn't as bad an approach as it might otherwise seem. It's entirely possible that this is only bad because of lock contention. As said, I'll have to investigate further...
2019-09-28dav1dplay: add --untimed for benchmarking purposesNiklas Haas
Useful to test the effects of performance changes to the decoding/rendering loop as a whole.
2019-09-28dav1dplay: add --highquality to toggle render qualityNiklas Haas
Only meaningful with libplacebo. The defaults are higher quality than SDL so it's an unfair comparison and definitely too much for slow iGPUs at 4K res. Make the defaults fast/dumb processing only, and guard the debanding/dithering/upscaling/etc. behind a new --highquality flag.
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-10dav1dplay: abort if no input filename is providedJames Almer
2019-08-10meson: move dav1dplay to a new examples sectionJames Almer
dav1dplay shouldn't be built by default. And it's an example more than a tool.