From 1e205b0afe249d88a94d1ad47a412fff8733a26b Mon Sep 17 00:00:00 2001 From: Dimitry Ishenko Date: Wed, 2 Nov 2016 10:00:53 -0400 Subject: [PATCH] [ffmpeg_producer] Constrain SEEK values --- modules/ffmpeg/producer/ffmpeg_producer.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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)) { -- 2.39.2