diff options
author | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-16 21:06:43 +0000 |
---|---|---|
committer | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-16 21:06:43 +0000 |
commit | ba57485970813104f7eace2467b9bd468a8f408c (patch) | |
tree | 8cae6096eadfcc2417888063403ed5cc6496c077 | |
parent | 3be6461cb4dec0bc674151ec81845d8fa46684fc (diff) |
Support for VobSub-in-Matroska; parts outside of demux_mkv.cpp.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11154 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmpdemux/matroska.h | 7 | ||||
-rw-r--r-- | mplayer.c | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/libmpdemux/matroska.h b/libmpdemux/matroska.h index 4cf985347e..9738c39251 100644 --- a/libmpdemux/matroska.h +++ b/libmpdemux/matroska.h @@ -44,5 +44,12 @@ #define MKV_S_TEXTASCII "S_TEXT/ASCII" #define MKV_S_TEXTUTF8 "S_TEXT/UTF8" #define MKV_S_TEXTSSA "S_TEXT/SSA" +#define MKV_S_VOBSUB "S_VOBSUB" + +typedef struct { + char type; // t = text, v = VobSub + unsigned int palette[16]; // for VobSubs + int width, height; // for VobSubs +} mkv_sh_sub_t; #endif /* __MATROSKA_H */ @@ -104,6 +104,9 @@ static int quiet=0; static int last_dvb_step = 1; #endif +#ifdef HAVE_MATROSKA +#include "libmpdemux/matroska.h" +#endif //**************************************************************************// // Playtree @@ -1602,6 +1605,16 @@ if (vo_spudec==NULL && stream->type==STREAMTYPE_DVD) { } #endif +#ifdef HAVE_MATROSKA +if ((vo_spudec == NULL) && (demuxer->type == DEMUXER_TYPE_MATROSKA) && + (d_dvdsub->sh != NULL) && (((mkv_sh_sub_t *)d_dvdsub->sh)->type == 'v')) { + current_module = "spudec_init_matroska"; + vo_spudec = spudec_new_scaled(((mkv_sh_sub_t *)d_dvdsub->sh)->palette, + ((mkv_sh_sub_t *)d_dvdsub->sh)->width, + ((mkv_sh_sub_t *)d_dvdsub->sh)->height); +} +#endif + if (vo_spudec==NULL) { current_module="spudec_init_normal"; vo_spudec=spudec_new_scaled(NULL, sh_video->disp_w, sh_video->disp_h); |