diff -pruN 5.10.5-1/archlinux/PKGBUILD 5.10.6-1/archlinux/PKGBUILD
--- 5.10.5-1/archlinux/PKGBUILD	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/archlinux/PKGBUILD	2022-07-20 03:46:22.000000000 +0000
@@ -0,0 +1,32 @@
+# Maintainer: justforlxz <justforlxz@gmail.com>
+pkgname=deepin-movie-git
+pkgver=5.9.8.r48.g225c49e9
+pkgrel=1
+pkgdesc='Movie player based on mpv'
+arch=('x86_64' 'aarch64')
+url="https://github.com/linuxdeepin/deepin-movie-reborn"
+license=('GPL3')
+depends=('deepin-qt5integration-git'  'ffmpegthumbnailer' 'libxtst' 'mpv' 'qtdbusextended' 'qtmpris')
+makedepends=('cmake' 'gtest' 'ninja' 'qt5-tools')
+provides=('deepin-movie')
+conflicts=('deepin-movie')
+groups=('deepin-extra-git')
+options=('!lto')
+source=("source.tar.gz")
+sha512sums=('SKIP')
+
+prepare() {
+    cd $deepin_source_name
+}
+
+build() {
+  cd $deepin_source_name
+  export CXXFLAGS+=' -fpermissive'
+  cmake -GNinja -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release .
+  ninja
+}
+
+package() {
+  cd $deepin_source_name
+  DESTDIR="$pkgdir" ninja install
+}
diff -pruN 5.10.5-1/CMakeLists.txt 5.10.6-1/CMakeLists.txt
--- 5.10.5-1/CMakeLists.txt	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/CMakeLists.txt	2022-07-20 03:46:22.000000000 +0000
@@ -22,6 +22,24 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS on)
 
 find_package(PkgConfig REQUIRED)
 
+pkg_check_modules(MPRIS REQUIRED IMPORTED_TARGET mpris-qt5)
+
+# test deepin fork mpris-qt5
+try_compile(USE_FORK_MPRIS
+              ${CMAKE_CURRENT_BINARY_DIR}/try_compile
+            SOURCES
+              ${CMAKE_CURRENT_SOURCE_DIR}/tests/mpris_test.cc
+            LINK_LIBRARIES
+              PkgConfig::MPRIS
+            OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
+)
+
+message(STATUS "use deepin fork mpris-qt5: ${USE_FORK_MPRIS}")
+
+if(USE_FORK_MPRIS)
+  add_definitions(-DUSE_FORK_MPRIS)
+endif()
+
 # Find includes in corresponding build directories
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
diff -pruN 5.10.5-1/debian/changelog 5.10.6-1/debian/changelog
--- 5.10.5-1/debian/changelog	2022-07-14 09:26:34.000000000 +0000
+++ 5.10.6-1/debian/changelog	2022-08-02 02:35:59.000000000 +0000
@@ -1,3 +1,14 @@
+deepin-movie-reborn (5.10.6-1) unstable; urgency=medium
+
+  * New upstream version 5.10.6.
+  * debian/libdmr0.1.shlibs:
+    + Update version.
+  * debian/patches:
+    + Add a fix missing header patche.
+    + Update other patches.
+
+ -- Clay Stan <claystan97@gmail.com>  Tue, 02 Aug 2022 10:35:59 +0800
+
 deepin-movie-reborn (5.10.5-1) unstable; urgency=medium
 
   * debian/control:
