summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-09-30 18:05:55 +0200
committerwm4 <wm4@nowhere>2014-09-30 18:05:55 +0200
commit4ea05577bd1a0a2fd733342c16d8bf91ed322ae6 (patch)
tree78ba270059adf2a9cc3118b295c3b9ec1d8d9112
parentf23827d5574d1f84c5c1054579dd2f16564f6050 (diff)
downloadmpv-4ea05577bd1a0a2fd733342c16d8bf91ed322ae6.tar.bz2
mpv-4ea05577bd1a0a2fd733342c16d8bf91ed322ae6.tar.xz
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.
-rw-r--r--DOCS/man/options.rst5
-rw-r--r--options/options.c2
-rw-r--r--options/options.h1
-rw-r--r--player/audio.c14
-rw-r--r--player/core.h2
5 files changed, 0 insertions, 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=<string>``
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;