From 290341c77765ecbd44beedbd50f18f45638b78db Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 13 Mar 2018 12:54:48 +0100 Subject: vo: pass through framedrop flag differently There is some sort-of awkwardness here, because option access needs to happen in a synchronized manner, and the framedrop flag is not in the VO option struct. Remove the mp_read_option_raw() call and the awkward change notification via VO_EVENT_WIN_STATE from command.c, and pass it through as new vo_frame flag. --- player/video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'player/video.c') diff --git a/player/video.c b/player/video.c index e91c4ce631..7ec05e0f6d 100644 --- a/player/video.c +++ b/player/video.c @@ -777,7 +777,7 @@ static void handle_display_sync_frame(struct MPContext *mpctx, mode == VS_DISP_RESAMPLE_NONE; bool drop = mode == VS_DISP_VDROP || mode == VS_DISP_RESAMPLE || mode == VS_DISP_ADROP || mode == VS_DISP_RESAMPLE_VDROP; - drop &= (opts->frame_dropping & 1); + drop &= frame->can_drop; if (resample && using_spdif_passthrough(mpctx)) return; @@ -1109,6 +1109,7 @@ void write_video(struct MPContext *mpctx) .pts = pts, .duration = -1, .still = mpctx->step_frames > 0, + .can_drop = opts->frame_dropping & 1, .num_frames = MPMIN(mpctx->num_next_frames, req), .num_vsyncs = 1, }; -- cgit v1.2.3