+
+ r = avcodec_receive_frame (context, _frame);
+ if (r == AVERROR(EAGAIN)) {
+ /* More input is required */
+ return true;
+ } else if (r == AVERROR_EOF) {
+ /* No more output is coming */
+ return false;
+ }
+
+ if (!_first_video) {
+ _first_video = frame_time (_format_context->streams[_video_stream.get()]);
+ }
+ if (_need_video_length) {
+ _video_length = frame_time (
+ _format_context->streams[_video_stream.get()]
+ ).get_value_or (ContentTime ()).frames_round (video_frame_rate().get ());
+ }
+ if (temporal_reference.size() < (PULLDOWN_CHECK_FRAMES * 2)) {
+ temporal_reference += (_frame->top_field_first ? "T" : "B");
+ temporal_reference += (_frame->repeat_pict ? "3" : "2");
+ }
+
+ return true;