]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Use boost::timer instead of handwritten timer.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Apr 2011 06:27:34 +0000 (06:27 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 29 Apr 2011 06:27:34 +0000 (06:27 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@667 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/utility/timer.h
core/mixer/frame_mixer_device.cpp
modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp
modules/ffmpeg/consumer/ffmpeg_consumer.cpp
modules/flash/producer/flash_producer.cpp
modules/oal/consumer/oal_consumer.cpp
modules/ogl/consumer/ogl_consumer.cpp

index 2f49c02df8b9474eee50018958654ec9b7e3629a..16108268524d9015a771aeabbebb89247c38eec9 100644 (file)
 \r
 namespace caspar {\r
        \r
-class timer\r
-{\r
-public:\r
-       timer() : time_(timeGetTime()){}\r
-\r
-       double elapsed()\r
-       {\r
-               return static_cast<double>(timeGetTime() - time_)/1000.0;\r
-       }\r
-       \r
-       void reset()\r
-       {\r
-               time_ = timeGetTime();\r
-       }\r
-       \r
-private:       \r
-       DWORD time_;\r
-};\r
-\r
 class high_prec_timer\r
 {\r
 public:\r
index 9bd7f56f20258ed409784b367f08d0f199a96cd0..af789e3d616af0d9616b5c7725723c48e74df0f5 100644 (file)
@@ -41,6 +41,7 @@
 \r
 #include <boost/fusion/container/map.hpp>\r
 #include <boost/fusion/include/at_key.hpp>\r
+#include <boost/timer.hpp>\r
 \r
 #include <unordered_map>\r
 \r
@@ -83,8 +84,8 @@ struct frame_mixer_device::implementation : boost::noncopyable
        const core::video_format_desc format_desc_;\r
 \r
        safe_ptr<diagnostics::graph> diag_;\r
-       timer perf_timer_;\r
-       timer wait_perf_timer_;\r
+       boost::timer perf_timer_;\r
+       boost::timer wait_perf_timer_;\r
 \r
        audio_mixer     audio_mixer_;\r
        image_mixer image_mixer_;\r
@@ -176,7 +177,7 @@ public:
        {                       \r
                executor_.begin_invoke([=]\r
                {                       \r
-                       perf_timer_.reset();\r
+                       perf_timer_.restart();\r
 \r
                        auto image_future = mix_image(frames);\r
                        auto audio = mix_audio(frames);\r
@@ -187,7 +188,7 @@ public:
                        output_(make_safe<const gpu_read_frame>(std::move(image), std::move(audio)));\r
 \r
                        diag_->update_value("tick-time", static_cast<float>(wait_perf_timer_.elapsed()/format_desc_.interval*0.5));\r
-                       wait_perf_timer_.reset();\r
+                       wait_perf_timer_.restart();\r
 \r
                        diag_->set_value("input-buffer", static_cast<float>(executor_.size())/static_cast<float>(executor_.capacity()));\r
                });\r
index 8c4f8bde48e20f057135a4f57afd86db8887816b..1b4a874bcbeb9646b4bed13b7993a3fa502c03aa 100644 (file)
@@ -33,6 +33,8 @@
 \r
 #include <tbb/concurrent_queue.h>\r
 \r
+#include <boost/timer.hpp>\r
+\r
 #include <BlueVelvet4.h>\r
 #include <BlueHancUtils.h>\r
 \r
@@ -86,7 +88,7 @@ struct bluefish_consumer::implementation : boost::noncopyable
        const unsigned int      device_index_;\r
 \r
        std::shared_ptr<diagnostics::graph> graph_;\r
-       timer perf_timer_;\r
+       boost::timer perf_timer_;\r
 \r
        boost::unique_future<void> active_;\r
                        \r
@@ -306,7 +308,7 @@ public:
 \r
                                std::rotate(reserved_frames_.begin(), reserved_frames_.begin() + 1, reserved_frames_.end());\r
                                graph_->update_value("tick-time", static_cast<float>(perf_timer_.elapsed()/format_desc_.interval*0.5));\r
-                               perf_timer_.reset();\r
+                               perf_timer_.restart();\r
                        }\r
                        catch(...)\r
                        {\r
@@ -350,6 +352,7 @@ bluefish_consumer::bluefish_consumer(unsigned int device_index, bool embed_audio
 bluefish_consumer::bluefish_consumer(bluefish_consumer&& other) : impl_(std::move(other.impl_)){}\r
 void bluefish_consumer::initialize(const core::video_format_desc& format_desc)\r
 {\r
+       // TODO: Ugly\r
        impl_.reset(new implementation(impl_->device_index_, impl_->embed_audio_));\r
        impl_->initialize(format_desc);\r
 }\r
index 67024b3899d2fdb116975dcb2a341e373c1cd265..5a56633736832e2834bd69ca58b2948dc9522e25 100644 (file)
@@ -38,6 +38,7 @@
 #include <tbb/concurrent_queue.h>\r
 \r
 #include <boost/circular_buffer.hpp>\r
+#include <boost/timer.hpp>\r
 \r
 #include <array>\r
 \r
@@ -66,7 +67,7 @@ struct decklink_output : public IDeckLinkVideoOutputCallback, public IDeckLinkAu
        tbb::atomic<bool> is_running_;\r
 \r
        std::shared_ptr<diagnostics::graph> graph_;\r
-       timer perf_timer_;\r
+       boost::timer perf_timer_;\r
 \r
        std::array<std::pair<void*, CComPtr<IDeckLinkMutableVideoFrame>>, 3> reserved_frames_;\r
        boost::circular_buffer<std::vector<short>> audio_container_;\r
@@ -269,7 +270,7 @@ public:
 \r
                std::rotate(reserved_frames_.begin(), reserved_frames_.begin() + 1, reserved_frames_.end());\r
                graph_->update_value("tick-time", static_cast<float>(perf_timer_.elapsed()/format_desc_.interval*0.5));\r
-               perf_timer_.reset();\r
+               perf_timer_.restart();\r
        }\r
 \r
        void send(const safe_ptr<const core::read_frame>& frame)\r
index 50a7f703b48ce510aac76d7a07f130d5c42b3a57..bdbda90edce275e113cb7af8750cc03af8b1b97f 100644 (file)
@@ -401,6 +401,7 @@ void ffmpeg_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_-
 size_t ffmpeg_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
 void ffmpeg_consumer::initialize(const core::video_format_desc& format_desc)\r
 {\r
+       // TODO: Ugly\r
        impl_.reset(new implementation(impl_->filename_));\r
        impl_->initialize(format_desc);\r
 }\r
index 1f623828bbb758d9c9f27a9d8a788c3bbd10a5fc..9decd746c9e1754a2bfa4691e136cee2a8821122 100644 (file)
@@ -42,6 +42,7 @@
 \r
 #include <boost/filesystem.hpp>\r
 #include <boost/thread.hpp>\r
+#include <boost/timer.hpp>\r
 \r
 #include <functional>\r
 \r
@@ -73,7 +74,7 @@ class flash_renderer
        safe_ptr<core::basic_frame> head_;\r
        \r
        safe_ptr<diagnostics::graph> graph_;\r
-       timer perf_timer_;\r
+       boost::timer perf_timer_;\r
 \r
        high_prec_timer timer_;\r
        \r
@@ -182,7 +183,7 @@ private:
                else\r
                        timer_.tick(frame_time);\r
 \r
-               perf_timer_.reset();\r
+               perf_timer_.restart();\r
                ax_->Tick();\r
 \r
                if(ax_->InvalidRect())\r
index 5d22b0600ca261e362d1e49e85a53040e5666717..9d43778cccc00ccea6a1a376de1465b69ad40cdf 100644 (file)
@@ -31,6 +31,7 @@
 #include <SFML/Audio.hpp>\r
 \r
 #include <boost/circular_buffer.hpp>\r
+#include <boost/timer.hpp>\r
 \r
 #include <tbb/concurrent_queue.h>\r
 \r
@@ -39,7 +40,7 @@ namespace caspar {
 struct oal_consumer::implementation : public sf::SoundStream, boost::noncopyable\r
 {\r
        safe_ptr<diagnostics::graph> graph_;\r
-       timer perf_timer_;\r
+       boost::timer perf_timer_;\r
 \r
        tbb::concurrent_bounded_queue<std::vector<short>> input_;\r
        boost::circular_buffer<std::vector<short>> container_;\r
@@ -95,7 +96,7 @@ public:
                data.NbSamples = container_.back().size();      \r
                \r
                graph_->update_value("tick-time", static_cast<float>(perf_timer_.elapsed()/format_desc_.interval*0.5));         \r
-               perf_timer_.reset();\r
+               perf_timer_.restart();\r
 \r
                return is_running_;\r
        }\r
index f981ba5f2bc51aa39d2adb00ecbe11628d58c818..e52674152f47c5777791a11cf788a67b474e3256 100644 (file)
@@ -37,6 +37,7 @@
 #include <common/utility/timer.h>\r
 \r
 #include <boost/thread.hpp>\r
+#include <boost/timer.hpp>\r
 \r
 #include <algorithm>\r
 #include <array>\r
@@ -45,7 +46,7 @@ namespace caspar {
 \r
 struct ogl_consumer::implementation : boost::noncopyable\r
 {              \r
-       timer clock_;\r
+       boost::timer clock_;\r
        boost::unique_future<void> active_;\r
                \r
        float width_;\r
@@ -65,7 +66,7 @@ struct ogl_consumer::implementation : boost::noncopyable
        sf::Window window_;\r
        \r
        safe_ptr<diagnostics::graph> graph_;\r
-       timer perf_timer_;\r
+       boost::timer perf_timer_;\r
 \r
        size_t square_width_;\r
        size_t square_height_;\r
@@ -274,7 +275,7 @@ public:
                active_.get();\r
                active_ = executor_.begin_invoke([=]\r
                {\r
-                       perf_timer_.reset();\r
+                       perf_timer_.restart();\r
                        sf::Event e;\r
                        while(window_.GetEvent(e))\r
                        {\r
@@ -301,6 +302,7 @@ void ogl_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->se
 size_t ogl_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
 void ogl_consumer::initialize(const core::video_format_desc& format_desc)\r
 {\r
+       // TODO: Ugly\r
        if(impl_->executor_.is_running())\r
                impl_.reset(new implementation(impl_->screen_index_, impl_->stretch_, impl_->windowed_));\r
        impl_->initialize(format_desc);\r