0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/demux
wm4 eae693fc46 demux_mkv: support FFmpeg A_MS/ACM extensions
Indeed, FFmpeg found a way to maximize the misery around VfW/AVI-style
muxing. It appears it can mux a number of random codecs by using random
format tags. To make this even more stranger, it has a probably custom
GUID for signaling them, although for unknown reasons this is done only
"sometimes" (judging from FFmpeg's riffenc.c).

Whatever, it's not too hard to support it. Also apparently fix the
incorrect interpretation of extended formats - there's absolutely no
reason to assume they're always PCM. Instead, check for the correct
GUIDs. Also while we're at it, move the channel mask handling also to
codec_tag.c, so all WAVEFORMATEXTENSIBLE handling is in one place. (With
the normal wav header handling strangely still in demux_mkv.c.)

The case I was looking at (aac_latm muxing) decodes now. While I'm not
entirely sure about its correctness (libavformat has a weird
special-case for SBR), it certainly doesn't try to play it as PCM,
which is much of an improvement.

The extradata mess in the demux_mkv.c A_MS/ACM code path is unfortunate
and ugly, but has less impact than refactoring all the code to make
this specific case nicer.

Did I mention yet that I hate VfW-style mkv muxing?
2017-06-03 22:49:15 +02:00
..
codec_tags.c demux_mkv: support FFmpeg A_MS/ACM extensions 2017-06-03 22:49:15 +02:00
codec_tags.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
cue.c cue: accept lower-case cue commands 2017-01-24 08:57:51 +01:00
cue.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
demux_cue.c demux_cue: include io.h for Windows UTF-8 filesystem functions 2017-04-04 17:45:19 +02:00
demux_disc.c stream: get rid of streamtype enum 2017-02-02 18:26:58 +01:00
demux_edl.c demux_edl: fix behavior with no init segment provided 2017-02-05 15:51:36 +01:00
demux_lavf.c demux_lavf: disable half-working mp4 edit list support in libavcodec 2017-04-07 13:12:10 +02:00
demux_libarchive.c demux, stream: add option to prevent opening referenced files 2016-12-04 23:15:31 +01:00
demux_mf.c stream: get rid of streamtype enum 2017-02-02 18:26:58 +01:00
demux_mkv_timeline.c stream: get rid of streamtype enum 2017-02-02 18:26:58 +01:00
demux_mkv.c demux_mkv: support FFmpeg A_MS/ACM extensions 2017-06-03 22:49:15 +02:00
demux_null.c demux_null: fix segfault with --cache enabled 2016-03-05 00:56:55 +01:00
demux_playlist.c stream: get rid of streamtype enum 2017-02-02 18:26:58 +01:00
demux_rar.c demux, stream: add option to prevent opening referenced files 2016-12-04 23:15:31 +01:00
demux_raw.c demux_raw: drop "mp-rawvideo" use 2017-05-20 11:43:57 +02:00
demux_timeline.c demux_timeline: more silencing 2017-02-04 23:10:04 +01:00
demux_tv.c stream: get rid of streamtype enum 2017-02-02 18:26:58 +01:00
demux.c demux: estimate total packet size, deprecate packet number limits 2017-04-14 19:19:44 +02:00
demux.h ytdl_hook, edl: implement pseudo-DASH support 2017-02-04 22:34:38 +01:00
ebml.c ebml, matroska.h: change license to LGPL 2017-04-21 13:34:10 +02:00
ebml.h ebml, matroska.h: change license to LGPL 2017-04-21 13:34:10 +02:00
matroska.h ebml, matroska.h: change license to LGPL 2017-04-21 13:34:10 +02:00
packet.c demux/packet: change license to LGPL 2017-04-21 13:34:10 +02:00
packet.h demux/packet: change license to LGPL 2017-04-21 13:34:10 +02:00
stheader.h demux/stheader: change license to LGPL 2017-05-10 13:18:08 +02:00
timeline.c ytdl_hook, edl: implement pseudo-DASH support 2017-02-04 22:34:38 +01:00
timeline.h ytdl_hook, edl: implement pseudo-DASH support 2017-02-04 22:34:38 +01:00