]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Simplified conversion between shared_ptr and safe_ptr through a make_safe...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 28 Apr 2011 14:58:38 +0000 (14:58 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 28 Apr 2011 14:58:38 +0000 (14:58 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@666 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/memory/safe_ptr.h
modules/ffmpeg/producer/ffmpeg_producer.cpp

index 89e62e9770bedc5698c0f2ad2eac6b04b933d805..cd92f78be6b651c929085cbdb3ead615e7134a97 100644 (file)
@@ -205,6 +205,18 @@ safe_ptr<T> dynamic_pointer_cast(const safe_ptr<U>& p)
        return safe_ptr<T>(temp);\r
 }\r
 \r
+template<typename T>\r
+safe_ptr<T> make_safe(const std::shared_ptr<T>& ptr)\r
+{\r
+       return safe_ptr<T>(ptr);\r
+}\r
+\r
+template<typename T>\r
+safe_ptr<T> make_safe(std::shared_ptr<T>&& ptr)\r
+{\r
+       return safe_ptr<T>(std::move(ptr));\r
+}\r
+\r
 template<typename T>\r
 safe_ptr<T> make_safe()\r
 {\r
index c449ec34c71fc382ab9e202363c6298bb4e082d4..11254790dde34cc980b922e626443576811be5dc 100644 (file)
@@ -161,7 +161,7 @@ public:
                                        audio_chunk_channel_.pop_front();\r
                                }\r
                                                        \r
-                               ouput_channel_.push(safe_ptr<core::write_frame>(frame));                                \r
+                               ouput_channel_.push(make_safe(frame));                          \r
                        }                               \r
 \r
                        if(ouput_channel_.empty() && video_packet.empty() && audio_packet.empty())                      \r