summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-04-25 08:32:33 +0200
committerwm4 <wm4@nowhere>2014-04-25 08:36:58 +0200
commitca320f6e690b35e742f3a25797ac9451fe39dfd5 (patch)
tree18a86adebe1fac80808aea05f1a75cf47cbde093 /demux/demux_mkv.c
parent5c3dd6402a8454f9a0cf652216dc94ecb308ced3 (diff)
downloadmpv-ca320f6e690b35e742f3a25797ac9451fe39dfd5.tar.bz2
mpv-ca320f6e690b35e742f3a25797ac9451fe39dfd5.tar.xz
demux_mkv: enable parsing for mp3
For some reason, some files appear to have broken mp3 packets, or at least in a form that libavcodec can't deal with. The audio in the sample file in question could not be decoded using libavcodec. The problematic file had variable packet sizes, and the libavcodec decoder kept printing "mp3: Header missing" for each packet it was fed. Remuxing with mkvmerge fixes the problem. The mp3 data is probably not VBR, and remuxing resulted in fixed-size mp3 frames. So I don't know why the sample file was muxed this way - it might just be incorrect. The sample file had "libmkv 0.6.4" as MuxingApp (although I could not get mkvinfo to print this element, maybe the file uses an incorrect element ID), and "HandBrake 0.9.4" as WritingApp. Note that the libmpg123 decoder does not have any issues with it. It's probably more robust, because libmpg123 was made to decode whole mp3 files, not just single frames. Fixes issue #742.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 2b17e7e457..d9dc874bc9 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1290,7 +1290,7 @@ static struct mkv_audio_tag {
bool parse;
} mkv_audio_tags[] = {
{ MKV_A_MP2, 0, 0x0055 },
- { MKV_A_MP3, 0, 0x0055 },
+ { MKV_A_MP3, 0, 0x0055, true },
{ MKV_A_AC3, 1, 0x2000 },
{ MKV_A_EAC3, 1, MP_FOURCC('E', 'A', 'C', '3') },
{ MKV_A_DTS, 0, 0x2001 },