summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-03-31 03:23:55 +0300
committerUoti Urpala <uau@mplayer2.org>2011-03-31 03:44:37 +0300
commit9d4d5b4469a16a05226b510e652a4f40099317c0 (patch)
treefe987c6b232eeaa200fb4def720077fbb373b584 /libmpdemux/demux_mkv.c
parent56504de6ff0e33e3d375acb15ea31af9c83e3cb0 (diff)
downloadmpv-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/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c22
1 files changed, 8 insertions, 14 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) {