\r
namespace caspar {\r
\r
-double next_double(std::fstream& fileStream)\r
-{\r
- std::vector<char> bytes(8);\r
-\r
- auto tmp2 = fileStream.tellg();\r
- tmp2;\r
-\r
- fileStream.read(bytes.data(), 8);\r
- \r
- auto tmp3 = fileStream.gcount();\r
- tmp3;\r
-\r
- tmp2 = fileStream.tellg();\r
- tmp2;\r
-\r
- fileStream.seekg(1, std::ios::cur);\r
- \r
- tmp2 = fileStream.tellg();\r
- tmp2;\r
-\r
- std::reverse(bytes.begin(), bytes.end());\r
- double* tmp = (double*)bytes.data();\r
- \r
- return *tmp;\r
-} \r
-\r
-bool next_bool(std::fstream& fileStream)\r
-{\r
- std::vector<char> bytes(1);\r
- fileStream.read(bytes.data(), bytes.size());\r
- fileStream.seekg(1, std::ios::cur);\r
- return bytes[0] != 0;\r
-}\r
-\r
std::map<std::string, std::string> read_flv_meta_info(const std::string& filename)\r
{\r
std::map<std::string, std::string> values;\r
char data_type = *ptr++;\r
switch(data_type)\r
{\r
- case 0:\r
+ case 0: // double\r
{\r
std::reverse(ptr, ptr+8);\r
values[name] = boost::lexical_cast<std::string>(*(double*)(ptr));\r
\r
break;\r
}\r
- case 1:\r
+ case 1: // bool\r
{\r
values[name] = boost::lexical_cast<std::string>(*ptr != 0);\r
ptr += 2;\r
\r
namespace caspar {\r
\r
-static const size_t MAX_BUFFER_COUNT = 50;\r
+static const size_t MAX_BUFFER_COUNT = 100;\r
static const size_t MIN_BUFFER_COUNT = 4;\r
-static const size_t MAX_BUFFER_SIZE = 32 * 1000000;\r
+static const size_t MAX_BUFFER_SIZE = 16 * 1000000;\r
\r
struct input::implementation : boost::noncopyable\r
{ \r
read_next_packet();\r
\r
graph_->set_color("seek", diagnostics::color(1.0f, 0.5f, 0.0f)); \r
- graph_->set_color("buffer-count", diagnostics::color(0.4f, 0.8f, 0.8f));\r
- graph_->set_color("buffer-size", diagnostics::color(0.2f, 0.4f, 0.8f)); \r
+ graph_->set_color("buffer-count", diagnostics::color(0.7f, 0.4f, 0.4f));\r
+ graph_->set_color("buffer-size", diagnostics::color(1.0f, 1.0f, 0.0f)); \r
\r
thread_ = boost::thread([this]{run();});\r
}\r
fps_ = 0;\r
\r
graph_ = diagnostics::create_graph([this]{return print();});\r
- graph_->set_color("output-buffer", diagnostics::color(0.0f, 1.0f, 0.0f));\r
+ graph_->set_color("output-buffer-count", diagnostics::color(1.0f, 1.0f, 0.0f));\r
\r
frame_buffer_.set_capacity(frame_factory_->get_video_format_desc().fps > 30.0 ? 2 : 1);\r
\r
\r
virtual safe_ptr<core::basic_frame> receive(int)\r
{ \r
- graph_->set_value("output-buffer", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity()));\r
+ graph_->set_value("output-buffer-count", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity()));\r
\r
auto frame = core::basic_frame::late();\r
if(frame_buffer_.try_pop(frame))\r
frame_buffer_.push(frame);\r
}\r
\r
- graph_->set_value("output-buffer", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity())); \r
+ graph_->set_value("output-buffer-count", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity())); \r
fps_.fetch_and_store(static_cast<int>(context_->fps()*100.0));\r
\r
render(renderer);\r
</producers>\r
<channels>\r
<channel>\r
- <video-mode>1080i5000</video-mode>\r
+ <video-mode>1080p5000</video-mode>\r
<consumers>\r
<decklink>\r
<device>1</device>\r
<low-latency>true</low-latency>\r
<embedded-audio>true</embedded-audio>\r
</decklink>\r
- <screen>\r
- <device>1</device>\r
- </screen>\r
+ </consumers>\r
+ </channel>\r
+ <channel>\r
+ <video-mode>1080p5000</video-mode>\r
+ <consumers>\r
+ <decklink>\r
+ <device>2</device>\r
+ <low-latency>true</low-latency>\r
+ <embedded-audio>true</embedded-audio>\r
+ </decklink>\r
</consumers>\r
</channel>\r
</channels>\r
<ClInclude Include="server.h" />\r
<ClInclude Include="resource.h" />\r
</ItemGroup>\r
- <ItemGroup>\r
- <ResourceCompile Include="shell.rc" />\r
- </ItemGroup>\r
<PropertyGroup Label="Globals">\r
<ProjectGuid>{8C26C94F-8092-4769-8D84-DEA479721C5B}</ProjectGuid>\r
<Keyword>Win32Proj</Keyword>\r
<Filter>source</Filter>\r
</ClInclude>\r
</ItemGroup>\r
- <ItemGroup>\r
- <ResourceCompile Include="shell.rc" />\r
- </ItemGroup>\r
<ItemGroup>\r
<Filter Include="source">\r
<UniqueIdentifier>{39e46848-dfec-441d-b0c0-f131380cdc6e}</UniqueIdentifier>\r