[vlc-commits] [Git][videolan/vlc][master] 4 commits: vlc_cxx_helpers.hpp: minor documentation fixes

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Oct 9 08:17:30 UTC 2025



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
d0a867cd by Johannes Kauffmann at 2025-10-09T07:50:50+00:00
vlc_cxx_helpers.hpp: minor documentation fixes

- - - - -
7b45bc80 by Johannes Kauffmann at 2025-10-09T07:50:50+00:00
vlc_shared_data_ptr: use suggested template declaration

Now that we require C++17, we can use the shorter template declaration.

- - - - -
93baa24b by Johannes Kauffmann at 2025-10-09T07:50:50+00:00
src/modules: use vlc_shared_data_ptr directly

Now that the template declaration of vlc_shared_data_ptr is more
reasonable, we can use the class directly instead of using the
intermediate macro.

- - - - -
40e476ad by Johannes Kauffmann at 2025-10-09T07:50:50+00:00
vlc_shared_data_ptr: remove intermediate macro

- - - - -


14 changed files:

- include/vlc_cxx_helpers.hpp
- modules/gui/qt/network/addonsmodel.cpp
- modules/gui/qt/network/vlcmediasourcewrapper.hpp
- modules/gui/qt/player/input_models.hpp
- modules/gui/qt/player/player_controller.cpp
- modules/gui/qt/player/player_controller.hpp
- modules/gui/qt/player/player_controller_p.hpp
- modules/gui/qt/playlist/playlist_item.hpp
- modules/gui/qt/tests/test_renderer_manager_model.cpp
- modules/gui/qt/util/renderer_manager.cpp
- modules/gui/qt/util/shared_input_item.hpp
- modules/gui/qt/util/varcommon_p.hpp
- modules/misc/medialibrary/fs/directory.cpp
- src/test/shared_data_ptr.cpp


Changes:

=====================================
include/vlc_cxx_helpers.hpp
=====================================
@@ -51,7 +51,7 @@ namespace
 // building as C++17 (noexcept becomes part of the function signature stating there)
 
 // Wraps a pointer with a custom releaser
-// ex: auto ptr = vlc_wrap_cptr( input_item, &input_item_Release );
+// ex: auto ptr = vlc::wrap_cptr( input_item, &input_item_Release );
 
 ///
 /// Wraps a C pointer into a std::unique_ptr
@@ -60,7 +60,7 @@ namespace
 /// T is the pointee type, and R is an arbitrary releaser type.
 ///
 /// ptr will be automatically released by calling r( ptr ) when falling out of
-/// scope (whether by returning of by throwing an exception
+/// scope (whether by returning or by throwing an exception).
 ///
 /// @param ptr a C pointer
 /// @param r An instance of a Callable type, that will be invoked with ptr
@@ -82,7 +82,7 @@ inline auto wrap_cptr( T* ptr, Releaser&& r ) noexcept
 /// releaser type.
 ///
 /// ptr will be automatically released by calling r( ptr ) when falling out of
-/// scope (whether by returning of by throwing an exception
+/// scope (whether by returning or by throwing an exception).
 ///
 /// This function is equivalent to wrap_cptr, except that the returned
 /// unique_ptr provides an operator[] for array access instead of operator* and
@@ -136,16 +136,13 @@ inline std::unique_ptr<T[], void (*)(void*)> wrap_carray( T* ptr ) noexcept
 /// To create a new shared resource wrapper type for my_type_t, simply declare:
 ///
 ///     using MyTypePtr =
-///         vlc_shared_data_ptr_type(my_type_t, my_type_Hold, my_type_Release);
+///         ::vlc::vlc_shared_data_ptr<my_type_t, &my_type_Hold, &my_type_Release>;
 ///
 /// Then use it to wrap a raw C pointer:
 ///
 ///     my_type_t *raw_ptr = /* ... */;
 ///     MyTypePtr ptr(raw_ptr);
-
-// In C++17, the template declaration could be replaced by:
-//     template<typename T, auto HOLD, auto RELEASE>
-template <typename T, typename H, typename R, H HOLD, R RELEASE>
+template <typename T, auto HOLD, auto RELEASE>
 class vlc_shared_data_ptr {
     T *ptr = nullptr;
 
@@ -271,11 +268,6 @@ public:
     }
 };
 
-// useful due to the unnecessarily complex template declaration before C++17
-#define vlc_shared_data_ptr_type(type, hold, release) \
-    ::vlc::vlc_shared_data_ptr<type, decltype(&hold), decltype(&release), \
-                               &hold, &release>
-
 #if defined(VLC_THREADS_H_) || defined(DOC)
 
 namespace threads


