path: root/player/video.c
diff options
authorwm4 <wm4@nowhere>2020-05-23 04:04:46 +0200
committerwm4 <wm4@nowhere>2020-05-23 04:04:46 +0200
commitab4e0c42fbb11f2e7459fe9fe98265e0323b1ef4 (patch)
tree8d202d9a8d7aecf3f305c0311d5115b46ba009d9 /player/video.c
parent43a67970b6c17f8d0525f90fac25923cd4a989bf (diff)
audio: redo video-sync=display-adrop
This mode drops or repeats audio data to adapt to video speed, instead of resampling it or such. It was added to deal with SPDIF. The implementation was part of fill_audio_out_buffers() - the entire function is something whose complexity exploded in my face, and which I want to clean up, and this is hopefully a first step. Put it in a filter, and mess with the shitty glue code. It's all sort of roundabout and illogical, but that can be rectified later. The important part is that it works much like the resample or scaletempo filters. For PCM audio, this does not work on samples anymore. This makes it much worse. But for PCM you can use saner mechanisms that sound better. Also, something about PTS tracking is wrong. But not wasting more time on this.
Diffstat (limited to 'player/video.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/player/video.c b/player/video.c
index 5102ddf656..b82999f403 100644
--- a/player/video.c
+++ b/player/video.c
@@ -898,7 +898,7 @@ static void handle_display_sync_frame(struct MPContext *mpctx,
mpctx->past_frames[0].num_vsyncs = num_vsyncs;
mpctx->past_frames[0].av_diff = mpctx->last_av_difference;
- if (resample) {
+ if (resample || mode == VS_DISP_ADROP) {
adjust_audio_resample_speed(mpctx, vsync);
} else {
mpctx->speed_factor_a = 1.0;