From 4ea05577bd1a0a2fd733342c16d8bf91ed322ae6 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 30 Sep 2014 18:05:55 +0200 Subject: audio: remove --audiodrop This would play some silence in case video was slower than audio. If framedropping is already enabled, there's no other way to keep A/V sync, short of changing audio playback speed (which would give worse results). The --audiodrop option inserted silence if there was more than 500ms desync. This worked somewhat, but I think it was a silly idea after all. Whether the playback experience is really bad or slightly worse doesn't really matter. There also was a subtle bug with PTS handling, that apparently caused A/V desync anyway at ridiculous playback speeds. Just remove this feature; nobody is going to use it anyway. --- DOCS/man/options.rst | 5 ----- options/options.c | 2 -- options/options.h | 1 - player/audio.c | 14 -------------- player/core.h | 2 -- 5 files changed, 24 deletions(-) diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index b0292ae90c..e8e41331d6 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -976,11 +976,6 @@ Audio maximum amplification, i.e. amplify by 200%. The default volume (no change in volume) will be ``50`` in this case. -``--audiodrop`` - If video is by more than 500 ms behind, insert 500 ms of silence, to make up - for audio getting ahead. Might help if video decoding is too slow beyond - help. - ``--volume-restore-data=`` Used internally for use by playback resume (e.g. with ``quit_watch_later``). Restoring value has to be done carefully, because different AOs as well as diff --git a/options/options.c b/options/options.c index 0e570705ef..e76a20d2c8 100644 --- a/options/options.c +++ b/options/options.c @@ -471,8 +471,6 @@ const m_option_t mp_opts[] = { OPT_DOUBLE("display-fps", frame_drop_fps, M_OPT_MIN, .min = 0), - OPT_FLAG("audiodrop", insert_silence, 0), - OPT_FLAG("untimed", untimed, M_OPT_FIXED), OPT_STRING("stream-capture", stream_capture, M_OPT_FIXED | M_OPT_FILE), diff --git a/options/options.h b/options/options.h index ab92283766..eda99a88cb 100644 --- a/options/options.h +++ b/options/options.h @@ -139,7 +139,6 @@ typedef struct MPOpts { int autosync; int frame_dropping; double frame_drop_fps; - int insert_silence; int term_osd; int term_osd_bar; char *term_osd_bar_chars; diff --git a/player/audio.c b/player/audio.c index 56e6c233c7..cc4496ed57 100644 --- a/player/audio.c +++ b/player/audio.c @@ -406,20 +406,6 @@ void fill_audio_out_buffers(struct MPContext *mpctx, double endpts) playsize = MPMAX(1, playsize + skip); // silence will be prepended } - if (opts->insert_silence) { - float S = 0.5; - if (!mpctx->paused && mpctx->audio_status == STATUS_PLAYING && - mpctx->video_status == STATUS_PLAYING && - mpctx->last_av_difference - mpctx->insert_silence > S) - mpctx->insert_silence += S; - - if (mpctx->insert_silence > 0) { - int samples = MPMIN(playsize, play_samplerate * mpctx->insert_silence); - mp_audio_buffer_prepend_silence(mpctx->ao_buffer, samples); - mpctx->insert_silence -= samples / play_samplerate; - } - } - int status = AD_OK; if (playsize > mp_audio_buffer_samples(mpctx->ao_buffer)) { status = audio_decode(d_audio, mpctx->ao_buffer, playsize); diff --git a/player/core.h b/player/core.h index 581a5b7a42..dfba2fd45f 100644 --- a/player/core.h +++ b/player/core.h @@ -260,8 +260,6 @@ typedef struct MPContext { double delay; // AV sync: time in seconds until next frame should be shown double time_frame; - // Optional/additional AV sync compensation if video is too slow. - double insert_silence; // How much video timing has been changed to make it match the audio // timeline. Used for status line information only. double total_avsync_change; -- cgit v1.2.3