diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-08-27 21:07:31 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-08-27 21:07:31 +0000 |
commit | 9e4f77e44c96cf4ff4e0186e645dbe08b1e80761 (patch) | |
tree | d873d937523e09226f4544aa6dff447d95752985 /src/demuxers/demux_matroska.c | |
parent | e46ac635c2c28d80706f02f239bb847c7e48c34b (diff) | |
download | xine-lib-9e4f77e44c96cf4ff4e0186e645dbe08b1e80761.tar.gz xine-lib-9e4f77e44c96cf4ff4e0186e645dbe08b1e80761.tar.bz2 |
generic mechanism for specifying subtitles encoding at demuxer level
fixes problems with matroska utf-8 subtitles
CVS patchset: 6911
CVS date: 2004/08/27 21:07:31
Diffstat (limited to 'src/demuxers/demux_matroska.c')
-rw-r--r-- | src/demuxers/demux_matroska.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c index d281590be..e37fc81e3 100644 --- a/src/demuxers/demux_matroska.c +++ b/src/demuxers/demux_matroska.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_matroska.c,v 1.29 2004/07/14 01:18:48 miguelfreitas Exp $ + * $Id: demux_matroska.c,v 1.30 2004/08/27 21:07:31 miguelfreitas Exp $ * * demultiplexer for matroska streams * @@ -749,7 +749,10 @@ static void handle_sub_ssa (demux_plugin_t *this_gen, matroska_track_t *track, buf = track->fifo->buffer_pool_alloc(track->fifo); buf->type = track->buf_type; - buf->decoder_flags = decoder_flags; + buf->decoder_flags = decoder_flags | BUF_FLAG_SPECIAL; + buf->decoder_info[1] = BUF_SPECIAL_CHARSET_ENCODING; + buf->decoder_info_ptr[2] = "utf-8"; + buf->decoder_info[2] = strlen(buf->decoder_info_ptr[2]); val = (uint32_t *)buf->content; *val++ = data_pts / 90; /* start time */ @@ -815,6 +818,11 @@ static void handle_sub_utf8 (demux_plugin_t *this_gen, matroska_track_t *track, buf->decoder_flags = decoder_flags; buf->type = track->buf_type; + buf->decoder_flags = decoder_flags | BUF_FLAG_SPECIAL; + buf->decoder_info[1] = BUF_SPECIAL_CHARSET_ENCODING; + buf->decoder_info_ptr[2] = "utf-8"; + buf->decoder_info[2] = strlen(buf->decoder_info_ptr[2]); + val = (uint32_t *)buf->content; *val++ = data_pts / 90; /* start time */ *val++ = (data_pts + data_duration) / 90; /* end time */ |