[vlc-devel] [PATCH] libvlc: add a function to release a viewpoint

Steve Lhomme robux4 at ycbcr.xyz
Tue Jun 4 11:20:26 CEST 2019


Allocated by libvlc_video_create_viewpoint()

And deprecate the one that said free() could be used.
---
 include/vlc/libvlc_media.h        |  4 ++--
 include/vlc/libvlc_media_player.h | 17 +++++++++++++----
 lib/libvlc.sym                    |  3 ++-
 lib/video.c                       |  7 ++++++-
 4 files changed, 23 insertions(+), 8 deletions(-)

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..5a32c4be7a 100644
--- a/include/vlc/libvlc_media_player.h
+++ b/include/vlc/libvlc_media_player.h
@@ -1501,12 +1501,21 @@ 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
+ * \note formerly known as libvlc_video_new_viewpoint()
+ * \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 +1525,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 a7645231d3..fad5f3e697 100644
--- a/lib/libvlc.sym
+++ b/lib/libvlc.sym
@@ -249,7 +249,8 @@ libvlc_video_set_spu_delay
 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 dd5f9a534b..366afb1d6d 100644
--- a/lib/video.c
+++ b/lib/video.c
@@ -255,7 +255,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))
@@ -264,6 +264,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 )
-- 
2.17.1



More information about the vlc-devel mailing list