demux_mkv: remove indirection through defines

This is actually more readable. Most of the defines are used only once,
so using a symbol instead of the direct string only obfuscated it.
This commit is contained in:
wm4 2015-06-19 21:41:57 +02:00
parent 0641ec0525
commit f544cd0501
2 changed files with 58 additions and 134 deletions

View File

@ -1197,19 +1197,19 @@ typedef struct {
} videocodec_info_t;
static const videocodec_info_t vinfo[] = {
{MKV_V_MJPEG, "mjpeg"},
{MKV_V_MPEG1, "mpeg1video"},
{MKV_V_MPEG2, "mpeg2video"},
{MKV_V_MPEG4_SP, "mpeg4"},
{MKV_V_MPEG4_ASP, "mpeg4"},
{MKV_V_MPEG4_AP, "mpeg4"},
{MKV_V_MPEG4_AVC, "h264"},
{MKV_V_THEORA, "theora"},
{MKV_V_VP8, "vp8"},
{MKV_V_VP9, "vp9"},
{MKV_V_DIRAC, "dirac"},
{MKV_V_PRORES, "prores"},
{MKV_V_HEVC, "hevc"},
{"V_MJPEG", "mjpeg"},
{"V_MPEG1", "mpeg1video"},
{"V_MPEG2", "mpeg2video"},
{"V_MPEG4/ISO/SP", "mpeg4"},
{"V_MPEG4/ISO/ASP", "mpeg4"},
{"V_MPEG4/ISO/AP", "mpeg4"},
{"V_MPEG4/ISO/AVC", "h264"},
{"V_THEORA", "theora"},
{"V_VP8", "vp8"},
{"V_VP9", "vp9"},
{"V_DIRAC", "dirac"},
{"V_PRORES", "prores"},
{"V_MPEGH/ISO/HEVC", "hevc"},
{0}
};
@ -1227,7 +1227,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track)
sh_v->bits_per_coded_sample = 24;
if (!strcmp(track->codec_id, MKV_V_MSCOMP)) { /* AVI compatibility mode */
if (!strcmp(track->codec_id, "V_MS/VFW/FOURCC")) { /* AVI compatibility mode */
// The private_data contains a BITMAPINFOHEADER struct
if (track->private_data == NULL || track->private_size < 40)
return 1;
@ -1245,10 +1245,10 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track)
mp_set_codec_from_tag(sh);
sh_v->avi_dts = true;
} else if (track->private_size >= RVPROPERTIES_SIZE
&& (!strcmp(track->codec_id, MKV_V_REALV10)
|| !strcmp(track->codec_id, MKV_V_REALV20)
|| !strcmp(track->codec_id, MKV_V_REALV30)
|| !strcmp(track->codec_id, MKV_V_REALV40)))
&& (!strcmp(track->codec_id, "V_REAL/RV10")
|| !strcmp(track->codec_id, "V_REAL/RV20")
|| !strcmp(track->codec_id, "V_REAL/RV30")
|| !strcmp(track->codec_id, "V_REAL/RV40")))
{
unsigned char *src;
unsigned int cnt;
@ -1268,11 +1268,11 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track)
extradata = src - 8;
track->parse = true;
track->parse_timebase = 1e3;
} else if (strcmp(track->codec_id, MKV_V_UNCOMPRESSED) == 0) {
} else if (strcmp(track->codec_id, "V_UNCOMPRESSED") == 0) {
// raw video, "like AVI" - this is a FourCC
sh->format = track->colorspace;
sh->codec = "rawvideo";
} else if (strcmp(track->codec_id, MKV_V_QUICKTIME) == 0) {
} else if (strcmp(track->codec_id, "V_QUICKTIME") == 0) {
uint32_t fourcc1 = 0, fourcc2 = 0;
if (track->private_size >= 8) {
fourcc1 = AV_RL32(track->private_data + 0);
@ -1336,31 +1336,31 @@ static const struct mkv_audio_tag {
const char *codec;
bool prefix;
} mkv_audio_tags[] = {
{ MKV_A_MP2, "mp3" },
{ MKV_A_MP3, "mp3" },
{ MKV_A_AC3, "ac3", .prefix = true },
{ MKV_A_EAC3, "eac3", .prefix = true },
{ MKV_A_DTS, "dts" },
{ MKV_A_PCM, "pcm" }, // not a real lavc codec name
{ MKV_A_PCM_BE, "pcm" },
{ MKV_A_PCM_FLT, "pcm-flt" }, // also not a real lavc codec name
{ MKV_A_AAC, "aac" },
{ "A_AAC/", "aac", .prefix = true },
{ MKV_A_VORBIS, "vorbis" },
{ MKV_A_OPUS, "opus" },
{ MKV_A_OPUS_EXP, "opus" },
{ MKV_A_QDMC, "qdmc" },
{ MKV_A_QDMC2, "qdm2" },
{ MKV_A_WAVPACK, "wavpack" },
{ MKV_A_TRUEHD, "truehd" },
{ MKV_A_FLAC, "flac" },
{ MKV_A_ALAC, "alac" },
{ MKV_A_REAL28, "ra_288" },
{ MKV_A_REALATRC, "atrac3" },
{ MKV_A_REALCOOK, "cook" },
{ MKV_A_REALDNET, "ac3" },
{ MKV_A_REALSIPR, "sipr" },
{ MKV_A_TTA1, "tta" },
{ "A_MPEG/L2", "mp3" },
{ "A_MPEG/L3", "mp3" },
{ "A_AC3", "ac3", .prefix = true },
{ "A_EAC3", "eac3", .prefix = true },
{ "A_DTS", "dts" },
{ "A_PCM/INT/LIT", "pcm" }, // not a real lavc codec name
{ "A_PCM/INT/BIG", "pcm" },
{ "A_PCM/FLOAT/IEEE", "pcm-flt" }, // also not a real lavc codec name
{ "A_AAC", "aac" },
{ "A_AAC/", "aac", .prefix = true },
{ "A_VORBIS", "vorbis" },
{ "A_OPUS", "opus" },
{ "A_OPUS/EXPERIMENTAL", "opus" },
{ "A_QUICKTIME/QDMC", "qdmc" },
{ "A_QUICKTIME/QDM2", "qdm2" },
{ "A_WAVPACK4", "wavpack" },
{ "A_TRUEHD", "truehd" },
{ "A_FLAC", "flac" },
{ "A_ALAC", "alac" },
{ "A_REAL/28_8", "ra_288" },
{ "A_REAL/ATRC", "atrac3" },
{ "A_REAL/COOK", "cook" },
{ "A_REAL/DNET", "ac3" },
{ "A_REAL/SIPR", "sipr" },
{ "A_TTA1", "tta" },
{ NULL },
};
@ -1387,7 +1387,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track)
track->a_osfreq = track->a_sfreq;
sh_a->bits_per_coded_sample = track->a_bps ? track->a_bps : 16;
if (!strcmp(track->codec_id, MKV_A_ACM)) { /* AVI compatibility mode */
if (!strcmp(track->codec_id, "A_MS/ACM")) { /* AVI compatibility mode */
// The private_data contains a WAVEFORMATEX struct
if (track->private_size < 18)
goto error;
@ -1435,7 +1435,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track)
sh_a->block_align = 1152;
track->parse = true;
} else if (!strcmp(codec, "pcm")) {
bool is_be = !strcmp(track->codec_id, MKV_A_PCM_BE);
bool is_be = !strcmp(track->codec_id, "A_PCM/INT/BIG");
bool sign = sh_a->bits_per_coded_sample > 8;
mp_set_pcm_codec(sh, sign, false, sh_a->bits_per_coded_sample, is_be);
} else if (!strcmp(codec, "pcm-flt")) {
@ -1614,17 +1614,17 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track)
}
static const char *const mkv_sub_tag[][2] = {
{ MKV_S_VOBSUB, "dvd_subtitle" },
{ MKV_S_TEXTSSA, "ass"},
{ MKV_S_TEXTASS, "ass"},
{ MKV_S_SSA, "ass"},
{ MKV_S_ASS, "ass"},
{ MKV_S_TEXTASCII, "subrip"},
{ MKV_S_TEXTUTF8, "subrip"},
{ MKV_S_PGS, "hdmv_pgs_subtitle"},
{ MKV_S_WEBVTT_S, "webvtt-webm"},
{ MKV_S_WEBVTT_C, "webvtt-webm"},
{ MKV_S_DVB, "dvb_subtitle"},
{ "S_VOBSUB", "dvd_subtitle" },
{ "S_TEXT/SSA", "ass"},
{ "S_TEXT/ASS", "ass"},
{ "S_SSA", "ass"},
{ "S_ASS", "ass"},
{ "S_TEXT/ASCII", "subrip"},
{ "S_TEXT/UTF8", "subrip"},
{ "S_HDMV/PGS", "hdmv_pgs_subtitle"},
{ "D_WEBVTT/SUBTITLES", "webvtt-webm"},
{ "D_WEBVTT/CAPTIONS", "webvtt-webm"},
{ "S_DVBSUB", "dvb_subtitle"},
{0}
};

