Skip to content
Extraits de code Groupes Projets

Try to fix crashes when creating and deleting MPV

Tous les fils de conversation ont été résolus !
Fusionnées Kubat a demandé de fusionner fix-mpv vers master
Tous les fils de conversation ont été résolus !

Fichiers

+ 11
2
@@ -19,6 +19,14 @@ MpvContainer::MpvContainer(QWidget *parent)
setAttribute(Qt::WA_DontCreateNativeAncestors);
setAttribute(Qt::WA_NativeWindow);
}
void
MpvContainer::intializeMpv()
{
if (isMpvAlreadyInitialized)
throw std::logic_error("MPV is already initialized!");
isMpvAlreadyInitialized = true;
quint64 wid = winId();
mpv_set_option(mpv, "wid", MPV_FORMAT_INT64, &wid);
@@ -64,12 +72,13 @@ MpvContainer::closeMpv() noexcept
{
if (mpv) {
qDebug() << "Closing the MPV context";
asyncCommand(AsyncCmdType::None, { "quit", nullptr });
registerMpvTimeCallback(nullptr);
registerMpvDurationCallback(nullptr);
mpv_handle *tmp_mpv = mpv;
mpv = nullptr; // Stop all other callbacks here
mpv_terminate_destroy(tmp_mpv);
mpv_destroy(tmp_mpv);
// mpv_wait_async_requests(tmp_mpv);
// mpv_terminate_destroy(tmp_mpv);
}
}
Chargement en cours