[vlc-devel] [PATCH 5/5] qt: medialib: use new requestThumbnail() API

Romain Vimont rom1v at videolabs.io
Thu Jan 7 13:47:28 UTC 2021


On Thu, Jan 07, 2021 at 02:34:29PM +0100, Pierre Lamot wrote:
> hum, the patch title doesn't match the content.

It's not obvious from the diff, but the previous version called:

    Media::requestThumbnail(...)

while the new version calls the new API:

    MediaLibrary::requestThumbnail(mediaId, ...)

It is also moved because it's not in the function requiring to retrieve
a Media instance anymore (controlMedia()).

> On 2021-01-07 14:24, Romain Vimont wrote:
> > 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.
> > ---
> >  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-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list