summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-16 10:22:54 +0200
committerwm4 <wm4@nowhere>2013-04-20 23:28:27 +0200
commit018530cb7490600bf1f14bfe7cc93e18321ddce7 (patch)
tree580194781a116c09c19299cf9bc09bb7e1a2ad2d
parent15ff7a57198beb675e379b0453561e5bc90e8859 (diff)
downloadmpv-018530cb7490600bf1f14bfe7cc93e18321ddce7.tar.bz2
mpv-018530cb7490600bf1f14bfe7cc93e18321ddce7.tar.xz
demux_mkv: always add subtitle tracks
Even if the codec is unknown.
-rw-r--r--demux/demux_mkv.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 647f831630..d8159ac1e2 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1578,35 +1578,35 @@ static int demux_mkv_open_sub(demuxer_t *demuxer, mkv_track_t *track)
break;
}
}
- if (subtitle_type) {
- bstr in = (bstr){track->private_data, track->private_size};
- struct sh_stream *gsh = new_sh_stream(demuxer, STREAM_SUB);
- if (!gsh)
- return 1;
- track->stream = gsh;
- sh_sub_t *sh = gsh->sub;
- sh->gsh->demuxer_id = track->tnum;
- track->sh_sub = sh;
- sh->gsh->codec = subtitle_type;
- bstr buffer = demux_mkv_decode(track, in, 2);
- if (buffer.start && buffer.start != track->private_data) {
- talloc_free(track->private_data);
- talloc_steal(track, buffer.start);
- track->private_data = buffer.start;
- track->private_size = buffer.len;
- }
- sh->extradata = malloc(track->private_size);
- memcpy(sh->extradata, track->private_data, track->private_size);
- sh->extradata_len = track->private_size;
- if (track->language && (strcmp(track->language, "und") != 0))
- sh->gsh->lang = talloc_strdup(sh, track->language);
- sh->gsh->title = talloc_strdup(sh, track->name);
- sh->gsh->default_track = track->default_track;
- } else {
+
+ bstr in = (bstr){track->private_data, track->private_size};
+ struct sh_stream *gsh = new_sh_stream(demuxer, STREAM_SUB);
+ if (!gsh)
+ return 1;
+ track->stream = gsh;
+ sh_sub_t *sh = gsh->sub;
+ sh->gsh->demuxer_id = track->tnum;
+ track->sh_sub = sh;
+ sh->gsh->codec = subtitle_type;
+ bstr buffer = demux_mkv_decode(track, in, 2);
+ if (buffer.start && buffer.start != track->private_data) {
+ talloc_free(track->private_data);
+ talloc_steal(track, buffer.start);
+ track->private_data = buffer.start;
+ track->private_size = buffer.len;
+ }
+ sh->extradata = malloc(track->private_size);
+ memcpy(sh->extradata, track->private_data, track->private_size);
+ sh->extradata_len = track->private_size;
+ if (track->language && (strcmp(track->language, "und") != 0))
+ sh->gsh->lang = talloc_strdup(sh, track->language);
+ sh->gsh->title = talloc_strdup(sh, track->name);
+ sh->gsh->default_track = track->default_track;
+
+ if (!subtitle_type) {
mp_tmsg(MSGT_DEMUX, MSGL_ERR,
"[mkv] Subtitle type '%s' is not supported.\n",
track->codec_id);
- return 1;
}
return 0;