corresponding layer existed.\r
o Screen consumer: Added borderless option and correct handling of name\r
option.\r
+ o AMCP: CLS now reports duration and framerate for MOVIE files were\r
+ information is possible to extract.\r
o Version bump to keep up with CasparCG Client version.\r
\r
\r
const auto rational_fps = boost::rational<std::int64_t>(static_cast<int>(fps * AV_TIME_BASE), AV_TIME_BASE);\r
\r
duration = boost::rational_cast<std::int64_t>(context->duration * rational_fps / AV_TIME_BASE);\r
+\r
+ if (rational_fps == 0)\r
+ return false;\r
+\r
time_base = 1/rational_fps;\r
\r
return true;\r
std::wstring clipttype = TEXT(" N/A ");\r
std::wstring extension = boost::to_upper_copy(path.extension());\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
+ extension == L".GIF" || extension == L".BMP")\r
{\r
clipttype = TEXT(" STILL "); \r
}\r
{\r
clipttype = TEXT(" AUDIO ");\r
}\r
- else if(extension == TEXT(".SWF") || extension == TEXT(".CT") || \r
- extension == TEXT(".DV") || extension == TEXT(".MOV") || \r
+ else if(extension == TEXT(".SWF") || extension == TEXT(".CT"))\r
+ {\r
+ clipttype = TEXT(" MOVIE ");\r
+ }\r
+ else if(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
{\r
ffmpeg::try_get_duration(path.file_string(), duration, time_base);\r