summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/decode/dec_audio.h1
-rw-r--r--player/audio.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/audio/decode/dec_audio.h b/audio/decode/dec_audio.h
index 6d2c61d862..b76ff0b95c 100644
--- a/audio/decode/dec_audio.h
+++ b/audio/decode/dec_audio.h
@@ -37,6 +37,7 @@ struct dec_audio {
struct af_stream *afilter;
char *decoder_desc;
struct replaygain_data *replaygain_data;
+ int init_retries;
// set by decoder
struct mp_audio decoded; // decoded audio set by last decode_packet() call
int bitrate; // input bitrate, can change with VBR sources
diff --git a/player/audio.c b/player/audio.c
index ab42573fad..4bf032f3a2 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -361,7 +361,10 @@ int fill_audio_out_buffers(struct MPContext *mpctx, double endpts)
int r = initial_audio_decode(mpctx->d_audio);
if (r == AD_WAIT)
return -1; // continue later when new data is available
- if (r != AD_OK) {
+ mpctx->d_audio->init_retries += 1;
+ MP_VERBOSE(mpctx, "Initial audio packets read: %d\n",
+ mpctx->d_audio->init_retries);
+ if (r != AD_OK && mpctx->d_audio->init_retries >= 50) {
MP_ERR(mpctx, "Error initializing audio.\n");
struct track *track = mpctx->current_track[0][STREAM_AUDIO];
mp_deselect_track(mpctx, track);