1 #include "../../stdafx.h"
\r
5 #include <common/exception/exceptions.h>
\r
7 #include <boost/filesystem.hpp>
\r
11 #include <unordered_map>
\r
15 std::map<std::string, std::string> read_flv_meta_info(const std::string& filename)
\r
17 std::map<std::string, std::string> values;
\r
19 if(boost::filesystem2::path(filename).extension() != ".flv")
\r
24 if(!boost::filesystem2::exists(filename))
\r
25 BOOST_THROW_EXCEPTION(caspar_exception());
\r
27 std::fstream fileStream = std::fstream(filename, std::fstream::in);
\r
29 std::vector<char> bytes2(256);
\r
30 fileStream.read(bytes2.data(), bytes2.size());
\r
32 auto ptr = bytes2.data();
\r
36 if(std::string(ptr, ptr+10) == "onMetaData")
\r
40 for(int n = 0; n < 16; ++n)
\r
42 char name_size = *ptr++;
\r
47 auto name = std::string(ptr, ptr + name_size);
\r
50 char data_type = *ptr++;
\r
55 std::reverse(ptr, ptr+8);
\r
56 values[name] = boost::lexical_cast<std::string>(*(double*)(ptr));
\r
63 values[name] = boost::lexical_cast<std::string>(*ptr != 0);
\r
74 CASPAR_LOG_CURRENT_EXCEPTION();
\r