diff --git a/video/decode/dec_video.c b/video/decode/dec_video.c index c7b0866f20..6752782645 100644 --- a/video/decode/dec_video.c +++ b/video/decode/dec_video.c @@ -213,14 +213,9 @@ bool video_init_best_codec(struct dec_video *d_video, char* video_decoders) static void add_pts_to_sort(struct dec_video *d_video, double pts) { if (pts != MP_NOPTS_VALUE) { - int delay = -1; - video_vd_control(d_video, VDCTRL_QUERY_UNSEEN_FRAMES, &delay); - if (delay >= 0 && delay < d_video->num_buffered_pts) - d_video->num_buffered_pts = delay; - if (d_video->num_buffered_pts == - sizeof(d_video->buffered_pts) / sizeof(double)) + if (d_video->num_buffered_pts == MP_ARRAY_SIZE(d_video->buffered_pts)) { MP_ERR(d_video, "Too many buffered pts\n"); - else { + } else { int i, j; for (i = 0; i < d_video->num_buffered_pts; i++) if (d_video->buffered_pts[i] < pts) diff --git a/video/decode/vd.h b/video/decode/vd.h index 6f5016ac37..2c812dd4e1 100644 --- a/video/decode/vd.h +++ b/video/decode/vd.h @@ -42,7 +42,6 @@ extern const vd_functions_t *const mpcodecs_vd_drivers[]; enum vd_ctrl { VDCTRL_RESET = 1, // reset decode state after seeking - VDCTRL_QUERY_UNSEEN_FRAMES, // current decoder lag VDCTRL_FORCE_HWDEC_FALLBACK, // force software decoding fallback VDCTRL_GET_HWDEC, }; diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c index e5ce92addb..9cc73d033a 100644 --- a/video/decode/vd_lavc.c +++ b/video/decode/vd_lavc.c @@ -689,13 +689,6 @@ static int control(struct dec_video *vd, int cmd, void *arg) case VDCTRL_RESET: avcodec_flush_buffers(avctx); return CONTROL_TRUE; - case VDCTRL_QUERY_UNSEEN_FRAMES:; - int delay = avctx->has_b_frames; - assert(delay >= 0); - if (avctx->active_thread_type & FF_THREAD_FRAME) - delay += avctx->thread_count - 1; - *(int *)arg = delay; - return CONTROL_TRUE; case VDCTRL_GET_HWDEC: { int hwdec = ctx->hwdec ? ctx->hwdec->type : 0; if (!ctx->software_fallback_decoder)