Skip to content

Commit

Permalink
fix: Remove Thumbnailer dependency
Browse files Browse the repository at this point in the history
Remove Thumbnailer dependency

Log: Remove Thumbnailer dependency
  • Loading branch information
pengfeixx committed Jun 6, 2024
1 parent 4a63ae6 commit 321dc49
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 21 deletions.
7 changes: 4 additions & 3 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@ Homepage: https://www.deepin.org/

Package: deepin-movie
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libavcodec58(>= 7:4.0), libavformat58(>= 7:4.1), libavutil56(>= 7:4.0), libffmpegthumbnailer4v5, libmpv1(>= 0.29), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0)
Recommends: libgpuinfo, uos-reporter, deepin-event-log
Depends: ${shlibs:Depends}, ${misc:Depends}, libmpv1(>= 0.29), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0)
Recommends: libgpuinfo, uos-reporter, deepin-event-log, libavcodec58, libavformat58, libavutil56, libffmpegthumbnailer4v5
Description: movie player
Movie is a full-featured video player, supporting playing local and streaming media in multiple video formats.

Package: libdmr
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libavcodec58(>= 7:4.0), libavformat58(>= 7:4.1), libavutil56(>= 7:4.0), libffmpegthumbnailer4v5, libmpv1(>= 0.29), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0)
Depends: ${shlibs:Depends}, ${misc:Depends}, libmpv1(>= 0.29), libpulse0(>= 0.99.1), libqt5concurrent5, libmpris-qt5-1, libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.4.0)
Recommends: libavcodec58, libavformat58, libavutil56, libffmpegthumbnailer4v5
Multi-Arch: same
Description: movie player widget library
deepin movie player widget library
Expand Down
11 changes: 10 additions & 1 deletion src/common/dmr_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,16 @@ Settings::Settings()
#if !defined (__x86_64__)
m_pSettings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json");
#else
if (CompositingManager::get().composited())
auto isThumbnailerExists = [=](){
QDir dir;
QString path = QLibraryInfo::location(QLibraryInfo::LibrariesPath);
dir.setPath(path);
QStringList list = dir.entryList(QStringList() << (QString("libffmpegthumbnailer.so") + "*"), QDir::NoDotAndDotDot | QDir::Files);
if (!list.isEmpty())
return true;
return false;
};
if (CompositingManager::get().composited() && isThumbnailerExists())
m_pSettings = DSettings::fromJsonFile(":/resources/data/settings.json");
else
m_pSettings = DSettings::fromJsonFile(":/resources/data/lowEffectSettings.json");
Expand Down
11 changes: 7 additions & 4 deletions src/common/platform/platform_thumbnail_worker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ void Platform_ThumbnailWorker::requestThumb(const QUrl &url, int secs)

Platform_ThumbnailWorker::Platform_ThumbnailWorker()
{
initThumb();
m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio();
if (initThumb())
m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio();

m_pCharTime = (char *)malloc(20);
}
Expand All @@ -102,9 +102,11 @@ QString Platform_ThumbnailWorker::libPath(const QString &strlib)
return list.last();
}

void Platform_ThumbnailWorker::initThumb()
bool Platform_ThumbnailWorker::initThumb()
{
QLibrary library(libPath("libffmpegthumbnailer.so"));
if (!library.load())
return false;
m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create");
m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy");
m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data");
Expand All @@ -115,8 +117,9 @@ void Platform_ThumbnailWorker::initThumb()
|| m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr
|| m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr
|| m_video_thumbnailer == nullptr) {
return;
return false;
}
return true;
}

QPixmap Platform_ThumbnailWorker::genThumb(const QUrl &url, int secs)
Expand Down
2 changes: 1 addition & 1 deletion src/common/platform/platform_thumbnail_worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public slots:
char *m_pCharTime;

Platform_ThumbnailWorker();
void initThumb();
bool initThumb();
void run() override;
void runSingle(QPair<QUrl, int> w);
QPixmap genThumb(const QUrl &url, int secs);
Expand Down
18 changes: 12 additions & 6 deletions src/common/thumbnail_worker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ void ThumbnailWorker::requestThumb(const QUrl &url, int secs)

ThumbnailWorker::ThumbnailWorker()
{
initThumb();
m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio();
if (initThumb())
m_video_thumbnailer->thumbnail_size = m_video_thumbnailer->thumbnail_size * qApp->devicePixelRatio();

m_pCharTime = (char *)malloc(20);
}
Expand All @@ -98,13 +98,16 @@ QString ThumbnailWorker::libPath(const QString &strlib)
list.sort();
}

Q_ASSERT(list.size() > 0);
return list.last();
if (!list.isEmpty())
return list.last();
return QString();
}

void ThumbnailWorker::initThumb()
bool ThumbnailWorker::initThumb()
{
QLibrary library(libPath("libffmpegthumbnailer.so"));
if (!library.load())
return false;
m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create");
m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy");
m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data");
Expand All @@ -114,14 +117,17 @@ void ThumbnailWorker::initThumb()
if (m_mvideo_thumbnailer == nullptr || m_mvideo_thumbnailer_destroy == nullptr
|| m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr
|| m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr) {
return;
return false;
}

m_video_thumbnailer = m_mvideo_thumbnailer();
return true;
}

QPixmap ThumbnailWorker::genThumb(const QUrl &url, int secs)
{
if (!m_mvideo_thumbnailer_create_image_data)
return QPixmap();
auto dpr = qApp->devicePixelRatio();
QPixmap pm;
pm.setDevicePixelRatio(dpr);
Expand Down
2 changes: 1 addition & 1 deletion src/common/thumbnail_worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public slots:
char *m_pCharTime;

ThumbnailWorker();
void initThumb();
bool initThumb();
void run() override;
void runSingle(QPair<QUrl, int> w);
QPixmap genThumb(const QUrl &url, int secs);
Expand Down
12 changes: 8 additions & 4 deletions src/widgets/toolbox_proxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -800,13 +800,16 @@ static QString libPath(const QString &strlib)
list.sort();
}

Q_ASSERT(list.size() > 0);
return list.last();
if (!list.isEmpty())
return list.last();
return QString();
}

void viewProgBarLoad::initThumb()
bool viewProgBarLoad::initThumb()
{
QLibrary library(libPath("libffmpegthumbnailer.so"));
if (!library.load())
return false;
m_mvideo_thumbnailer = (mvideo_thumbnailer) library.resolve("video_thumbnailer_create");
m_mvideo_thumbnailer_destroy = (mvideo_thumbnailer_destroy) library.resolve("video_thumbnailer_destroy");
m_mvideo_thumbnailer_create_image_data = (mvideo_thumbnailer_create_image_data) library.resolve("video_thumbnailer_create_image_data");
Expand All @@ -817,10 +820,11 @@ void viewProgBarLoad::initThumb()
|| m_mvideo_thumbnailer_create_image_data == nullptr || m_mvideo_thumbnailer_destroy_image_data == nullptr
|| m_mvideo_thumbnailer_generate_thumbnail_to_buffer == nullptr)
{
return;
return false;
}

m_video_thumbnailer = m_mvideo_thumbnailer();
return true;
}

void viewProgBarLoad::initMember()
Expand Down
2 changes: 1 addition & 1 deletion src/widgets/toolbox_proxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -748,7 +748,7 @@ public slots:
/**
* @brief initThumb 动态初始化缩略图获取
*/
void initThumb();
bool initThumb();
/**
* @brief initMember 初始化成员变量
*/
Expand Down

0 comments on commit 321dc49

Please sign in to comment.