diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 95ea2fc6bf..b1d8fd31ad 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -250,23 +250,23 @@ static int movie_get_frame(AVFilterLink *outlink) while (1) { if (movie->state == STATE_DECODING) { - ret = av_read_frame(movie->format_ctx, &pkt); - if (ret == AVERROR_EOF) { - int64_t timestamp; - if (movie->loop_count != 1) { - timestamp = movie->seek_point; - if (movie->format_ctx->start_time != AV_NOPTS_VALUE) - timestamp += movie->format_ctx->start_time; - if (av_seek_frame(movie->format_ctx, -1, timestamp, AVSEEK_FLAG_BACKWARD) < 0) { + ret = av_read_frame(movie->format_ctx, &pkt); + if (ret == AVERROR_EOF) { + int64_t timestamp; + if (movie->loop_count != 1) { + timestamp = movie->seek_point; + if (movie->format_ctx->start_time != AV_NOPTS_VALUE) + timestamp += movie->format_ctx->start_time; + if (av_seek_frame(movie->format_ctx, -1, timestamp, AVSEEK_FLAG_BACKWARD) < 0) { + movie->state = STATE_FLUSHING; + } else if (movie->loop_count>1) + movie->loop_count--; + continue; + } else { movie->state = STATE_FLUSHING; - } else if (movie->loop_count>1) - movie->loop_count--; - continue; - } else { - movie->state = STATE_FLUSHING; - } - } else if (ret < 0) - break; + } + } else if (ret < 0) + break; } // Is this a packet from the video stream?