]> 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>
Wed, 2 Feb 2011 19:14:31 +0000 (19:14 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 2 Feb 2011 19:14:31 +0000 (19:14 +0000)
common/diagnostics/graph.cpp
core/producer/transition/transition_producer.cpp
mixer/frame_mixer_device.cpp
shell/caspar.config
shell/shell.vcxproj

index a9d5937cb5617ff3adab6336bf4f89d59d4ba74e..e5529a91d46420c8384b15e61ebd7e01128f6c9b 100644 (file)
@@ -139,8 +139,11 @@ struct graph::implementation : public drawable
 {\r
        std::map<std::string, diagnostics::line> lines_;\r
        std::string name_;\r
+       float height_scale_;\r
 \r
-       implementation(const std::string& name) : name_(name){}\r
+       implementation(const std::string& name) \r
+               : name_(name)\r
+               , height_scale_(0){}\r
 \r
        void update(const std::string& name, float value)\r
        {\r
@@ -177,51 +180,56 @@ struct graph::implementation : public drawable
 private:\r
        void render(sf::RenderTarget& target)\r
        {\r
-               const size_t text_size = 15;\r
-               const size_t text_margin = 2;\r
-               const size_t text_offset = text_size+text_margin*2;\r
-\r
-               sf::String text(name_.c_str(), sf::Font::GetDefaultFont(), text_size);\r
-               text.SetStyle(sf::String::Italic);\r
-               text.Move(text_margin, text_margin);\r
-               \r
                glPushMatrix();\r
-               glScaled(1.0f/GetScale().x, 1.0f/GetScale().y, 1.0f);\r
-               target.Draw(text);\r
-               float x_offset = text.GetPosition().x + text.GetRect().Right + text_margin*4;\r
-               for(auto it = lines_.begin(); it != lines_.end(); ++it)\r
-               {                                               \r
-                       sf::String line_text(it->first, sf::Font::GetDefaultFont(), text_size);\r
-                       line_text.SetPosition(x_offset, text_margin);\r
-                       auto c = it->second.get_color();\r
-                       line_text.SetColor(sf::Color(c.red*255.0f, c.green*255.0f, c.blue*255.0f, c.alpha*255.0f));\r
-                       target.Draw(line_text);\r
-                       x_offset = line_text.GetRect().Right + text_margin*2;\r
-               }\r
-\r
-               glDisable(GL_TEXTURE_2D);\r
-               glPopMatrix();\r
+                       glScaled(1.0f, height_scale_, 1.0f);\r
+                       height_scale_ = std::min(1.0f, height_scale_+0.1f);\r
 \r
-               glBegin(GL_QUADS);\r
-                       glColor4f(1.0f, 1.0f, 1.0f, 0.2f);      \r
-                       glVertex2f(1.0f, 0.99f);\r
-                       glVertex2f(0.0f, 0.99f);\r
-                       glVertex2f(0.0f, 0.01f);        \r
-                       glVertex2f(1.0f, 0.01f);        \r
-               glEnd();\r
+                       const size_t text_size = 15;\r
+                       const size_t text_margin = 2;\r
+                       const size_t text_offset = text_size+text_margin*2;\r
 \r
-               glPushMatrix();\r
-               glTranslated(0.0f, text_offset/GetScale().y, 1.0f);\r
-               glScaled(1.0f, 1.0-text_offset/GetScale().y, 1.0f);\r
+                       sf::String text(name_.c_str(), sf::Font::GetDefaultFont(), text_size);\r
+                       text.SetStyle(sf::String::Italic);\r
+                       text.Move(text_margin, text_margin);\r
+               \r
+                       glPushMatrix();\r
+                               glScaled(1.0f/GetScale().x, 1.0f/GetScale().y, 1.0f);\r
+                               target.Draw(text);\r
+                               float x_offset = text.GetPosition().x + text.GetRect().Right + text_margin*4;\r
+                               for(auto it = lines_.begin(); it != lines_.end(); ++it)\r
+                               {                                               \r
+                                       sf::String line_text(it->first, sf::Font::GetDefaultFont(), text_size);\r
+                                       line_text.SetPosition(x_offset, text_margin);\r
+                                       auto c = it->second.get_color();\r
+                                       line_text.SetColor(sf::Color(c.red*255.0f, c.green*255.0f, c.blue*255.0f, c.alpha*255.0f));\r
+                                       target.Draw(line_text);\r
+                                       x_offset = line_text.GetRect().Right + text_margin*2;\r
+                               }\r
+\r
+                               glDisable(GL_TEXTURE_2D);\r
+                       glPopMatrix();\r
+\r
+                       glBegin(GL_QUADS);\r
+                               glColor4f(1.0f, 1.0f, 1.0f, 0.2f);      \r
+                               glVertex2f(1.0f, 0.99f);\r
+                               glVertex2f(0.0f, 0.99f);\r
+                               glVertex2f(0.0f, 0.01f);        \r
+                               glVertex2f(1.0f, 0.01f);        \r
+                       glEnd();\r
+\r
+                       glPushMatrix();\r
+                               glTranslated(0.0f, text_offset/GetScale().y, 1.0f);\r
+                               glScaled(1.0f, 1.0-text_offset/GetScale().y, 1.0f);\r
                \r
-               target.Draw(diagnostics::guide(1.0f, color(1.0f, 1.0f, 1.0f, 0.6f)));\r
-               target.Draw(diagnostics::guide(0.0f, color(1.0f, 1.0f, 1.0f, 0.6f)));\r
+                               target.Draw(diagnostics::guide(1.0f, color(1.0f, 1.0f, 1.0f, 0.6f)));\r
+                               target.Draw(diagnostics::guide(0.0f, color(1.0f, 1.0f, 1.0f, 0.6f)));\r
 \r
-               for(auto it = lines_.begin(); it != lines_.end(); ++it)         \r
-                       target.Draw(it->second);\r
+                               for(auto it = lines_.begin(); it != lines_.end(); ++it)         \r
+                                       target.Draw(it->second);\r
                \r
-               glPopMatrix();\r
+                       glPopMatrix();\r
 \r
+               glPopMatrix();\r
        }\r
 \r
        implementation(implementation&);\r
index 1b2a00e3214ac2580eec58efd7d3edf890c29049..0f92332ff5add1e47142e88d94989c4813d8b2f9 100644 (file)
@@ -21,6 +21,8 @@
 \r
 #include "transition_producer.h"\r
 \r
+#include <common/diagnostics/graph.h>\r
+#include <common/utility/timer.h>\r
 #include <core/video_format.h>\r
 \r
 #include <mixer/frame/draw_frame.h>\r
@@ -44,11 +46,20 @@ struct transition_producer::implementation : boost::noncopyable
 \r
        std::shared_ptr<frame_factory>  frame_factory_;\r
 \r
+       safe_ptr<diagnostics::graph> graph_;\r
+       timer                                        perf_timer_;\r
+\r
        implementation(const safe_ptr<frame_producer>& dest, const transition_info& info) \r
                : current_frame_(0)\r
                , info_(info)\r
                , dest_producer_(dest)\r
-               , source_producer_(frame_producer::empty()){}\r
+               , source_producer_(frame_producer::empty())\r
+               , graph_(diagnostics::create_graph(narrow(print())))\r
+       {\r
+               graph_->guide("frame-time", 0.5);\r
+               graph_->set_color("frame-time",  diagnostics::color(1.0f, 0.0f, 0.0f));\r
+               graph_->set_color("frames-left",  diagnostics::color(0.0f, 1.0f, 0.0f));\r
+       }\r
                                \r
        void initialize(const safe_ptr<frame_factory>& frame_factory)\r
        {\r
@@ -65,8 +76,17 @@ struct transition_producer::implementation : boost::noncopyable
        {\r
                source_producer_ = producer;\r
        }\r
-               \r
+\r
        safe_ptr<draw_frame> receive()\r
+       {\r
+               perf_timer_.reset();\r
+               auto frame = do_receive();\r
+               graph_->update("frame-time", static_cast<float>(perf_timer_.elapsed()/frame_factory_->get_video_format_desc().interval*0.5));\r
+               graph_->update("frames-left", static_cast<float>(info_.duration-current_frame_)/static_cast<float>(info_.duration));\r
+               return frame;\r
+       }\r
+               \r
+       safe_ptr<draw_frame> do_receive()\r
        {\r
                if(current_frame_++ >= info_.duration)\r
                        return draw_frame::eof();\r
@@ -156,7 +176,7 @@ struct transition_producer::implementation : boost::noncopyable
 \r
        std::wstring print() const\r
        {\r
-               return L"transition[" + (source_producer_->print()) + L" -> " + (dest_producer_->print()) + L"]";\r
+               return L"transition[-> " + (dest_producer_->print()) + L"]";\r
        }\r
 };\r
 \r
index c6abc32efbe896f9b77aff7d05714b9fcd2c3218..362d92daf3b153d40a4d47558e7c42a1616a63c9 100644 (file)
@@ -53,7 +53,7 @@ public:
        {\r
                graph_->guide("frame-time", 0.5f);      \r
                graph_->set_color("frame-time", diagnostics::color(1.0f, 0.0f, 0.0f));\r
-               graph_->set_color("frame-wait", diagnostics::color(0.1f, 0.7f, 0.8f));\r
+               graph_->set_color("output-wait", diagnostics::color(0.1f, 0.7f, 0.8f));\r
                graph_->set_color("output-buffer", diagnostics::color( 0.0f, 1.0f, 0.0f));              \r
                executor_.start();\r
                executor_.set_capacity(2);\r
@@ -90,7 +90,7 @@ public:
 \r
                        wait_perf_timer_.reset();\r
                        output_(make_safe<const read_frame>(std::move(image.get()), std::move(audio)));\r
-                       graph_->update("frame-wait", static_cast<float>(wait_perf_timer_.elapsed()/format_desc_.interval*0.5));\r
+                       graph_->update("output-wait", static_cast<float>(wait_perf_timer_.elapsed()/format_desc_.interval*0.5));\r
                });\r
                graph_->update("output-buffer", static_cast<float>(executor_.size())/static_cast<float>(executor_.capacity()));\r
        }\r
index cb91e85bade7a36fe480e884f318549f76890c25..59f492d0a39ec3e1201bc7267ae298c36b1ef5ac 100644 (file)
@@ -9,7 +9,7 @@
   </paths>\r
   <channels>\r
     <channel>\r
-      <videomode>PAL</videomode>\r
+      <videomode>1080i5000</videomode>\r
       <consumers>\r
         <ogl>\r
           <device>1</device>\r
           <windowed>true</windowed>\r
         </ogl>\r
         <audio/>\r
-        <bluefish>\r
+        <!--bluefish>\r
           <embedded-audio>true</embedded-audio>\r
           <device>1</device>\r
-        </bluefish>\r
+        </bluefish-->\r
         <!--decklink>\r
           <device>1</device>\r
           <embedded-audio>true</embedded-audio>\r
index 2fda5baf9f39b22c67980feceff20d8ec444b40f..837b6cbac5f9901d1f8f722e6e7d553cfe326827 100644 (file)
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>sfml-system-lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r