-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
package/vlc: fix compilation with dav1d 1.0
Fixes: http://autobuild.buildroot.net/results/a74/a74151c73b5dc613ce327a869105cb93631cbce9/ Signed-off-by: Bernd Kuhls <[email protected]> Signed-off-by: Peter Korsgaard <[email protected]>
- Loading branch information
Showing
1 changed file
with
88 additions
and
0 deletions.
There are no files selected for viewing
88 changes: 88 additions & 0 deletions
88
package/vlc/0011-dav1d-fix-compilation-with-upcoming-dav1d.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
From 2202c892c8dc1381b596c53c2ebd3ca680061f95 Mon Sep 17 00:00:00 2001 | ||
From: Steve Lhomme <[email protected]> | ||
Date: Fri, 18 Mar 2022 11:42:49 +0100 | ||
Subject: [PATCH] dav1d: fix compilation with (upcoming) dav1d 1.0 | ||
|
||
(cherry picked from commit dbf45cea2a8abdfbef897b8a71f3eb782bb1b712) (edited) | ||
edited: | ||
- 3.0 has the 128 pixels padding elsewhere | ||
- 3.0 has an extra parameter for add_integer_with_range() | ||
- 3.0 was setting i_extra_picture_buffers further down in the code | ||
- 3.0 uses 16 threads max | ||
|
||
Signed-off-by: Steve Lhomme <[email protected]> | ||
|
||
Downloaded from upstream commit | ||
https://code.videolan.org/videolan/vlc/-/commit/2202c892c8dc1381b596c53c2ebd3ca680061f95 | ||
|
||
Signed-off-by: Bernd Kuhls <[email protected]> | ||
--- | ||
modules/codec/dav1d.c | 22 +++++++++++++++++++++- | ||
1 file changed, 21 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c | ||
index 039165f52ec..cfabbc27cb3 100644 | ||
--- a/modules/codec/dav1d.c | ||
+++ b/modules/codec/dav1d.c | ||
@@ -63,10 +63,16 @@ vlc_module_begin () | ||
set_category(CAT_INPUT) | ||
set_subcategory(SUBCAT_INPUT_VCODEC) | ||
|
||
+#if DAV1D_API_VERSION_MAJOR >= 6 | ||
+ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS, | ||
+ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) | ||
+ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0 | ||
+#else | ||
add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS, | ||
THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) | ||
add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS, | ||
THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false) | ||
+#endif | ||
vlc_module_end () | ||
|
||
/***************************************************************************** | ||
@@ -294,6 +300,11 @@ static int OpenDecoder(vlc_object_t *p_this) | ||
return VLC_ENOMEM; | ||
|
||
dav1d_default_settings(&p_sys->s); | ||
+#if DAV1D_API_VERSION_MAJOR >= 6 | ||
+ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); | ||
+ if (p_sys->s.n_threads == 0) | ||
+ p_sys->s.n_threads = (i_core_count < 16) ? i_core_count : 16; | ||
+#else | ||
p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); | ||
if (p_sys->s.n_tile_threads == 0) | ||
p_sys->s.n_tile_threads = | ||
@@ -303,6 +314,7 @@ static int OpenDecoder(vlc_object_t *p_this) | ||
p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); | ||
if (p_sys->s.n_frame_threads == 0) | ||
p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16; | ||
+#endif | ||
p_sys->s.allocator.cookie = dec; | ||
p_sys->s.allocator.alloc_picture_callback = NewPicture; | ||
p_sys->s.allocator.release_picture_callback = FreePicture; | ||
@@ -313,12 +325,20 @@ static int OpenDecoder(vlc_object_t *p_this) | ||
return VLC_EGENERIC; | ||
} | ||
|
||
+#if DAV1D_API_VERSION_MAJOR >= 6 | ||
+ msg_Dbg(p_this, "Using dav1d version %s with %d threads", | ||
+ dav1d_version(), p_sys->s.n_threads); | ||
+ | ||
+ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); | ||
+#else | ||
msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", | ||
dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); | ||
|
||
+ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); | ||
+#endif | ||
+ | ||
dec->pf_decode = Decode; | ||
dec->pf_flush = FlushDecoder; | ||
- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); | ||
|
||
dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; | ||
dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; | ||
-- | ||
GitLab | ||
|