mirror of
https://github.com/mpv-player/mpv
synced 2025-03-20 18:28:01 +00:00
Move vo_spudec initialization into a separate function, for later reuse
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21135 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
95de8f239f
commit
c99a4cad08
86
mplayer.c
86
mplayer.c
@ -1031,6 +1031,51 @@ void update_set_of_subtitles(void)
|
|||||||
}
|
}
|
||||||
#endif /* USE_SUB */
|
#endif /* USE_SUB */
|
||||||
|
|
||||||
|
void init_vo_spudec(void) {
|
||||||
|
if (vo_spudec)
|
||||||
|
spudec_free(vo_spudec);
|
||||||
|
inited_flags &= ~INITED_SPUDEC;
|
||||||
|
vo_spudec = NULL;
|
||||||
|
if (spudec_ifo) {
|
||||||
|
unsigned int palette[16], width, height;
|
||||||
|
current_module="spudec_init_vobsub";
|
||||||
|
if (vobsub_parse_ifo(NULL,spudec_ifo, palette, &width, &height, 1, -1, NULL) >= 0)
|
||||||
|
vo_spudec=spudec_new_scaled(palette, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_DVDREAD
|
||||||
|
if (vo_spudec==NULL && stream->type==STREAMTYPE_DVD) {
|
||||||
|
current_module="spudec_init_dvdread";
|
||||||
|
vo_spudec=spudec_new_scaled(((dvd_priv_t *)(stream->priv))->cur_pgc->palette,
|
||||||
|
sh_video->disp_w, sh_video->disp_h);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if ((vo_spudec == NULL) && (demuxer->type == DEMUXER_TYPE_MATROSKA) &&
|
||||||
|
(d_dvdsub->sh != NULL) && (((sh_sub_t *)d_dvdsub->sh)->type == 'v')) {
|
||||||
|
sh_sub_t *mkv_sh_sub = (sh_sub_t *)d_dvdsub->sh;
|
||||||
|
current_module = "spudec_init_matroska";
|
||||||
|
vo_spudec =
|
||||||
|
spudec_new_scaled_vobsub(mkv_sh_sub->palette, mkv_sh_sub->colors,
|
||||||
|
mkv_sh_sub->custom_colors, mkv_sh_sub->width,
|
||||||
|
mkv_sh_sub->height);
|
||||||
|
forced_subs_only = mkv_sh_sub->forced_subs_only;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vo_spudec==NULL) {
|
||||||
|
sh_sub_t *sh = (sh_sub_t *)d_dvdsub->sh;
|
||||||
|
unsigned int *palette = NULL;
|
||||||
|
if (sh && sh->has_palette)
|
||||||
|
palette = sh->palette;
|
||||||
|
current_module="spudec_init_normal";
|
||||||
|
vo_spudec=spudec_new_scaled(palette, sh_video->disp_w, sh_video->disp_h);
|
||||||
|
spudec_set_font_factor(vo_spudec,font_factor);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vo_spudec!=NULL)
|
||||||
|
inited_flags|=INITED_SPUDEC;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In Mac OS X the SDL-lib is built upon Cocoa. The easiest way to
|
* In Mac OS X the SDL-lib is built upon Cocoa. The easiest way to
|
||||||
* make it all work is to use the builtin SDL-bootstrap code, which
|
* make it all work is to use the builtin SDL-bootstrap code, which
|
||||||
@ -4384,46 +4429,7 @@ demux_info_print(demuxer);
|
|||||||
//================== Read SUBTITLES (DVD & TEXT) ==========================
|
//================== Read SUBTITLES (DVD & TEXT) ==========================
|
||||||
if(vo_spudec==NULL && sh_video &&
|
if(vo_spudec==NULL && sh_video &&
|
||||||
(stream->type==STREAMTYPE_DVD || d_dvdsub->id >= 0)){
|
(stream->type==STREAMTYPE_DVD || d_dvdsub->id >= 0)){
|
||||||
|
init_vo_spudec();
|
||||||
if (spudec_ifo) {
|
|
||||||
unsigned int palette[16], width, height;
|
|
||||||
current_module="spudec_init_vobsub";
|
|
||||||
if (vobsub_parse_ifo(NULL,spudec_ifo, palette, &width, &height, 1, -1, NULL) >= 0)
|
|
||||||
vo_spudec=spudec_new_scaled(palette, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef USE_DVDREAD
|
|
||||||
if (vo_spudec==NULL && stream->type==STREAMTYPE_DVD) {
|
|
||||||
current_module="spudec_init_dvdread";
|
|
||||||
vo_spudec=spudec_new_scaled(((dvd_priv_t *)(stream->priv))->cur_pgc->palette,
|
|
||||||
sh_video->disp_w, sh_video->disp_h);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if ((vo_spudec == NULL) && (demuxer->type == DEMUXER_TYPE_MATROSKA) &&
|
|
||||||
(d_dvdsub->sh != NULL) && (((sh_sub_t *)d_dvdsub->sh)->type == 'v')) {
|
|
||||||
sh_sub_t *mkv_sh_sub = (sh_sub_t *)d_dvdsub->sh;
|
|
||||||
current_module = "spudec_init_matroska";
|
|
||||||
vo_spudec =
|
|
||||||
spudec_new_scaled_vobsub(mkv_sh_sub->palette, mkv_sh_sub->colors,
|
|
||||||
mkv_sh_sub->custom_colors, mkv_sh_sub->width,
|
|
||||||
mkv_sh_sub->height);
|
|
||||||
forced_subs_only = mkv_sh_sub->forced_subs_only;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vo_spudec==NULL) {
|
|
||||||
sh_sub_t *sh = (sh_sub_t *)d_dvdsub->sh;
|
|
||||||
unsigned int *palette = NULL;
|
|
||||||
if (sh && sh->has_palette)
|
|
||||||
palette = sh->palette;
|
|
||||||
current_module="spudec_init_normal";
|
|
||||||
vo_spudec=spudec_new_scaled(palette, sh_video->disp_w, sh_video->disp_h);
|
|
||||||
spudec_set_font_factor(vo_spudec,font_factor);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vo_spudec!=NULL)
|
|
||||||
inited_flags|=INITED_SPUDEC;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply current settings for forced subs
|
// Apply current settings for forced subs
|
||||||
|
Loading…
Reference in New Issue
Block a user