Browse Source

lib/media: pass explicit instance to generate thumbnail

pull/136/head
Rémi Denis-Courmont 4 years ago
parent
commit
cd05f2ff55
  1. 8
      doc/libvlc/vlc-thumb.c
  2. 10
      include/vlc/libvlc_media.h
  3. 8
      lib/media.c

8
doc/libvlc/vlc-thumb.c

@ -128,7 +128,8 @@ static void callback(const libvlc_event_t *ev, void *param)
#define VLC_THUMBNAIL_TIMEOUT 5 /* 5 secs */
static void snapshot(libvlc_media_t *m, int width, char *out_with_ext)
static void snapshot(libvlc_instance_t *vlc, libvlc_media_t *m,
int width, char *out_with_ext)
{
libvlc_event_manager_t *em = libvlc_media_event_manager(m);
assert(em);
@ -137,7 +138,8 @@ static void snapshot(libvlc_media_t *m, int width, char *out_with_ext)
libvlc_event_attach(em, libvlc_MediaThumbnailGenerated, callback, &pic);
done = false;
libvlc_media_thumbnail_request_t* req =
libvlc_media_thumbnail_request_by_pos(m, VLC_THUMBNAIL_POSITION,
libvlc_media_thumbnail_request_by_pos(vlc, m,
VLC_THUMBNAIL_POSITION,
libvlc_media_thumbnail_seek_fast,
width, 0, false, libvlc_picture_Png,
VLC_THUMBNAIL_TIMEOUT * 1000);
@ -191,7 +193,7 @@ int main(int argc, const char **argv)
assert(m);
/* takes snapshot */
snapshot(m, width, out_with_ext);
snapshot(libvlc, m, width, out_with_ext);
/* clean up */
if (out != out_with_ext) {

10
include/vlc/libvlc_media.h

@ -726,6 +726,7 @@ typedef enum libvlc_thumbnailer_seek_speed_t
* - Derived from the media aspect ratio if only width or height is provided and
* the other one is set to 0.
*
* \param inst LibVLC instance to generate the thumbnail with
* \param md media descriptor object
* \param time The time at which the thumbnail should be generated
* \param speed The seeking speed \sa{libvlc_thumbnailer_seek_speed_t}
@ -745,8 +746,8 @@ typedef enum libvlc_thumbnailer_seek_speed_t
* \see libvlc_picture_type_t
*/
LIBVLC_API libvlc_media_thumbnail_request_t*
libvlc_media_thumbnail_request_by_time( libvlc_media_t *md,
libvlc_time_t time,
libvlc_media_thumbnail_request_by_time( libvlc_instance_t *inst,
libvlc_media_t *md, libvlc_time_t time,
libvlc_thumbnailer_seek_speed_t speed,
unsigned int width, unsigned int height,
bool crop, libvlc_picture_type_t picture_type,
@ -763,6 +764,7 @@ libvlc_media_thumbnail_request_by_time( libvlc_media_t *md,
* - Derived from the media aspect ratio if only width or height is provided and
* the other one is set to 0.
*
* \param inst LibVLC instance to generate the thumbnail with
* \param md media descriptor object
* \param pos The position at which the thumbnail should be generated
* \param speed The seeking speed \sa{libvlc_thumbnailer_seek_speed_t}
@ -782,8 +784,8 @@ libvlc_media_thumbnail_request_by_time( libvlc_media_t *md,
* \see libvlc_picture_type_t
*/
LIBVLC_API libvlc_media_thumbnail_request_t*
libvlc_media_thumbnail_request_by_pos( libvlc_media_t *md,
float pos,
libvlc_media_thumbnail_request_by_pos( libvlc_instance_t *inst,
libvlc_media_t *md, float pos,
libvlc_thumbnailer_seek_speed_t speed,
unsigned int width, unsigned int height,
bool crop, libvlc_picture_type_t picture_type,

8
lib/media.c

@ -1129,7 +1129,8 @@ static void media_on_thumbnail_ready( void* data, picture_t* thumbnail )
// Start an asynchronous thumbnail generation
libvlc_media_thumbnail_request_t*
libvlc_media_thumbnail_request_by_time( libvlc_media_t *md, libvlc_time_t time,
libvlc_media_thumbnail_request_by_time( libvlc_instance_t *inst,
libvlc_media_t *md, libvlc_time_t time,
libvlc_thumbnailer_seek_speed_t speed,
unsigned int width, unsigned int height,
bool crop, libvlc_picture_type_t picture_type,
@ -1137,7 +1138,6 @@ libvlc_media_thumbnail_request_by_time( libvlc_media_t *md, libvlc_time_t time,
{
assert( md );
libvlc_instance_t *inst = md->p_libvlc_instance;
libvlc_priv_t *p_priv = libvlc_priv(inst->p_libvlc_int);
if( unlikely( p_priv->p_thumbnailer == NULL ) )
return NULL;
@ -1172,7 +1172,8 @@ libvlc_media_thumbnail_request_by_time( libvlc_media_t *md, libvlc_time_t time,
// Start an asynchronous thumbnail generation
libvlc_media_thumbnail_request_t*
libvlc_media_thumbnail_request_by_pos( libvlc_media_t *md, float pos,
libvlc_media_thumbnail_request_by_pos( libvlc_instance_t *inst,
libvlc_media_t *md, float pos,
libvlc_thumbnailer_seek_speed_t speed,
unsigned int width, unsigned int height,
bool crop, libvlc_picture_type_t picture_type,
@ -1180,7 +1181,6 @@ libvlc_media_thumbnail_request_by_pos( libvlc_media_t *md, float pos,
{
assert( md );
libvlc_instance_t *inst = md->p_libvlc_instance;
libvlc_priv_t *priv = libvlc_priv(inst->p_libvlc_int);
if( unlikely( priv->p_thumbnailer == NULL ) )
return NULL;

Loading…
Cancel
Save