1 #include "../../stdafx.h"
\r
5 #include <common/exception/exceptions.h>
\r
7 #include <boost/filesystem.hpp>
\r
11 #include <unordered_map>
\r
15 double next_double(std::fstream& fileStream)
\r
17 std::vector<char> bytes(8);
\r
19 auto tmp2 = fileStream.tellg();
\r
22 fileStream.read(bytes.data(), 8);
\r
24 auto tmp3 = fileStream.gcount();
\r
27 tmp2 = fileStream.tellg();
\r
30 fileStream.seekg(1, std::ios::cur);
\r
32 tmp2 = fileStream.tellg();
\r
35 std::reverse(bytes.begin(), bytes.end());
\r
36 double* tmp = (double*)bytes.data();
\r
41 bool next_bool(std::fstream& fileStream)
\r
43 std::vector<char> bytes(1);
\r
44 fileStream.read(bytes.data(), bytes.size());
\r
45 fileStream.seekg(1, std::ios::cur);
\r
46 return bytes[0] != 0;
\r
49 std::map<std::string, std::string> read_flv_meta_info(const std::string& filename)
\r
51 std::map<std::string, std::string> values;
\r
53 if(boost::filesystem2::path(filename).extension() != ".flv")
\r
58 if(!boost::filesystem2::exists(filename))
\r
59 BOOST_THROW_EXCEPTION(caspar_exception());
\r
61 std::fstream fileStream = std::fstream(filename, std::fstream::in);
\r
63 std::vector<char> bytes2(256);
\r
64 fileStream.read(bytes2.data(), bytes2.size());
\r
66 auto ptr = bytes2.data();
\r
70 if(std::string(ptr, ptr+10) == "onMetaData")
\r
74 for(int n = 0; n < 16; ++n)
\r
76 char name_size = *ptr++;
\r
81 auto name = std::string(ptr, ptr + name_size);
\r
84 char data_type = *ptr++;
\r
89 std::reverse(ptr, ptr+8);
\r
90 values[name] = boost::lexical_cast<std::string>(*(double*)(ptr));
\r
97 values[name] = boost::lexical_cast<std::string>(*ptr != 0);
\r
108 CASPAR_LOG_CURRENT_EXCEPTION();
\r