comparison mplayer.c @ 13126:b59e16a8dfc7

Support for subtitle switching in Matroska.
author mosu
date Tue, 24 Aug 2004 20:58:29 +0000
parents fcce0023bf55
children 957fc21fc10a
comparison
equal deleted inserted replaced
13125:69f13a4cbab9 13126:b59e16a8dfc7
1588 1588
1589 /* display clip info */ 1589 /* display clip info */
1590 demux_info_print(demuxer); 1590 demux_info_print(demuxer);
1591 1591
1592 //================== Read SUBTITLES (DVD & TEXT) ========================== 1592 //================== Read SUBTITLES (DVD & TEXT) ==========================
1593 if(vo_spudec==NULL && sh_video && stream->type==STREAMTYPE_DVD){ 1593 if(vo_spudec==NULL && sh_video && (stream->type==STREAMTYPE_DVD || demuxer->type==DEMUXER_TYPE_MATROSKA)){
1594 1594
1595 if (spudec_ifo) { 1595 if (spudec_ifo) {
1596 unsigned int palette[16], width, height; 1596 unsigned int palette[16], width, height;
1597 current_module="spudec_init_vobsub"; 1597 current_module="spudec_init_vobsub";
1598 if (vobsub_parse_ifo(NULL,spudec_ifo, palette, &width, &height, 1, -1, NULL) >= 0) 1598 if (vobsub_parse_ifo(NULL,spudec_ifo, palette, &width, &height, 1, -1, NULL) >= 0)
3174 new_id = -1; 3174 new_id = -1;
3175 if (new_id != dvdsub_id) 3175 if (new_id != dvdsub_id)
3176 osd_show_vobsub_changed = sh_video->fps; 3176 osd_show_vobsub_changed = sh_video->fps;
3177 dvdsub_id = new_id; 3177 dvdsub_id = new_id;
3178 d_dvdsub->id = demux_ogg_sub_id(new_id); 3178 d_dvdsub->id = demux_ogg_sub_id(new_id);
3179 }
3180 #endif
3181 #ifdef HAVE_MATROSKA
3182 if (d_dvdsub && demuxer->type == DEMUXER_TYPE_MATROSKA) {
3183 int new_id = dvdsub_id + 1;
3184 if (dvdsub_id < 0)
3185 new_id = 0;
3186 if ((unsigned int) new_id >= demux_mkv_num_subs(demuxer))
3187 new_id = -1;
3188 if (new_id != dvdsub_id)
3189 osd_show_vobsub_changed = sh_video->fps;
3190 dvdsub_id = new_id;
3191 d_dvdsub->id = demux_mkv_change_subs(demuxer, new_id);
3192 if (d_dvdsub->id >= 0 && ((mkv_sh_sub_t *)d_dvdsub->sh)->type == 'v') {
3193 mkv_sh_sub_t *mkv_sh_sub = (mkv_sh_sub_t *)d_dvdsub->sh;
3194 if (vo_spudec != NULL)
3195 spudec_free(vo_spudec);
3196 vo_spudec =
3197 spudec_new_scaled_vobsub(mkv_sh_sub->palette, mkv_sh_sub->colors,
3198 mkv_sh_sub->custom_colors,
3199 mkv_sh_sub->width,
3200 mkv_sh_sub->height);
3201 if (!forced_subs_only)
3202 forced_subs_only = mkv_sh_sub->forced_subs_only;
3203 if (vo_spudec) {
3204 spudec_set_forced_subs_only(vo_spudec, forced_subs_only);
3205 inited_flags |= INITED_SPUDEC;
3206 }
3207 }
3179 } 3208 }
3180 #endif 3209 #endif
3181 break; 3210 break;
3182 case MP_CMD_SUB_FORCED_ONLY: 3211 case MP_CMD_SUB_FORCED_ONLY:
3183 if (vo_spudec) { 3212 if (vo_spudec) {