ffmpeg: Enabled multithreaded H264 decoding.
ffmpeg: Change extension appending for loading files.
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@890
362d55ac-95cf-4e76-9f9a-
cbaa9c17b72d
\r
auto ext = boost::find_if(extensions, [&](const std::wstring& ex)\r
{ \r
- return boost::filesystem::is_regular_file(boost::filesystem::wpath(filename).replace_extension(ex));\r
+ return boost::filesystem::is_regular_file(boost::filesystem::wpath(filename + L"." + ex));\r
});\r
\r
if(ext == extensions.end())\r
{\r
avctx->thread_count = 1;\r
// Some codecs don't like to have multiple multithreaded decoding instances. Only enable for those we know work.\r
- if(codec->id == CODEC_ID_MPEG2VIDEO && \r
+ if((codec->id == CODEC_ID_MPEG2VIDEO ||\r
+ codec->id == CODEC_ID_H264) && \r
(codec->capabilities & CODEC_CAP_SLICE_THREADS) && \r
(avctx->thread_type & FF_THREAD_SLICE))\r
{\r
\r
#pragma once\r
\r
+#include "../common/compiler/vs/disable_silly_warnings.h"\r
+\r
+#define NOMINMAX\r
+\r
+#if defined(_MSC_VER)\r
+# ifndef _SCL_SECURE_NO_WARNINGS\r
+# define _SCL_SECURE_NO_WARNINGS\r
+# endif\r
+# ifndef _CRT_SECURE_NO_WARNINGS\r
+# define _CRT_SECURE_NO_WARNINGS\r
+# endif\r
+#endif\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
#ifdef _DEBUG\r
#include <crtdbg.h>\r
#endif\r
\r
-#define NOMINMAX\r
-\r
#include <cstdint>\r
#include <winsock2.h>\r
#include <tchar.h>\r
#include <string>\r
#include <math.h>\r
\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
+#include <tbb/parallel_invoke.h>\r
+#include <tbb/parallel_for.h>\r
+#include <tbb/parallel_for_each.h>\r
+\r
#include <boost/assign.hpp>\r
#include <boost/filesystem.hpp>\r
#include <boost/foreach.hpp>\r
#include "../common/log/Log.h"\r
#include "../common/exception/exceptions.h"\r
#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
{\r
std::wstring clipttype = TEXT(" N/A ");\r
std::wstring extension = boost::to_upper_copy(itr->path().extension());\r
- if(extension == TEXT(".TGA") || extension == TEXT(".COL"))\r
+ if(extension == TEXT(".TGA") || extension == TEXT(".COL") || extension == L".PNG" || extension == L".JPEG" || extension == L".JPG" ||\r
+ extension == L"GIF" || extension == L"BMP")\r
clipttype = TEXT(" STILL ");\r
else if(extension == TEXT(".SWF") || extension == TEXT(".DV") || extension == TEXT(".MOV") || extension == TEXT(".MPG") || \r
- extension == TEXT(".AVI") || extension == TEXT(".FLV") || extension == TEXT(".F4V") || extension == TEXT(".MP4"))\r
+ extension == TEXT(".AVI") || extension == TEXT(".FLV") || extension == TEXT(".F4V") || extension == TEXT(".MP4") ||\r
+ extension == L".M2V" || extension == L".H264" || extension == L".MKV" || extension == L".WMV" || extension == L".DIVX" || \r
+ extension == L".XVID" || extension == L".OGG")\r
clipttype = TEXT(" MOVIE ");\r
else if(extension == TEXT(".WAV") || extension == TEXT(".MP3"))\r
clipttype = TEXT(" STILL ");\r