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

Romain Vimont rom1v at videolabs.io
Thu Jan 7 14:05:23 UTC 2021


On Thu, Jan 07, 2021 at 03:03:20PM +0100, Pierre Lamot wrote:
> On 2021-01-07 14:47, Romain Vimont wrote:
> > 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()).
> 
> I meant that the patch is not a Qt patch, it will affect other interfaces
> using the vlc_ml_media_generate_thumbnail (OSX for instance)

Oh, that part of the title! Indeed :)

Thank you

> > > 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
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> 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