diff -pruN 5.10.5-1/debian/libdmr0.1.shlibs 5.10.6-1/debian/libdmr0.1.shlibs
--- 5.10.5-1/debian/libdmr0.1.shlibs	2022-07-14 09:26:34.000000000 +0000
+++ 5.10.6-1/debian/libdmr0.1.shlibs	2022-08-02 02:35:59.000000000 +0000
@@ -1 +1 @@
-libdmr 0.1 libdmr0.1 (>= 5.10.5)
+libdmr 0.1 libdmr0.1 (>= 5.10.6)
diff -pruN 5.10.5-1/debian/patches/002_fix_doc_install_path.patch 5.10.6-1/debian/patches/002_fix_doc_install_path.patch
--- 5.10.5-1/debian/patches/002_fix_doc_install_path.patch	2022-07-14 09:26:34.000000000 +0000
+++ 5.10.6-1/debian/patches/002_fix_doc_install_path.patch	2022-08-02 02:35:59.000000000 +0000
@@ -3,7 +3,7 @@ Description: fox manual install path
 
 Author: Clay Stan <claystan97@gmail.com>
 Forwarded: not-needed
-Last-Update: 2022-07-14
+Last-Update: 2022-08-02
 
 ---
 
@@ -11,12 +11,12 @@ Index: deepin-movie-reborn/src/CMakeList
 ===================================================================
 --- deepin-movie-reborn.orig/src/CMakeLists.txt
 +++ deepin-movie-reborn/src/CMakeLists.txt
-@@ -92,7 +92,7 @@ install(FILES ${CMAKE_SOURCE_DIR}/src/li
+@@ -91,7 +91,7 @@ install(FILES ${CMAKE_SOURCE_DIR}/src/li
  install(FILES ${PROJECT_SOURCE_DIR}/assets/resources/icons/logo-big.svg
      DESTINATION share/icons/hicolor/scalable/apps
      RENAME deepin-movie.svg)
 -install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/deepin-movie DESTINATION /usr/share/deepin-manual/manual-assets/application/)
 +install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/deepin-movie/movie DESTINATION /usr/share/doc/deepin-movie)
  
