diff options
Diffstat (limited to 'video/decode/dec_video.c')
-rw-r--r-- | video/decode/dec_video.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c index b278cdfe82..ed0bfb825e 100644 --- a/video/decode/dec_video.c +++ b/video/decode/dec_video.c @@ -294,9 +294,13 @@ static struct mp_image *decode_packet(struct dec_video *d_video, MP_STATS(d_video, "end decode video"); + // Error, discarded frame, dropped frame, or initial codec delay. if (!mpi || drop_frame) { + // If we already had output, this must be a dropped frame. + if (d_video->decoded_pts != MP_NOPTS_VALUE && d_video->num_buffered_pts) + d_video->num_buffered_pts--; talloc_free(mpi); - return NULL; // error / skipped frame + return NULL; } if (opts->field_dominance == 0) { |