=====================================
modules/gui/qt/network/addonsmodel.cpp
=====================================
@@ -59,8 +59,8 @@ CHECK_ADDON_STATE_MATCH(UNINSTALLING);
 
 namespace {
 
-using AddonPtr = vlc_shared_data_ptr_type(addon_entry_t,
-                                          addon_entry_Hold, addon_entry_Release);
+using AddonPtr = ::vlc::vlc_shared_data_ptr<addon_entry_t,
+                                     &addon_entry_Hold, &addon_entry_Release>;
 
 class AddonItem {
 public:


=====================================
modules/gui/qt/network/vlcmediasourcewrapper.hpp
=====================================
@@ -24,13 +24,13 @@
 #include <vlc_media_source.h>
 #include <vlc_cxx_helpers.hpp>
 
-using MediaSourcePtr = vlc_shared_data_ptr_type(vlc_media_source_t,
-                                                vlc_media_source_Hold,
-                                                vlc_media_source_Release);
+using MediaSourcePtr = ::vlc::vlc_shared_data_ptr<vlc_media_source_t,
+                                                  &vlc_media_source_Hold,
+                                                  &vlc_media_source_Release>;
 
-using MediaTreePtr = vlc_shared_data_ptr_type(vlc_media_tree_t,
-                                              vlc_media_tree_Hold,
-                                              vlc_media_tree_Release);
+using MediaTreePtr = ::vlc::vlc_shared_data_ptr<vlc_media_tree_t,
+                                                &vlc_media_tree_Hold,
+                                                &vlc_media_tree_Release>;
 
 class MediaTreeLocker
 {


=====================================
modules/gui/qt/player/input_models.hpp
=====================================
@@ -90,7 +90,7 @@ private:
 
         QString m_title;
         //vlc_es_id_t *m_id = NULL;
-        vlc_shared_data_ptr_type(vlc_es_id_t, vlc_es_id_Hold, vlc_es_id_Release) m_id;
+        ::vlc::vlc_shared_data_ptr<vlc_es_id_t, &vlc_es_id_Hold, &vlc_es_id_Release> m_id;
         bool m_selected = false;
     };
     QList<Data> m_data;
@@ -139,7 +139,7 @@ signals:
 
 private:
     vlc_player_t* m_player;
-    typedef vlc_shared_data_ptr_type(vlc_player_title_list, vlc_player_title_list_Hold, vlc_player_title_list_Release) PlayerTitleList;
+    typedef ::vlc::vlc_shared_data_ptr<vlc_player_title_list, &vlc_player_title_list_Hold, &vlc_player_title_list_Release> PlayerTitleList;
     PlayerTitleList m_titleList;
     int m_current = -1;
     int m_count = 0;


=====================================
modules/gui/qt/player/player_controller.cpp
=====================================
@@ -49,13 +49,13 @@
 
 //PlayerController private implementation
 
-using SharedEsId = vlc_shared_data_ptr_type(vlc_es_id_t,
-                                            vlc_es_id_Hold,
-                                            vlc_es_id_Release);
+using SharedEsId = ::vlc::vlc_shared_data_ptr<vlc_es_id_t,
+                                              &vlc_es_id_Hold,
+                                              &vlc_es_id_Release>;
 
-using SharedTitleList = vlc_shared_data_ptr_type(vlc_player_title_list,
-                                                 vlc_player_title_list_Hold,
-                                                 vlc_player_title_list_Release);
+using SharedTitleList = ::vlc::vlc_shared_data_ptr<vlc_player_title_list,
+                                                   &vlc_player_title_list_Hold,
+                                                   &vlc_player_title_list_Release>;
 
 PlayerControllerPrivate::~PlayerControllerPrivate()
 {


=====================================
modules/gui/qt/player/player_controller.hpp
=====================================
@@ -38,8 +38,8 @@ Q_MOC_INCLUDE("util/renderer_manager.hpp")
 
 using vlc_player_locker = vlc_locker<vlc_player_t, vlc_player_Lock, vlc_player_Unlock>;
 
-using SharedVOutThread = vlc_shared_data_ptr_type(vout_thread_t, vout_Hold, vout_Release);
-using SharedAOut = vlc_shared_data_ptr_type(audio_output_t, aout_Hold, aout_Release);
+using SharedVOutThread = ::vlc::vlc_shared_data_ptr<vout_thread_t, &vout_Hold, &vout_Release>;
+using SharedAOut = ::vlc::vlc_shared_data_ptr<audio_output_t, &aout_Hold, &aout_Release>;
 
 class RendererManager;
 class QSignalMapper;


=====================================
modules/gui/qt/player/player_controller_p.hpp
=====================================
@@ -120,7 +120,7 @@ public:
     TrackListModel m_audioTracks;
     TrackListModel m_subtitleTracks;
 
-    vlc_shared_data_ptr_type(vlc_es_id_t, vlc_es_id_Hold, vlc_es_id_Release) m_secondarySpuEsId;
+    ::vlc::vlc_shared_data_ptr<vlc_es_id_t, &vlc_es_id_Hold, &vlc_es_id_Release> m_secondarySpuEsId;
 
     VLCDuration  m_audioDelay;
     VLCDuration  m_subtitleDelay;


=====================================
modules/gui/qt/playlist/playlist_item.hpp
=====================================
@@ -34,9 +34,9 @@
 //namespace vlc {
 //  namespace playlist {
 
-using SharedPlaylistItem = vlc_shared_data_ptr_type(vlc_playlist_item_t,
-                                                    vlc_playlist_item_Hold,
-                                                    vlc_playlist_item_Release);
+using SharedPlaylistItem = ::vlc::vlc_shared_data_ptr<vlc_playlist_item_t,
+                                                      &vlc_playlist_item_Hold,
+                                                      &vlc_playlist_item_Release>;
 
 /**
  * Playlist item wrapper.


=====================================
modules/gui/qt/tests/test_renderer_manager_model.cpp
=====================================
@@ -22,9 +22,9 @@
 
 #include "../util/renderer_manager.hpp"
 
-using RendererItemPtr = vlc_shared_data_ptr_type(vlc_renderer_item_t,
-    vlc_renderer_item_hold,
-    vlc_renderer_item_release);
+using RendererItemPtr = ::vlc::vlc_shared_data_ptr<vlc_renderer_item_t,
+    &vlc_renderer_item_hold,
+    &vlc_renderer_item_release>;
 
 class TestClass : public QObject
 {


=====================================
modules/gui/qt/util/renderer_manager.cpp
=====================================
@@ -33,7 +33,7 @@
 
 static void player_renderer_changed(vlc_player_t *, vlc_renderer_item_t *new_item, void *data);
 
-using RendererItemPtr = vlc_shared_data_ptr_type(vlc_renderer_item_t, vlc_renderer_item_hold, vlc_renderer_item_release);
+using RendererItemPtr = ::vlc::vlc_shared_data_ptr<vlc_renderer_item_t, &vlc_renderer_item_hold, &vlc_renderer_item_release>;
 using vlc_player_locker = vlc_locker<vlc_player_t, vlc_player_Lock, vlc_player_Unlock>;
 
 struct ItemEntry


=====================================
modules/gui/qt/util/shared_input_item.hpp
=====================================
@@ -30,9 +30,9 @@
 #include <vlc_cxx_helpers.hpp>
 
 
-using SharedInputItem = vlc_shared_data_ptr_type(input_item_t,
-                                                 input_item_Hold,
-                                                 input_item_Release);
+using SharedInputItem = ::vlc::vlc_shared_data_ptr<input_item_t,
+                                                   &input_item_Hold,
+                                                   &input_item_Release>;
 
 Q_DECLARE_METATYPE(SharedInputItem)
 


=====================================
modules/gui/qt/util/varcommon_p.hpp
=====================================
@@ -89,7 +89,7 @@ public:
 private:
     static void obj_hold( vout_thread_t* obj ) { vout_Hold(obj); }
     static void obj_release( vout_thread_t* obj ) { vout_Release(obj); }
-    typedef vlc_shared_data_ptr_type(vout_thread_t, obj_hold, obj_release) SharedPtr;
+    typedef ::vlc::vlc_shared_data_ptr<vout_thread_t, &obj_hold, &obj_release> SharedPtr;
     SharedPtr m_object;
 };
 
@@ -149,7 +149,7 @@ public:
 private:
     static void obj_hold( audio_output_t* obj ) { aout_Hold(obj); }
     static void obj_release( audio_output_t* obj ) { aout_Release(obj); }
-    typedef vlc_shared_data_ptr_type(audio_output_t, obj_hold, obj_release) SharedPtr;
+    typedef ::vlc::vlc_shared_data_ptr<audio_output_t, &obj_hold, &obj_release> SharedPtr;
     SharedPtr m_object;
 };
 


=====================================
modules/misc/medialibrary/fs/directory.cpp
=====================================
@@ -41,9 +41,9 @@
 #include <system_error>
 #include <vector>
 
-using InputItemPtr = vlc_shared_data_ptr_type(input_item_t,
-                                              input_item_Hold,
-                                              input_item_Release);
+using InputItemPtr = ::vlc::vlc_shared_data_ptr<input_item_t,
+                                                &input_item_Hold,
+                                                &input_item_Release>;
 
 namespace vlc {
   namespace medialibrary {


=====================================
src/test/shared_data_ptr.cpp
=====================================
@@ -21,7 +21,7 @@ static void mockrc_Release(mockrc *p)
     p->count--;
 }
 
-using MockRcPtr = vlc_shared_data_ptr_type(mockrc, mockrc_Hold, mockrc_Release);
+using MockRcPtr = ::vlc::vlc_shared_data_ptr<mockrc, &mockrc_Hold, &mockrc_Release>;
 
 static void test_raii()
 {



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/01076eeeb2b7d7692d87dc3a78db587ee5043fd5...40e476ad7460f3155176c0b71c276a8f779f5aef

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/01076eeeb2b7d7692d87dc3a78db587ee5043fd5...40e476ad7460f3155176c0b71c276a8f779f5aef
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list