[vlc-devel] [PATCH 15/15] lib: media: Expose attached pictures
Thomas Guillem
thomas at gllm.fr
Thu Nov 12 17:32:20 CET 2020
Hello,
On Tue, Nov 10, 2020, at 18:40, Hugo Beauzée-Luyssen wrote:
> ---
> include/vlc/libvlc_media.h | 5 +++++
> lib/libvlc.sym | 1 +
> lib/media.c | 38 ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 44 insertions(+)
>
> diff --git a/include/vlc/libvlc_media.h b/include/vlc/libvlc_media.h
> index 904e265561..148b6e43a6 100644
> --- a/include/vlc/libvlc_media.h
> +++ b/include/vlc/libvlc_media.h
> @@ -807,6 +807,11 @@ libvlc_media_thumbnail_request_cancel(
> libvlc_media_thumbnail_request_t *p_req )
> LIBVLC_API void
> libvlc_media_thumbnail_request_destroy(
> libvlc_media_thumbnail_request_t *p_req );
>
Missing documentation
> +LIBVLC_API size_t
> +libvlc_media_get_attached_pictures( libvlc_media_t *md,
> + libvlc_picture_t*** thumbnails );
> +
Extra space
Otherwise, patch 1-14 LGTM
> +
> /**
> * Add a slave to the current media.
> *
> diff --git a/lib/libvlc.sym b/lib/libvlc.sym
> index ebdd2db629..5c93e8f70d 100644
> --- a/lib/libvlc.sym
> +++ b/lib/libvlc.sym
> @@ -71,6 +71,7 @@ libvlc_media_discoverer_start
> libvlc_media_discoverer_stop
> libvlc_media_duplicate
> libvlc_media_event_manager
> +libvlc_media_get_attached_pictures
> libvlc_media_get_codec_description
> libvlc_media_get_duration
> libvlc_media_get_meta
> diff --git a/lib/media.c b/lib/media.c
> index 7ab98de7c1..540b7c1642 100644
> --- a/lib/media.c
> +++ b/lib/media.c
> @@ -1301,3 +1301,41 @@ void libvlc_media_slaves_release(
> libvlc_media_slave_t **pp_slaves,
> }
> free( pp_slaves );
> }
> +
> +size_t
> +libvlc_media_get_attached_pictures( libvlc_media_t *md,
> + libvlc_picture_t*** pictures_out )
> +{
> + assert( md && pictures_out );
> + input_item_attachment_t **attachments;
> + int res = input_item_GetAttachments( md->p_input_item,
> &attachments );
> + if( res <= 0 )
> + {
> + *pictures_out = NULL;
> + return 0;
> + }
> + libvlc_picture_t** pictures = *pictures_out =
> + malloc( res * sizeof( *pictures ) );
> + if( !pictures )
> + {
> + for ( int i = 0; i < res; ++i )
> + vlc_input_attachment_Release( attachments[i] );
> + free( attachments );
> + return 0;
> + }
> +
> + size_t nb_pictures = 0;
> + for( int i = 0; i < res; ++i )
> + {
> + input_item_attachment_t* a = attachments[i];
> + libvlc_picture_t *pic = libvlc_picture_from_attachment( a );
> + vlc_input_attachment_Release( a );
> + if( !pic )
> + continue;
> + pictures[nb_pictures] = pic;
> + nb_pictures++;
> + }
> + free( attachments );
> +
> + return nb_pictures;
> +}
> --
> 2.28.0
>
> _______________________________________________
> 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