[vlc-devel] [PATCH] libvlc: add a function to release a viewpoint
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Mon Jun 3 15:07:50 CEST 2019
On Mon, Jun 3, 2019, at 3:01 PM, Steve Lhomme wrote:
> Allocated by libvlc_video_new_viewpoint()
>
> And deprecate the one that said free() could be used.
> ---
> include/vlc/deprecated.h | 13 +++++++++++++
> include/vlc/libvlc_media.h | 4 ++--
> include/vlc/libvlc_media_player.h | 16 ++++++++++++----
> lib/libvlc.sym | 2 ++
> lib/video.c | 7 ++++++-
> 5 files changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/include/vlc/deprecated.h b/include/vlc/deprecated.h
> index 82ac660f94..71b11d97ef 100644
> --- a/include/vlc/deprecated.h
> +++ b/include/vlc/deprecated.h
> @@ -110,6 +110,19 @@ LIBVLC_DEPRECATED LIBVLC_API bool
> LIBVLC_DEPRECATED LIBVLC_API
> void libvlc_playlist_play( libvlc_instance_t *p_instance );
>
> +/**
> + * Create a video viewpoint structure.
> + *
> + * \deprecated Use libvlc_video_create_viewpoint() instead
> + *
> + * \version LibVLC 3.0.0 and later
> + *
> + * \return video viewpoint or NULL
> + * (it result must be released with free()).
> + */
> +LIBVLC_DEPRECATED LIBVLC_API
> +libvlc_video_viewpoint_t *libvlc_video_new_viewpoint(void);
> +
> /** @}*/
>
> # ifdef __cplusplus
> diff --git a/include/vlc/libvlc_media.h b/include/vlc/libvlc_media.h
> index cd335a6e08..c705125233 100644
> --- a/include/vlc/libvlc_media.h
> +++ b/include/vlc/libvlc_media.h
> @@ -169,7 +169,7 @@ typedef enum libvlc_video_projection_t
> /**
> * Viewpoint
> *
> - * \warning allocate using libvlc_video_new_viewpoint()
> + * \warning allocate using libvlc_video_create_viewpoint()
> */
> typedef struct libvlc_video_viewpoint_t
> {
> @@ -737,7 +737,7 @@ LIBVLC_API void
> * Get media descriptor's user_data. user_data is specialized data
> * accessed by the host application, VLC.framework uses it as a
> pointer to
> * an native object that references a libvlc_media_t pointer
> - *
> + *
> * \see libvlc_media_set_user_data
> *
> * \param p_md media descriptor object
> diff --git a/include/vlc/libvlc_media_player.h
> b/include/vlc/libvlc_media_player.h
> index 8b8941c2de..e9b31ab29e 100644
> --- a/include/vlc/libvlc_media_player.h
> +++ b/include/vlc/libvlc_media_player.h
> @@ -1501,12 +1501,20 @@ LIBVLC_API void
> libvlc_video_set_sample_aspect_ratio( libvlc_media_player_t *p_m
> /**
> * Create a video viewpoint structure.
> *
> - * \version LibVLC 3.0.0 and later
> + * \version LibVLC 4.0.0 and later
> *
> * \return video viewpoint or NULL
> - * (the result must be released with free()).
> + * (it result must be released with
> libvlc_video_release_viewpoint()).
> + */
> +LIBVLC_API libvlc_video_viewpoint_t
> *libvlc_video_create_viewpoint(void);
> +
> +/**
> + * Release a viewpoint returned by libvlc_video_create_viewpoint()
> + *
> + * \param p_viewpoint viewpoint to release
> + * \version LibVLC 4.0.0 and later
> */
> -LIBVLC_API libvlc_video_viewpoint_t *libvlc_video_new_viewpoint(void);
> +LIBVLC_API void
> libvlc_video_release_viewpoint(libvlc_video_viewpoint_t *p_viewpoint);
>
> /**
> * Update the video viewpoint information.
> @@ -1516,7 +1524,7 @@ LIBVLC_API libvlc_video_viewpoint_t
> *libvlc_video_new_viewpoint(void);
> * \version LibVLC 3.0.0 and later
> *
> * \param p_mi the media player
> - * \param p_viewpoint video viewpoint allocated via
> libvlc_video_new_viewpoint()
> + * \param p_viewpoint video viewpoint allocated via
> libvlc_video_create_viewpoint()
> * \param b_absolute if true replace the old viewpoint with the new
> one. If
> * false, increase/decrease it.
> * \return -1 in case of error, 0 otherwise
> diff --git a/lib/libvlc.sym b/lib/libvlc.sym
> index 58c5221a47..547d8010f8 100644
> --- a/lib/libvlc.sym
> +++ b/lib/libvlc.sym
> @@ -255,6 +255,8 @@ libvlc_video_set_teletext
> libvlc_video_set_track
> libvlc_video_take_snapshot
> libvlc_video_new_viewpoint
> +libvlc_video_create_viewpoint
> +libvlc_video_release_viewpoint
> libvlc_video_update_viewpoint
> libvlc_set_exit_handler
> libvlc_audio_filter_list_get
> diff --git a/lib/video.c b/lib/video.c
> index fa6985c012..427987cb13 100644
> --- a/lib/video.c
> +++ b/lib/video.c
> @@ -256,7 +256,7 @@ void libvlc_video_set_sample_aspect_ratio(
> libvlc_media_player_t *p_mi,
> free(psz_aspect);
> }
>
> -libvlc_video_viewpoint_t *libvlc_video_new_viewpoint(void)
> +libvlc_video_viewpoint_t *libvlc_video_create_viewpoint(void)
> {
> libvlc_video_viewpoint_t *p_vp = malloc(sizeof *p_vp);
> if (unlikely(p_vp == NULL))
> @@ -265,6 +265,11 @@ libvlc_video_viewpoint_t *libvlc_video_new_viewpoint(void)
> return p_vp;
> }
>
> +void libvlc_video_release_viewpoint(libvlc_video_viewpoint_t *p_viewpoint)
> +{
> + free(p_viewpoint);
> +}
> +
> int libvlc_video_update_viewpoint( libvlc_media_player_t *p_mi,
> const libvlc_video_viewpoint_t *p_viewpoint,
> bool b_absolute )
Hi,
Do we really have to keep the deprecated version? Since we're breaking the API might as well remove the old variants at once no?
--
Hugo Beauzée-Luyssen
hugo at beauzee.fr
More information about the vlc-devel
mailing list