diff options
author | Uoti Urpala <uau@mplayer2.org> | 2011-03-31 03:23:55 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-03-31 03:44:37 +0300 |
commit | 9d4d5b4469a16a05226b510e652a4f40099317c0 (patch) | |
tree | fe987c6b232eeaa200fb4def720077fbb373b584 /libmpdemux | |
parent | 56504de6ff0e33e3d375acb15ea31af9c83e3cb0 (diff) | |
download | mpv-9d4d5b4469a16a05226b510e652a4f40099317c0.tar.bz2 mpv-9d4d5b4469a16a05226b510e652a4f40099317c0.tar.xz |
demux_mkv: simplify subtitle type recognition
Remove indirection through MATROSKA_SUBTYPE_* and instead set the
per-track type field to the letter identifier used in public sh_sub.
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_mkv.c | 22 | ||||
-rw-r--r-- | libmpdemux/ebml.h | 6 |
2 files changed, 8 insertions, 20 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 85bea70780..e76a385e3f 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -604,17 +604,15 @@ static void parse_trackentry(struct demuxer *demuxer, || !strcmp(track->codec_id, MKV_A_ACM)) track->ms_compat = 1; else if (!strcmp(track->codec_id, MKV_S_VOBSUB)) - track->subtitle_type = MATROSKA_SUBTYPE_VOBSUB; + track->subtitle_type = 'v'; else if (!strcmp(track->codec_id, MKV_S_TEXTSSA) || !strcmp(track->codec_id, MKV_S_TEXTASS) || !strcmp(track->codec_id, MKV_S_SSA) - || !strcmp(track->codec_id, MKV_S_ASS)) { - track->subtitle_type = MATROSKA_SUBTYPE_SSA; - } else if (!strcmp(track->codec_id, MKV_S_TEXTASCII)) - track->subtitle_type = MATROSKA_SUBTYPE_TEXT; - if (!strcmp(track->codec_id, MKV_S_TEXTUTF8)) { - track->subtitle_type = MATROSKA_SUBTYPE_TEXT; - } + || !strcmp(track->codec_id, MKV_S_ASS)) + track->subtitle_type = 'a'; + else if (!strcmp(track->codec_id, MKV_S_TEXTASCII) + || !strcmp(track->codec_id, MKV_S_TEXTUTF8)) + track->subtitle_type = 't'; mp_msg(MSGT_DEMUX, MSGL_V, "[mkv] | + Codec ID: %s\n", track->codec_id); } else @@ -1567,16 +1565,12 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, static int demux_mkv_open_sub(demuxer_t *demuxer, mkv_track_t *track, int sid) { - if (track->subtitle_type != MATROSKA_SUBTYPE_UNKNOWN) { + if (track->subtitle_type) { int size; uint8_t *buffer; sh_sub_t *sh = new_sh_sub(demuxer, sid); track->sh_sub = sh; - sh->type = 't'; - if (track->subtitle_type == MATROSKA_SUBTYPE_VOBSUB) - sh->type = 'v'; - if (track->subtitle_type == MATROSKA_SUBTYPE_SSA) - sh->type = 'a'; + sh->type = track->subtitle_type; size = track->private_size; demux_mkv_decode(track, track->private_data, &buffer, &size, 2); if (buffer && buffer != track->private_data) { diff --git a/libmpdemux/ebml.h b/libmpdemux/ebml.h index 395ffc4df5..866e620c61 100644 --- a/libmpdemux/ebml.h +++ b/libmpdemux/ebml.h @@ -76,12 +76,6 @@ struct ebml_parse_ctx { #define MATROSKA_TRACK_SUBTITLE 0x11 /* text-subtitles */ #define MATROSKA_TRACK_CONTROL 0x20 /* control-codes for menu or other stuff*/ -/* matroska subtitle types */ -#define MATROSKA_SUBTYPE_UNKNOWN 0 -#define MATROSKA_SUBTYPE_TEXT 1 -#define MATROSKA_SUBTYPE_SSA 2 -#define MATROSKA_SUBTYPE_VOBSUB 3 - #ifndef UINT64_MAX #define UINT64_MAX 18446744073709551615ULL #endif |