[vlc-devel] [PATCH 0/5] qt: medialib: avoid blocking the UI thread for generating thumbnails

Hugo Beauzée-Luyssen hugo at beauzee.fr
Thu Jan 7 14:05:04 UTC 2021


On Thu, Jan 7, 2021, at 2:23 PM, Romain Vimont wrote:
> In the VLC medialibrary module, the control VLC_ML_MEDIA_GENERATE_THUMBNAIL,
> called from the UI thread, requests asynchronous thumbnail generation.
> 
> However, even if the generation was asynchronous, the control itself executed
> I/O calls on the UI thread:
>  1. it executed a SQL query to retrieve a Media from a media id (so that it
>     could call requestThumbnail()).
>  2. the Init() and Start() calls (to initialize the medialib and start
>     discovery), called on every thumbnail generation request, executed some SQL
>     queries or blocked on the medialibrary mutex (hold during SQL queries).
> 
> To solve the first issue, a new medialib API has been added for asynchronous
> thumbnail generation from a media id:
> https://code.videolan.org/videolan/medialibrary/-/merge_requests/350
> This patchset bumps the medialibrary version and uses it.
> 
> For the second issue, the Init()/Start() calls are improved to guarantee that
> they do not cause any I/O except on the very first call (the actual
> initialization/starting), which can be an acceptable compromise for now.
> 
> Branch: https://code.videolan.org/rom1v/vlc/-/commits/async_thumbnails
> 
> Regards
> 
> Romain Vimont (5):
>   medialib: rename medialib.cpp to medialibrary.cpp
>   medialib: bump contrib & reflect API changes
>   medialib: fix initialization
>   medialib: improve starting
>   qt: medialib: use new requestThumbnail() API
> 
>  configure.ac                                  |  2 +-
>  contrib/src/medialibrary/rules.mak            |  4 +-
>  modules/misc/Makefile.am                      |  2 +-
>  modules/misc/medialibrary/fs/file.cpp         |  2 +-
>  modules/misc/medialibrary/fs/file.h           |  2 +-
>  .../{medialib.cpp => medialibrary.cpp}        | 37 ++++++++++++-------
>  modules/misc/medialibrary/medialibrary.h      |  5 +++
>  po/POTFILES.in                                |  2 +-
>  8 files changed, 35 insertions(+), 21 deletions(-)
>  rename modules/misc/medialibrary/{medialib.cpp => medialibrary.cpp} (98%)
> 

The set LGTM

-- 
  Hugo Beauzée-Luyssen
  hugo at beauzee.fr


More information about the vlc-devel mailing list