View File

@ -1,8 +1,4 @@
/*
* CodecID definitions for Matroska files
*
* see http://www.matroska.org/technical/specs/codecid/index.html
*
* This file is part of mpv.
*
* mpv is free software; you can redistribute it and/or modify
@ -25,76 +21,4 @@
struct timeline;
void build_ordered_chapter_timeline(struct timeline *tl);
#define MKV_A_AAC_2MAIN "A_AAC/MPEG2/MAIN"
#define MKV_A_AAC_2LC "A_AAC/MPEG2/LC"
#define MKV_A_AAC_2SBR "A_AAC/MPEG2/LC/SBR"
#define MKV_A_AAC_2SSR "A_AAC/MPEG2/SSR"
#define MKV_A_AAC_4MAIN "A_AAC/MPEG4/MAIN"
#define MKV_A_AAC_4LC "A_AAC/MPEG4/LC"
#define MKV_A_AAC_4SBR "A_AAC/MPEG4/LC/SBR"
#define MKV_A_AAC_4SSR "A_AAC/MPEG4/SSR"
#define MKV_A_AAC_4LTP "A_AAC/MPEG4/LTP"
#define MKV_A_AAC "A_AAC"
#define MKV_A_AC3 "A_AC3"
#define MKV_A_DTS "A_DTS"
#define MKV_A_EAC3 "A_EAC3"
#define MKV_A_MP2 "A_MPEG/L2"
#define MKV_A_MP3 "A_MPEG/L3"
#define MKV_A_PCM "A_PCM/INT/LIT"
#define MKV_A_PCM_BE "A_PCM/INT/BIG"
#define MKV_A_PCM_FLT "A_PCM/FLOAT/IEEE"
#define MKV_A_VORBIS "A_VORBIS"
#define MKV_A_OPUS "A_OPUS"
#define MKV_A_OPUS_EXP "A_OPUS/EXPERIMENTAL"
#define MKV_A_ACM "A_MS/ACM"
#define MKV_A_REAL28 "A_REAL/28_8"
#define MKV_A_REALATRC "A_REAL/ATRC"
#define MKV_A_REALCOOK "A_REAL/COOK"
#define MKV_A_REALDNET "A_REAL/DNET"
#define MKV_A_REALSIPR "A_REAL/SIPR"
#define MKV_A_QDMC "A_QUICKTIME/QDMC"
#define MKV_A_QDMC2 "A_QUICKTIME/QDM2"
#define MKV_A_FLAC "A_FLAC"
#define MKV_A_ALAC "A_ALAC"
#define MKV_A_TTA1 "A_TTA1"
#define MKV_A_WAVPACK "A_WAVPACK4"
#define MKV_A_TRUEHD "A_TRUEHD"
#define MKV_V_MSCOMP "V_MS/VFW/FOURCC"
#define MKV_V_REALV10 "V_REAL/RV10"
#define MKV_V_REALV20 "V_REAL/RV20"
#define MKV_V_REALV30 "V_REAL/RV30"
#define MKV_V_REALV40 "V_REAL/RV40"
#define MKV_V_SORENSONV1 "V_SORENSON/V1"
#define MKV_V_SORENSONV2 "V_SORENSON/V2"
#define MKV_V_SORENSONV3 "V_SORENSON/V3"
#define MKV_V_CINEPAK "V_CINEPAK"
#define MKV_V_QUICKTIME "V_QUICKTIME"
#define MKV_V_MPEG1 "V_MPEG1"
#define MKV_V_MPEG2 "V_MPEG2"
#define MKV_V_MPEG4_SP "V_MPEG4/ISO/SP"
#define MKV_V_MPEG4_ASP "V_MPEG4/ISO/ASP"
#define MKV_V_MPEG4_AP "V_MPEG4/ISO/AP"
#define MKV_V_MPEG4_AVC "V_MPEG4/ISO/AVC"
#define MKV_V_THEORA "V_THEORA"
#define MKV_V_VP8 "V_VP8"
#define MKV_V_VP9 "V_VP9"
#define MKV_V_MJPEG "V_MJPEG"
#define MKV_V_UNCOMPRESSED "V_UNCOMPRESSED"
#define MKV_V_DIRAC "V_DIRAC"
#define MKV_V_PRORES "V_PRORES"
#define MKV_V_HEVC "V_MPEGH/ISO/HEVC"
#define MKV_S_TEXTASCII "S_TEXT/ASCII"
#define MKV_S_TEXTUTF8 "S_TEXT/UTF8"
#define MKV_S_TEXTSSA "S_TEXT/SSA"
#define MKV_S_TEXTASS "S_TEXT/ASS"
#define MKV_S_VOBSUB "S_VOBSUB"
#define MKV_S_PGS "S_HDMV/PGS"
#define MKV_S_SSA "S_SSA" // Deprecated
#define MKV_S_ASS "S_ASS" // Deprecated
#define MKV_S_WEBVTT_S "D_WEBVTT/SUBTITLES"
#define MKV_S_WEBVTT_C "D_WEBVTT/CAPTIONS"
#define MKV_S_DVB "S_DVBSUB"
#endif /* MPLAYER_MATROSKA_H */