From: Dimitry Ishenko Date: Wed, 2 Nov 2016 14:00:53 +0000 (-0400) Subject: [ffmpeg_producer] Constrain SEEK values X-Git-Tag: 2.1.0_Beta1~21^2 X-Git-Url: https://git.sesse.net/?p=casparcg;a=commitdiff_plain;h=1e205b0afe249d88a94d1ad47a412fff8733a26b [ffmpeg_producer] Constrain SEEK values --- diff --git a/modules/ffmpeg/producer/ffmpeg_producer.cpp b/modules/ffmpeg/producer/ffmpeg_producer.cpp index 48facf644..fe0492ade 100644 --- a/modules/ffmpeg/producer/ffmpeg_producer.cpp +++ b/modules/ffmpeg/producer/ffmpeg_producer.cpp @@ -441,19 +441,21 @@ public: } else if(boost::regex_match(param, what, seek_exp)) { - auto value = boost::lexical_cast(what["VALUE"].str()); + auto value = boost::lexical_cast(what["VALUE"].str()); auto whence = what["WHENCE"].str(); + auto total = file_nb_frames(); if(boost::iequals(whence, L"REL")) - { value = file_frame_number() + value; - } else if(boost::iequals(whence, L"END")) - { - value = file_nb_frames() - value; - } + value = total - value; + + if(value < 0) + value = 0; + else if(value >= total) + value = total - 1; - input_.seek(value); + input_.seek(static_cast(value)); } else if(boost::regex_match(param, what, length_exp)) {