summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/decode/dec_video.c6
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) {