vlc | branch: master | Romain Vimont <ro...@videolabs.io> | Tue Jan 5 14:49:46 2021 +0100| [570e30eba13fd7b1ca825c52ae585484dfa48905] | committer: Hugo Beauzée-Luyssen
medialib: use new requestThumbnail() API A new medialibrary API has been added to request asynchronous thumbnail generation from a media id: https://code.videolan.org/videolan/medialibrary/-/merge_requests/350 This avoids to retrieve a Media from the media id beforehand via a blocking call (executing SQL queries) on the UI thread. Signed-off-by: Hugo Beauzée-Luyssen <h...@beauzee.fr> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=570e30eba13fd7b1ca825c52ae585484dfa48905 --- modules/misc/medialibrary/medialibrary.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/modules/misc/medialibrary/medialibrary.cpp b/modules/misc/medialibrary/medialibrary.cpp index 1d7a12547c..6c4583f66e 100644 --- a/modules/misc/medialibrary/medialibrary.cpp +++ b/modules/misc/medialibrary/medialibrary.cpp @@ -598,13 +598,24 @@ int MediaLibrary::Control( int query, va_list args ) *va_arg( args, vlc_ml_media_t**) = CreateAndConvert<vlc_ml_media_t>( media.get() ); return VLC_SUCCESS; } + case VLC_ML_MEDIA_GENERATE_THUMBNAIL: + { + auto mediaId = va_arg( args, int64_t ); + auto sizeType = va_arg( args, int ); + auto width = va_arg( args, uint32_t ); + auto height = va_arg( args, uint32_t ); + auto position = va_arg( args, double ); + auto res = m_ml->requestThumbnail( mediaId, + static_cast<medialibrary::ThumbnailSizeType>( sizeType ), + width, height, position ); + return res == true ? VLC_SUCCESS : VLC_EGENERIC; + } case VLC_ML_MEDIA_UPDATE_PROGRESS: case VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE: case VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE: case VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES: case VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES: case VLC_ML_MEDIA_SET_THUMBNAIL: - case VLC_ML_MEDIA_GENERATE_THUMBNAIL: case VLC_ML_MEDIA_ADD_EXTERNAL_MRL: case VLC_ML_MEDIA_SET_TYPE: case VLC_ML_MEDIA_ADD_BOOKMARK: @@ -1228,16 +1239,6 @@ int MediaLibrary::controlMedia( int query, va_list args ) m->setThumbnail( mrl, static_cast<medialibrary::ThumbnailSizeType>( sizeType ) ); return VLC_SUCCESS; } - case VLC_ML_MEDIA_GENERATE_THUMBNAIL: - { - auto sizeType = va_arg( args, int ); - auto width = va_arg( args, uint32_t ); - auto height = va_arg( args, uint32_t ); - auto position = va_arg( args, double ); - auto res = m->requestThumbnail( static_cast<medialibrary::ThumbnailSizeType>( sizeType ), - width, height, position ); - return res == true ? VLC_SUCCESS : VLC_EGENERIC; - } case VLC_ML_MEDIA_ADD_EXTERNAL_MRL: { auto mrl = va_arg( args, const char* ); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits