else\r
{\r
if(input_.eof())\r
- frame = core::basic_frame::eof();\r
+ return frame = core::basic_frame::eof();\r
else\r
{\r
graph_->add_tag("underflow"); \r
\r
virtual int64_t nb_frames() const\r
{\r
- auto nb_frames = input_.nb_frames() != 0 ? input_.nb_frames() : video_decoder_.nb_frames();\r
- return loop_ ? 0 : (nb_frames + late_frames_ - start_);\r
+ if(loop_)\r
+ return 0;\r
+\r
+ int64_t nb_frames = input_.nb_frames();\r
+\r
+ if(nb_frames == 0)\r
+ nb_frames = video_decoder_.nb_frames();\r
+ \r
+ if(nb_frames == 0)\r
+ nb_frames = audio_decoder_.nb_frames();\r
+ \r
+ return nb_frames + late_frames_ - start_;\r
}\r
\r
virtual std::wstring print() const\r