mirror of
https://github.com/Zaarrg/stremio-community-v5.git
synced 2026-03-11 17:45:44 +00:00
Added multi-threaded MPV command handling
- Improves initial load time allowing multiple commands to execute simultaneously - Prevents blocking of ui thread on handling of many commands. e.g. loading ~30 external subtitles into mpv
This commit is contained in:
parent
416dab85cf
commit
b159fd01e8
1 changed files with 23 additions and 17 deletions
|
|
@ -179,31 +179,37 @@ void HandleMpvEvents()
|
|||
|
||||
void HandleMpvCommand(const std::vector<std::string>& args)
|
||||
{
|
||||
if(!g_mpv || args.empty()) return;
|
||||
std::vector<const char*> cargs;
|
||||
for(auto &s: args) {
|
||||
cargs.push_back(s.c_str());
|
||||
}
|
||||
cargs.push_back(nullptr);
|
||||
mpv_command(g_mpv, cargs.data());
|
||||
std::thread([args](){
|
||||
if(!g_mpv || args.empty()) return;
|
||||
std::vector<const char*> cargs;
|
||||
for(auto &s: args) {
|
||||
cargs.push_back(s.c_str());
|
||||
}
|
||||
cargs.push_back(nullptr);
|
||||
mpv_command(g_mpv, cargs.data());
|
||||
}).detach();
|
||||
}
|
||||
|
||||
void HandleMpvSetProp(const std::vector<std::string>& args)
|
||||
{
|
||||
if(!g_mpv || args.size()<2) return;
|
||||
std::string val=args[1];
|
||||
if(val=="true") val="yes";
|
||||
if(val=="false") val="no";
|
||||
mpv_set_property_string(g_mpv, args[0].c_str(), val.c_str());
|
||||
std::thread([args](){
|
||||
if(!g_mpv || args.size()<2) return;
|
||||
std::string val=args[1];
|
||||
if(val=="true") val="yes";
|
||||
if(val=="false") val="no";
|
||||
mpv_set_property_string(g_mpv, args[0].c_str(), val.c_str());
|
||||
}).detach();
|
||||
}
|
||||
|
||||
void HandleMpvObserveProp(const std::vector<std::string>& args)
|
||||
{
|
||||
if(!g_mpv || args.empty()) return;
|
||||
std::string pname=args[0];
|
||||
g_observedProps.insert(pname);
|
||||
mpv_observe_property(g_mpv,0,pname.c_str(),MPV_FORMAT_NODE);
|
||||
std::cout<<"Observing prop="<<pname<<"\n";
|
||||
std::thread([args](){
|
||||
if(!g_mpv || args.empty()) return;
|
||||
std::string pname=args[0];
|
||||
g_observedProps.insert(pname);
|
||||
mpv_observe_property(g_mpv,0,pname.c_str(),MPV_FORMAT_NODE);
|
||||
std::cout<<"Observing prop="<<pname<<"\n";
|
||||
}).detach();
|
||||
}
|
||||
|
||||
void pauseMPV(bool allowed)
|
||||
|
|
|
|||
Loading…
Reference in a new issue