Browse Source

dav1d: fix compilation with (upcoming) dav1d 1.0

pull/134/head
Steve Lhomme 4 years ago
committed by Jean-Baptiste Kempf
parent
commit
dbf45cea2a
  1. 19
      modules/codec/dav1d.c

19
modules/codec/dav1d.c

@ -64,10 +64,16 @@ vlc_module_begin ()
set_callbacks(OpenDecoder, CloseDecoder)
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)
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)
add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS,
THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT)
#endif
vlc_module_end ()
/*****************************************************************************
@ -401,12 +407,18 @@ 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 = __MAX(1, vlc_GetCPUCount());
#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 = VLC_CLIP(vlc_GetCPUCount(), 1, 4);
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 = __MAX(1, vlc_GetCPUCount());
#endif
p_sys->s.allocator.cookie = dec;
p_sys->s.allocator.alloc_picture_callback = NewPicture;
p_sys->s.allocator.release_picture_callback = FreePicture;
@ -451,10 +463,17 @@ 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->fmt_out.video.i_width = (dec->fmt_out.video.i_width + 0x7F) & ~0x7F;
dec->fmt_out.video.i_height = (dec->fmt_out.video.i_height + 0x7F) & ~0x7F;

Loading…
Cancel
Save