int late_frames_;\r
const int start_;\r
const bool loop_;\r
+ const int64_t length_;\r
\r
safe_ptr<core::basic_frame> last_frame_;\r
\r
, late_frames_(0)\r
, start_(start)\r
, loop_(loop)\r
+ , length_(length)\r
, last_frame_(core::basic_frame::empty())\r
, width_(video_decoder_.width())\r
, height_(video_decoder_.height())\r
int64_t video_nb_frames = video_decoder_.nb_frames();\r
int64_t audio_nb_frames = audio_decoder_.nb_frames();\r
\r
- nb_frames = std::max(nb_frames, std::max(video_nb_frames, audio_nb_frames));\r
+ nb_frames = std::min(length_, std::max(nb_frames, std::max(video_nb_frames, audio_nb_frames)));\r
}\r
\r
nb_frames = muxer_.calc_nb_frames(nb_frames);\r