[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