amcp: CLS checks for known extensions instead of letting ffmpeg open and read file headers. Added missing FAILED reply. Fixed missing \r\n for amcp overflow FAILED reply.
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@2562
362d55ac-95cf-4e76-9f9a-
cbaa9c17b72d
inline void replace_nonprintable(std::basic_string<T, std::char_traits<T>, std::allocator<T>>& str, T with)\r
{\r
std::locale loc;\r
- std::replace_if(str.begin(), str.end(), [&](T c)->bool { return !std::isprint(c, loc); }, with);\r
+ std::replace_if(str.begin(), str.end(), [&](T c)->bool { return !std::isprint(c, loc) && c != '\r' && c != '\n'; }, with);\r
}\r
\r
template<typename T>\r
{\r
CASPAR_LOG(error) << "AMCP Command Queue Overflow.";\r
CASPAR_LOG(error) << "Failed to execute command:" << pCurrentCommand->print();\r
- pCurrentCommand->SetReplyString(L"500 FAILED");\r
+ pCurrentCommand->SetReplyString(L"500 FAILED\r\n");\r
pCurrentCommand->SendReply();\r
}\r
catch(...)\r
{\r
CASPAR_LOG_CURRENT_EXCEPTION();\r
CASPAR_LOG(error) << "Failed to execute command:" << pCurrentCommand->print();\r
+ pCurrentCommand->SetReplyString(L"500 FAILED\r\n");\r
}\r
\r
pCurrentCommand->SendReply();\r
clipttype = TEXT(" STILL ");\r
else if(extension == TEXT(".WAV") || extension == TEXT(".MP3"))\r
clipttype = TEXT(" STILL ");\r
- else if(caspar::ffmpeg::is_valid_file(path.file_string()) || extension == L".CT")\r
+ else if(extension == TEXT(".SWF") || extension == TEXT(".CT") || \r
+ extension == TEXT(".DV") || extension == TEXT(".MOV") || \r
+ extension == TEXT(".MPG") || extension == TEXT(".AVI") || \r
+ extension == TEXT(".MP4") || extension == TEXT(".FLV") || \r
+ extension == TEXT(".STGA") || \r
+ caspar::ffmpeg::is_valid_file(path.file_string()))\r
clipttype = TEXT(" MOVIE ");\r
\r
if(clipttype != TEXT(" N/A "))\r