]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 29 Oct 2011 12:43:49 +0000 (12:43 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 29 Oct 2011 12:43:49 +0000 (12:43 +0000)
core/consumer/frame_consumer.cpp
core/consumer/frame_consumer.h
modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp
modules/oal/consumer/oal_consumer.cpp
modules/ogl/consumer/ogl_consumer.cpp

index b6c5d38a4faa77655241b32ca575f4c5005108b8..626953c260164ede227eb287ba02f3102fa2bb2f 100644 (file)
@@ -101,6 +101,7 @@ public:
        virtual std::wstring print() const                                                                              {return consumer_->print();}\r
        virtual bool has_synchronization_clock() const                                                  {return consumer_->has_synchronization_clock();}\r
        virtual const core::video_format_desc& get_video_format_desc() const    {return consumer_->get_video_format_desc();}\r
+       virtual size_t buffer_depth() const                                                                             {return consumer_->buffer_depth();}\r
 };\r
 \r
 Concurrency::concurrent_vector<std::shared_ptr<consumer_factory_t>> g_factories;\r
index 4e6fef7323ae9a5c4de4c62d3609952eba78ac1c..af4b7f22f49551d9be3105a42e5124280a8ffbf4 100644 (file)
@@ -45,7 +45,7 @@ struct frame_consumer : boost::noncopyable
        virtual std::wstring print() const = 0;\r
        virtual bool has_synchronization_clock() const {return true;}\r
        virtual const core::video_format_desc& get_video_format_desc() const = 0; // nothrow\r
-\r
+       virtual size_t buffer_depth() const = 0;\r
        static const safe_ptr<frame_consumer>& empty()\r
        {\r
                struct empty_frame_consumer : public frame_consumer\r
@@ -56,6 +56,7 @@ struct frame_consumer : boost::noncopyable
                        virtual std::wstring print() const {return L"empty";}\r
                        virtual bool has_synchronization_clock() const {return false;}\r
                        virtual const core::video_format_desc& get_video_format_desc() const{return format_desc;}; // nothrow\r
+                       virtual size_t buffer_depth() const {return 0;}\r
                };\r
                static safe_ptr<frame_consumer> consumer = make_safe<empty_frame_consumer>();\r
                return consumer;\r
index 7af863ed901b2d336409ecf15b2371672591f013..01a9adfcdfc05a88639f33679d3a9b4229bc58ab 100644 (file)
@@ -321,6 +321,11 @@ public:
                return consumer_->get_video_format_desc();\r
        }\r
        \r
+       virtual size_t buffer_depth() const\r
+       {\r
+               return 0;\r
+       }\r
+\r
        virtual std::wstring print() const\r
        {\r
                if(consumer_)\r
index 9895fac1017938bf67154049f9399b55d997cc73..80d09ae31b5af9eb031ec73a11670f2c9a344bf0 100644 (file)
@@ -450,6 +450,11 @@ public:
                context_->send(frame);\r
                return true;\r
        }\r
+\r
+       virtual size_t buffer_depth() const\r
+       {\r
+               return config_.preroll_count();\r
+       }\r
        \r
        virtual std::wstring print() const\r
        {\r
index 70593859380ae1a751af1d8eab2f84fec61fcc07..72b065f477963a7512b2fea12e806327db67c526 100644 (file)
@@ -110,6 +110,11 @@ public:
 \r
                return is_running_;\r
        }\r
+       \r
+       virtual size_t buffer_depth() const\r
+       {\r
+               return 2;\r
+       }\r
 \r
        virtual std::wstring print() const\r
        {\r
index 5048e023d23680cfeefc77b3cdc0babb76ca6762..0ee3a0717103592137bdf1f10b73ae97f2e76e94 100644 (file)
@@ -357,7 +357,7 @@ public:
                std::rotate(pbos_.begin(), pbos_.begin() + 1, pbos_.end());\r
        }\r
 \r
-       void send(const safe_ptr<core::read_frame>& frame)\r
+       virtual void send(const safe_ptr<core::read_frame>& frame)\r
        {\r
                if(exception_.has_value())\r
                        std::rethrow_exception(exception_.value());\r
@@ -368,8 +368,8 @@ public:
                else\r
                        Concurrency::send(frame_buffer_, safe_ptr<core::read_frame>(frame.get(), [frame, ticket](core::read_frame*){}));\r
        }\r
-               \r
-       std::wstring print() const\r
+                       \r
+       virtual std::wstring print() const\r
        {       \r
                return  L"ogl[" + boost::lexical_cast<std::wstring>(config_.screen_index) + L"|" + format_desc_.name + L"]";\r
        }\r
@@ -463,6 +463,11 @@ public:
        {\r
                return false;\r
        }\r
+       \r
+       virtual size_t buffer_depth() const\r
+       {\r
+               return 1;\r
+       }\r
 \r
        virtual const core::video_format_desc& get_video_format_desc() const\r
        {\r