]> git.sesse.net Git - casparcg/commitdiff
2.1.0: -ffmpeg_producer: Fixed is_valid_file.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 9 Mar 2012 10:57:15 +0000 (10:57 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 9 Mar 2012 10:57:15 +0000 (10:57 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@2554 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/ffmpeg/producer/util/util.cpp

index d78abdba6c77bd11c0bf78f97124bdc0be3efb00..36b0686086b2538f508c234e2314b57a92a93c12 100644 (file)
@@ -508,20 +508,28 @@ std::wstring print_mode(int width, int height, double fps, bool interlaced)
 \r
 bool is_valid_file(const std::wstring filename)\r
 {                      \r
-       if(boost::filesystem::path(filename).extension() == ".m2t")\r
-               return true;\r
+       {\r
+               static auto exts = boost::assign::list_of(L".m2t")(L".mov")(L".mp4")(L".dv")(L".flv")(L".mpg")(L".wav")(L".mp3")(L".dnxhd")(L".h264")(L".prores");\r
+\r
+               auto ext = boost::to_lower_copy(boost::filesystem::path(filename).extension().wstring());\r
+               \r
+               if(std::find(exts.begin(), exts.end(), ext) != exts.end())\r
+                       return true;\r
+       }\r
+       \r
+       auto u8filename = u8(filename);\r
        \r
+       int score = 0;\r
        AVProbeData pb = {};\r
-       pb.filename = u8(filename).c_str();\r
+       pb.filename = u8filename.c_str();\r
 \r
-       int score = 0;\r
        if(av_probe_input_format2(&pb, false, &score) != nullptr)\r
                return true;\r
 \r
        std::ifstream file(filename);\r
 \r
        std::vector<unsigned char> buf;\r
-       for(auto file_it = std::istreambuf_iterator<char>(file); file_it != std::istreambuf_iterator<char>() && buf.size() < 2048; ++file_it)\r
+       for(auto file_it = std::istreambuf_iterator<char>(file); file_it != std::istreambuf_iterator<char>() && buf.size() < 1024; ++file_it)\r
                buf.push_back(*file_it);\r
 \r
        if(buf.empty())\r