- #匹配mpris差异
- execute_process(COMMAND dpkg -s libmpris-qt5-1 COMMAND grep -i version COMMAND cut -d\  -f2 OUTPUT_VARIABLE libmprisVersion)
+ # 加速编译优化参数
+ if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64")
diff -pruN 5.10.5-1/debian/patches/006_add_missing_header.patch 5.10.6-1/debian/patches/006_add_missing_header.patch
--- 5.10.5-1/debian/patches/006_add_missing_header.patch	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/debian/patches/006_add_missing_header.patch	2022-08-02 02:35:59.000000000 +0000
@@ -0,0 +1,21 @@
+Description: add missing header
+ add missing header.
+
+Author: Clay Stan <claystan97@gmail.com>
+Forwarded: not-needed
+Last-Update: 2022-08-02
+
+---
+
+Index: deepin-movie-reborn/src/libdmr/playlist_model.cpp
+===================================================================
+--- deepin-movie-reborn.orig/src/libdmr/playlist_model.cpp
++++ deepin-movie-reborn/src/libdmr/playlist_model.cpp
+@@ -44,6 +44,7 @@
+ #include <QSvgRenderer>
+ 
+ #include <random>
++#include <libavcodec/avcodec.h>
+ extern "C" {
+ #include <libavformat/avformat.h>
+ #include <libavutil/dict.h>
diff -pruN 5.10.5-1/debian/patches/series 5.10.6-1/debian/patches/series
--- 5.10.5-1/debian/patches/series	2022-07-14 09:26:34.000000000 +0000
+++ 5.10.6-1/debian/patches/series	2022-08-02 02:35:59.000000000 +0000
@@ -1,4 +1,5 @@
-005_fix_ftbfs_with_ffmpeg5.0.patch
-001_remove_setCanShowInUI.patch
+#001_remove_setCanShowInUI.patch
 002_fix_doc_install_path.patch
 003_fix_theme.patch
+005_fix_ftbfs_with_ffmpeg5.0.patch
+006_add_missing_header.patch
diff -pruN 5.10.5-1/.github/workflows/call-clacheck.yml 5.10.6-1/.github/workflows/call-clacheck.yml
--- 5.10.5-1/.github/workflows/call-clacheck.yml	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/.github/workflows/call-clacheck.yml	2022-07-20 03:46:22.000000000 +0000
@@ -0,0 +1,16 @@
+name: Call CLA check
+on:
+  issue_comment:
+    types: [created]
+  pull_request_target:
+    types: [opened, closed, synchronize]
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  clacheck:
+    uses: linuxdeepin/.github/.github/workflows/cla-check.yml@master
+    secrets:
+      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
diff -pruN 5.10.5-1/src/backends/mpv/mpv_glwidget.cpp 5.10.6-1/src/backends/mpv/mpv_glwidget.cpp
--- 5.10.5-1/src/backends/mpv/mpv_glwidget.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/backends/mpv/mpv_glwidget.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -503,7 +503,11 @@ namespace dmr {
 #endif
 #endif
 
+#if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
         mpv_opengl_init_params gl_init_params = { get_proc_address, nullptr, nullptr };
+#else
+        mpv_opengl_init_params gl_init_params = { get_proc_address, nullptr };
+#endif
         //int adv_control = 1;
         mpv_render_param params[] = {
             {MPV_RENDER_PARAM_API_TYPE, const_cast<char*>(MPV_RENDER_API_TYPE_OPENGL)},
diff -pruN 5.10.5-1/src/backends/mpv/mpv_proxy.cpp 5.10.6-1/src/backends/mpv/mpv_proxy.cpp
--- 5.10.5-1/src/backends/mpv/mpv_proxy.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/backends/mpv/mpv_proxy.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -472,7 +472,7 @@ mpv_handle *MpvProxy::mpv_init()
     //my_set_property(pHandle, "correct-pts", false);
     //my_set_property(pHandle, "fps", 30);
     my_set_property(pHandle, "panscan", 0);
-    my_set_property(pHandle, "volume-max", 100.0);
+    my_set_property(pHandle, "volume-max", 200.0);
     my_set_property(pHandle, "input-cursor", "no");
     my_set_property(pHandle, "cursor-autohide", "no");
     my_set_property(pHandle, "sub-auto", "fuzzy");
@@ -668,11 +668,13 @@ void MpvProxy::handle_mpv_events()
             // caused by seek or just playing
             break;
 
+#if MPV_CLIENT_API_VERSION < MPV_MAKE_VERSION(2,0)
         case MPV_EVENT_TRACKS_CHANGED:
             qInfo() << m_eventName(pEvent->event_id);
             updatePlayingMovieInfo();
             emit tracksChanged();
             break;
+#endif
 
         case MPV_EVENT_FILE_LOADED: {
             qInfo() << m_eventName(pEvent->event_id);
@@ -1022,8 +1024,8 @@ void MpvProxy::volumeDown()
 int MpvProxy::volume() const
 {
     int nActualVol = my_get_property(m_handle, "volume").toInt();
-    int nDispalyVol = static_cast<int>((nActualVol - 40) / 60.0 * 200.0);
-    return nDispalyVol;
+    int nDispalyVol = static_cast<int>((nActualVol - 40) / 60.0 * 100.0);
+    return nDispalyVol > 100 ? nActualVol : nDispalyVol;
 }
 
 int MpvProxy::videoRotation() const
@@ -1085,12 +1087,13 @@ void MpvProxy::refreshDecode()
             auto codec = currentInfo.mi.videoCodec();
             auto name = _file.fileName();
             isSoftCodec = codec.toLower().contains("mpeg2video") || codec.toLower().contains("wmv") || name.toLower().contains("wmv");
+#if !defined(_loongarch) && !defined(__loongarch__) && !defined(__loongarch64)
             //探测硬解码
             if(!isSoftCodec) {
                 isSoftCodec = !isSurportHardWareDecode(codec, currentInfo.mi.width, currentInfo.mi.height);
             }
+#endif
         }
-
         if (isSoftCodec) {
             qInfo() << "my_set_property hwdec no";
             my_set_property(m_handle, "hwdec", "no");
@@ -1377,7 +1380,9 @@ qint64 MpvProxy::nextBurstShootPoint()
 int MpvProxy::volumeCorrection(int displayVol)
 {
     int realVol = 0;
-    realVol = static_cast<int>((displayVol / 200.0) * 60.0 + 40);
+    if (displayVol > 100)
+        return displayVol;
+    realVol = static_cast<int>((displayVol / 100.0) * 60.0 + 40);
     return (realVol == 40 ? 0 : realVol);
 }
 
diff -pruN 5.10.5-1/src/CMakeLists.txt 5.10.6-1/src/CMakeLists.txt
--- 5.10.5-1/src/CMakeLists.txt	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/CMakeLists.txt	2022-07-20 03:46:22.000000000 +0000
@@ -24,7 +24,6 @@ find_package(Qt5MultimediaWidgets)
 pkg_check_modules(Dtk REQUIRED IMPORTED_TARGET dtkwidget)
 pkg_check_modules(Dtk REQUIRED IMPORTED_TARGET dtkcore)
 pkg_check_modules(Xcb REQUIRED IMPORTED_TARGET xcb xcb-shape)
-pkg_check_modules(MPRIS REQUIRED IMPORTED_TARGET mpris-qt5)
 pkg_check_modules(DBusextended REQUIRED IMPORTED_TARGET dbusextended-qt5)
 pkg_check_modules(Gst REQUIRED IMPORTED_TARGET gobject-2.0)
 # IMPORTED_TARGET failed to work for some of libs under flatpak env
@@ -94,13 +93,6 @@ install(FILES ${PROJECT_SOURCE_DIR}/asse
     RENAME deepin-movie.svg)
 install(DIRECTORY ${CMAKE_SOURCE_DIR}/assets/deepin-movie DESTINATION /usr/share/deepin-manual/manual-assets/application/)
 
-#匹配mpris差异
-execute_process(COMMAND dpkg -s libmpris-qt5-1 COMMAND grep -i version COMMAND cut -d\  -f2 OUTPUT_VARIABLE libmprisVersion)
-message(${libmprisVersion})
-if( ${libmprisVersion} MATCHES "0.1.0-" )
-    add_definitions(-D_LIBMPR_)
-endif()
-
 # 加速编译优化参数
 if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64")
     SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -O3 -ftree-vectorize -march=loongson3a -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions -mloongson-ext2 -mloongson-mmi -Wl,--as-need -fPIE -z noexecstack")
diff -pruN 5.10.5-1/src/common/mainwindow.cpp 5.10.6-1/src/common/mainwindow.cpp
--- 5.10.5-1/src/common/mainwindow.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/common/mainwindow.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -55,6 +55,7 @@
 #include "vendor/movieapp.h"
 #include "vendor/presenter.h"
 #include "filefilter.h"
+#include "eventlogutils.h"
 
 //#include <QtWidgets>
 #include <QtDBus>
@@ -643,6 +644,13 @@ MainWindow::MainWindow(QWidget *parent)
 {
     initMember();
 
+    QJsonObject obj{
+        {"tid", EventLogUtils::Start},
+        {"mode", 1}, //冷启动
+        {"version", VERSION}
+    };
+    EventLogUtils::get().writeLogs(obj);
+
     //add bu heyi
     this->setAttribute(Qt::WA_AcceptTouchEvents);
     m_mousePressTimer.setInterval(1300);
@@ -3402,7 +3410,6 @@ void MainWindow::resizeEvent(QResizeEven
         QPoint relativePoint = mapToGlobal(QPoint(0, 0));
         m_pToolbox->updateSliderPoint(relativePoint);
     }
-
     m_pMovieWidget->resize(rect().size());
     m_pMovieWidget->move(0, 0);
 
diff -pruN 5.10.5-1/src/libdmr/eventlogutils.cpp 5.10.6-1/src/libdmr/eventlogutils.cpp
--- 5.10.5-1/src/libdmr/eventlogutils.cpp	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/src/libdmr/eventlogutils.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -0,0 +1,38 @@
+#include <QLibrary>
+#include <QDir>
+#include <QLibraryInfo>
+#include <QJsonDocument>
+
+#include "eventlogutils.h"
+
+EventLogUtils *EventLogUtils::m_instance(nullptr);
+
+EventLogUtils &EventLogUtils::get()
+{
+    if (m_instance == nullptr) {
+        m_instance = new EventLogUtils;
+    }
+    return *m_instance;
+}
+
+EventLogUtils::EventLogUtils()
+{
+    QLibrary library("libdeepin-event-log.so");
+
+    init =reinterpret_cast<bool (*)(const std::string &, bool)>(library.resolve("Initialize"));
+    writeEventLog = reinterpret_cast<void (*)(const std::string &)>(library.resolve("WriteEventLog"));
+
+    if (init == nullptr)
+        return;
+
+    init("deepin-movie", true);
+}
+
+void EventLogUtils::writeLogs(QJsonObject &data)
+{
+    if (writeEventLog == nullptr)
+        return;
+
+    //std::string str = QJsonDocument(data).toJson(QJsonDocument::Compact).toStdString();
+    writeEventLog(QJsonDocument(data).toJson(QJsonDocument::Compact).toStdString());
+}
diff -pruN 5.10.5-1/src/libdmr/eventlogutils.h 5.10.6-1/src/libdmr/eventlogutils.h
--- 5.10.5-1/src/libdmr/eventlogutils.h	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/src/libdmr/eventlogutils.h	2022-07-20 03:46:22.000000000 +0000
@@ -0,0 +1,30 @@
+#ifndef EVENTLOGUTILS_H
+#define EVENTLOGUTILS_H
+
+#include <QJsonObject>
+#include <string>
+
+class EventLogUtils
+{
+public:
+    enum EventTID {
+        OpeningTime     = 1000000000,
+        ClosingTime     = 1000000001,
+        Start           = 1000000003,
+        Quit            = 1000000004,
+        StartPlaying    = 1000200011
+    };
+
+    static EventLogUtils &get();
+    void writeLogs(QJsonObject &data);
+
+private:
+    bool (*init)(const std::string &packagename, bool enable_sig) = nullptr;
+    void (*writeEventLog)(const std::string &eventdata) = nullptr;
+
+    static EventLogUtils *m_instance;
+
+    EventLogUtils();
+};
+
+#endif // EVENTLOGUTILS_H
diff -pruN 5.10.5-1/src/libdmr/filefilter.cpp 5.10.6-1/src/libdmr/filefilter.cpp
--- 5.10.5-1/src/libdmr/filefilter.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/libdmr/filefilter.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -283,7 +283,7 @@ FileFilter::MediaType FileFilter::typeJu
     } else {
         miType = MediaType::Other;
     }
-    if (strMimeType.contains("x-7z")) { //7z压缩包中会检测出音频流
+    if (strMimeType.contains("x-7z")){ //7z压缩包中会检测出音频流
         miType = MediaType::Other;
     }
     if(strFormatName.contains("Tele-typewriter") || strMimeType.startsWith("image/"))       // 排除文本文件，如果只用mimetype判断会遗漏部分原始格式文件如：h264裸流
diff -pruN 5.10.5-1/src/libdmr/player_engine.cpp 5.10.6-1/src/libdmr/player_engine.cpp
--- 5.10.5-1/src/libdmr/player_engine.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/libdmr/player_engine.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -42,6 +42,7 @@
 #include "dguiapplicationhelper.h"
 #include "filefilter.h"
 #include "qtplayer_proxy.h"
+#include "eventlogutils.h"
 
 #include <QPainterPath>
 
@@ -139,7 +140,7 @@ bool PlayerEngine::isPlayableFile(const
     if (FileFilter::instance()->isMediaFile(url)) {
         return true;
     } else {    // 网络文件不提示
-        if (url.isLocalFile()) {
+        if(url.isLocalFile()) {
             emit sigInvalidFile(QFileInfo(url.toLocalFile()).fileName());
         }
         return false;
@@ -573,6 +574,18 @@ void PlayerEngine::requestPlay(int id)
     } else {
         // TODO: delete and try next backend?
     }
+
+    QJsonObject obj{
+        {"tid", EventLogUtils::StartPlaying},
+        {"version", VERSION},
+        {"successful", true},
+        {"type", currFileIsAudio() ? "audio" : "video"},
+        {"origin", item.url.isLocalFile() ? "local" : "http"},
+        {"encapsulation_format", item.mi.fileType},
+        {"coding_format",  utils::videoIndex2str(item.mi.vCodecID)}
+    };
+
+    EventLogUtils::get().writeLogs(obj);
 }
 
 void PlayerEngine::savePlaybackPosition()
diff -pruN 5.10.5-1/src/libdmr/playlist_model.cpp 5.10.6-1/src/libdmr/playlist_model.cpp
--- 5.10.5-1/src/libdmr/playlist_model.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/libdmr/playlist_model.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -431,6 +431,7 @@ void PlaylistModel::slotStateChanged()
             pif.loaded = true;
             emit itemInfoUpdated(_current);
         }
+        _userRequestingItem = false;
         break;
     }
     case PlayerEngine::Paused:
@@ -826,7 +827,7 @@ void PlaylistModel::playNext(bool fromUs
     qInfo() << "playmode" << _playMode << "fromUser" << fromUser
             << "last" << _last << "current" << _current;
 
-    _userRequestingItem = fromUser;
+    _userRequestingItem = true;
 
     switch (_playMode) {
     case SinglePlay:
@@ -910,8 +911,6 @@ void PlaylistModel::playNext(bool fromUs
         tryPlayCurrent(true);
         break;
     }
-
-    _userRequestingItem = false;
 }
 
 void PlaylistModel::playPrev(bool fromUser)
@@ -920,7 +919,7 @@ void PlaylistModel::playPrev(bool fromUs
     qInfo() << "playmode" << _playMode << "fromUser" << fromUser
             << "last" << _last << "current" << _current;
 
-    _userRequestingItem = fromUser;
+    _userRequestingItem = true;
 
     switch (_playMode) {
     case SinglePlay:
@@ -998,9 +997,6 @@ void PlaylistModel::playPrev(bool fromUs
         tryPlayCurrent(false);
         break;
     }
-
-    _userRequestingItem = false;
-
 }
 
 static QDebug operator<<(QDebug s, const QFileInfoList &v)
@@ -1329,7 +1325,6 @@ void PlaylistModel::changeCurrent(int po
     _current = pos;
     _last = _current;
     tryPlayCurrent(true);
-    _userRequestingItem = false;
     emit currentChanged();
 }
 
diff -pruN 5.10.5-1/src/libdmr/playlist_model.h 5.10.6-1/src/libdmr/playlist_model.h
--- 5.10.5-1/src/libdmr/playlist_model.h	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/libdmr/playlist_model.h	2022-07-20 03:46:22.000000000 +0000
@@ -86,7 +86,6 @@ struct MovieInfo {
 #ifdef _MOVIE_USE_
     QString strFmtName; // 文件封装名
 #endif
-
     MovieInfo() {
         valid = false;
         raw_rotate = -1;
@@ -366,15 +365,12 @@ public:
 //        m_model = model;
 //        m_urls = urls;
         m_mutex = new QMutex;
-        m_itemMutex = new QMutex;
     };
     ~GetThumanbil()
     {
         m_stop = true;
         delete m_mutex;
         m_mutex = nullptr;
-        delete m_itemMutex;
-        m_itemMutex = nullptr;
     };
     //QList<PlayItemInfo> getInfoList() {return m_itemInfo;}
     void stop()
@@ -389,10 +385,10 @@ public:
     };
     void clearItem()
     {
-        m_itemMutex->lock();
+        m_mutex->lock();
         //m_itemInfo.clear();
         m_urls.clear();
-        m_itemMutex->unlock();
+        m_mutex->unlock();
     };
 
     void run()
@@ -402,11 +398,8 @@ public:
         m_mutex->unlock();
         foreach (QUrl url, urls) {
             QFileInfo info(url.path());
-            m_itemMutex->lock();
             //m_itemInfo.append();
             emit updateItem(m_model->calculatePlayInfo(url, info, false));
-            m_itemMutex->unlock();
-            m_isFinished = true;
             if (m_stop)
                 break;
         }
@@ -419,8 +412,6 @@ private:
     QList<QUrl> m_urls;
     //QList<PlayItemInfo> m_itemInfo;
     QMutex *m_mutex;
-    QMutex *m_itemMutex;
-    bool m_isFinished {true};
     bool m_stop {false};
 };
 
diff -pruN 5.10.5-1/src/main.cpp 5.10.6-1/src/main.cpp
--- 5.10.5-1/src/main.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/main.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
     DWIDGET_INIT_RESOURCE();
 #endif
     QFileInfo fi("/dev/mwv206_0");
-    if (fi.exists()) {    //fix bug 141973
+    if (fi.exists() && !CompositingManager::isMpvExists()) {
         qputenv("QT_XCB_GL_INTEGRATION", "xcb_egl");
     }
     /**
diff -pruN 5.10.5-1/src/vendor/presenter.cpp 5.10.6-1/src/vendor/presenter.cpp
--- 5.10.5-1/src/vendor/presenter.cpp	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/src/vendor/presenter.cpp	2022-07-20 03:46:22.000000000 +0000
@@ -55,7 +55,7 @@ Presenter::Presenter(MainWindow *mw, QOb
     mprisPlayer->setCanGoPrevious(true);
     mprisPlayer->setCanPause(true);
     mprisPlayer->setCanSeek(true);
-#ifndef _LIBMPR_
+#ifdef USE_FORK_MPRIS
     mprisPlayer->setCanShowInUI(false);
 #endif
     initMpris(mprisPlayer);
@@ -83,7 +83,7 @@ Presenter::Presenter(Platform_MainWindow
     mprisPlayer->setCanGoPrevious(true);
     mprisPlayer->setCanPause(true);
     mprisPlayer->setCanSeek(true);
-#ifndef _LIBMPR_
+#ifdef USE_FORK_MPRIS
     mprisPlayer->setCanShowInUI(false);
 #endif
     initMpris(mprisPlayer);
diff -pruN 5.10.5-1/tests/deepin-movie/stub/stub.h 5.10.6-1/tests/deepin-movie/stub/stub.h
--- 5.10.5-1/tests/deepin-movie/stub/stub.h	2022-07-13 07:53:14.000000000 +0000
+++ 5.10.6-1/tests/deepin-movie/stub/stub.h	2022-07-20 03:46:22.000000000 +0000
@@ -38,7 +38,7 @@
 #include <cstring>
 //c++
 #include <map>
-
+#include <cstdint>
 
 #define ADDR(CLASS_NAME,MEMBER_NAME) (&CLASS_NAME::MEMBER_NAME)
 
diff -pruN 5.10.5-1/tests/mpris_test.cc 5.10.6-1/tests/mpris_test.cc
--- 5.10.5-1/tests/mpris_test.cc	1970-01-01 00:00:00.000000000 +0000
+++ 5.10.6-1/tests/mpris_test.cc	2022-07-20 03:46:22.000000000 +0000
@@ -0,0 +1,9 @@
+#include <mprisplayer.h>
+
+int main(int argc, char *argv[])
+{
+    MprisPlayer *mprisPlayer = new MprisPlayer();
+    // deepin fork mpris
+    mprisPlayer->setCanShowInUI(false);
+    return 0;
+}
