From 70fd08aabe303f3072db7201c2fb4aecbe068f44 Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Wed, 10 Aug 2022 02:40:02 +0200 Subject: [PATCH] bestsource: Expose some options --- src/libresrc/default_config.json | 5 +++++ src/libresrc/osx/default_config.json | 5 +++++ src/preferences.cpp | 7 +++++++ src/video_provider_bestsource.cpp | 4 +++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/libresrc/default_config.json b/src/libresrc/default_config.json index 318f8d3ee..aeac73b4a 100644 --- a/src/libresrc/default_config.json +++ b/src/libresrc/default_config.json @@ -353,6 +353,11 @@ "FFmpegSource" : { "Decoding Threads" : -1, "Unsafe Seeking" : false + }, + "BestSource" : { + "Max Cache Size" : 1024, + "Threads" : 0, + "Seek Preroll" : 12 } } }, diff --git a/src/libresrc/osx/default_config.json b/src/libresrc/osx/default_config.json index 59f2ed05f..a774470fc 100644 --- a/src/libresrc/osx/default_config.json +++ b/src/libresrc/osx/default_config.json @@ -353,6 +353,11 @@ "FFmpegSource" : { "Decoding Threads" : -1, "Unsafe Seeking" : false + }, + "BestSource" : { + "Max Cache Size" : 1024, + "Threads" : 0, + "Seek Preroll" : 12 } } }, diff --git a/src/preferences.cpp b/src/preferences.cpp index f6320dd75..e0d064c03 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -452,6 +452,13 @@ void Advanced_Video(wxTreebook *book, Preferences *parent) { p->OptionAdd(ffms, _("Enable unsafe seeking"), "Provider/Video/FFmpegSource/Unsafe Seeking"); #endif +#ifdef WITH_BESTSOURCE + auto bs = p->PageSizer("BestSource"); + p->OptionAdd(bs, _("Max cache size (MB)"), "Provider/Video/BestSource/Max Cache Size"); + p->OptionAdd(bs, _("Decoder Threads (0 to autodetect)"), "Provider/Video/BestSource/Threads"); + p->OptionAdd(bs, _("Seek preroll (Frames)"), "Provider/Video/BestSource/Seek Preroll"); +#endif + p->SetSizerAndFit(p->sizer); } diff --git a/src/video_provider_bestsource.cpp b/src/video_provider_bestsource.cpp index 7cea1e147..c6143a0ec 100644 --- a/src/video_provider_bestsource.cpp +++ b/src/video_provider_bestsource.cpp @@ -108,8 +108,10 @@ std::string colormatrix_description(const AVFrame *frame) { BSVideoProvider::BSVideoProvider(agi::fs::path const& filename, std::string const& colormatrix, agi::BackgroundRunner *br) try : bsopts() -, bs(filename.string(), "", -1, false, 0, GetCacheFile(filename), &bsopts) +, bs(filename.string(), "", -1, false, OPT_GET("Provider/Video/BestSource/Threads")->GetInt(), GetCacheFile(filename), &bsopts) { + bs.SetMaxCacheSize(OPT_GET("Provider/Video/BestSource/Max Cache Size")->GetInt() << 20); + bs.SetSeekPreRoll(OPT_GET("Provider/Video/BestSource/Seek Preroll")->GetInt()); try { BestAudioSource dummysource(filename.string(), -1, 0, ""); has_audio = true;