summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 37b2c7e9b9..da1dd13c6e 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -503,6 +503,14 @@ static void parse_trackaudio(struct demuxer *demuxer, struct mkv_track *track,
"[mkv] | + Output sampling frequency: %f\n", track->a_osfreq);
} else
track->a_osfreq = track->a_sfreq;
+ // Something creates files with osfreq incorrectly set
+ if (track->a_sfreq == 44100 && track->a_osfreq == 96000) {
+ mp_msg(MSGT_DEMUX, MSGL_WARN, "[mkv] Audio track has codec frequency "
+ "%.1f and playback frequency %.1f.\n[mkv] This looks wrong. "
+ "Assuming this file is corrupt and ignoring the latter.\n",
+ track->a_sfreq, track->a_osfreq);
+ track->a_osfreq = track->a_sfreq;
+ }
if (audio->n_bit_depth) {
track->a_bps = audio->bit_depth;
mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + Bit depth: %u\n",