From f544cd05010fe1e5d6da7f8674fa0cc357c6d035 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 19 Jun 2015 21:41:57 +0200 Subject: 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. --- demux/demux_mkv.c | 116 +++++++++++++++++++++++++++--------------------------- demux/matroska.h | 76 ----------------------------------- 2 files changed, 58 insertions(+), 134 deletions(-) (limited to 'demux') diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index e4c1e94023..0ffa1b8d52 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -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} }; diff --git a/demux/matroska.h b/demux/matroska.h index fce4e6a43c..169ee7fbcf 100644 --- a/demux/matroska.h +++ b/demux/matroska.h @@ -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 */ -- cgit v1.2.3