]> 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, 21 Mar 2012 20:18:49 +0000 (20:18 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 21 Mar 2012 20:18:49 +0000 (20:18 +0000)
modules/ffmpeg/producer/util/util.cpp

index 515810bf33194b582374fbfea4b2faeacddba218..e76b33f3ca34a36fb4e43a3b62bb8e80755a83c2 100644 (file)
@@ -174,7 +174,7 @@ core::pixel_format_desc pixel_format_desc(PixelFormat pix_fmt, int width, int he
 \r
 core::mutable_frame make_frame(const void* tag, const spl::shared_ptr<AVFrame>& decoded_frame, double fps, core::frame_factory& frame_factory)\r
 {                      \r
-       static tbb::concurrent_unordered_map<int, tbb::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
+       static tbb::concurrent_unordered_map<int, tbb::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contvalid_exts_;\r
        \r
        if(decoded_frame->width < 1 || decoded_frame->height < 1)\r
                return frame_factory.create_frame(tag, core::pixel_format_desc(core::pixel_format::invalid));\r
@@ -211,7 +211,7 @@ core::mutable_frame make_frame(const void* tag, const spl::shared_ptr<AVFrame>&
 \r
                int key = ((width << 22) & 0xFFC00000) | ((height << 6) & 0x003FC000) | ((pix_fmt << 7) & 0x00007F00) | ((target_pix_fmt << 0) & 0x0000007F);\r
                        \r
-               auto& pool = sws_contexts_[key];\r
+               auto& pool = sws_contvalid_exts_[key];\r
                                                \r
                if(!pool.try_pop(sws_context))\r
                {\r
@@ -505,13 +505,17 @@ std::wstring print_mode(int width, int height, double fps, bool interlaced)
 \r
 bool is_valid_file(const std::wstring filename)\r
 {                              \r
-       static std::vector<std::wstring> 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
+       static const std::vector<std::wstring> invalid_exts = boost::assign::list_of(L".png")(L".tga")(L".bmp")(L".jpg")(L".jpeg")(L".gif")(L".tiff")(L".tif")(L".jp2")(L".jpx")(L".j2k")(L".j2c");\r
+       static std::vector<std::wstring>           valid_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
+       if(std::find(valid_exts.begin(), valid_exts.end(), ext) != valid_exts.end())\r
                return true;    \r
        \r
+       if(std::find(invalid_exts.begin(), invalid_exts.end(), ext) != invalid_exts.end())\r
+               return false;   \r
+\r
        auto u8filename = u8(filename);\r
        \r
        int score = 0;\r