diff options
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -1040,6 +1040,10 @@ void init_vo_spudec(void) { spudec_set_font_factor(vo_spudec,font_factor); } +#ifdef HAVE_TV_TELETEXT + if (vo_spudec==NULL && mpctx->demuxer->type==DEMUXER_TYPE_TV) + vo_spudec=spudec_new_scaled(NULL, mpctx->sh_video->disp_w, mpctx->sh_video->disp_h); +#endif if (vo_spudec!=NULL) inited_flags|=INITED_SPUDEC; } @@ -1622,6 +1626,7 @@ static int generate_video_frame(sh_video_t *sh_video, demux_stream_t *d_video) decoded_frame = decode_video(sh_video, start, in_size, 0, pts); if (decoded_frame) { update_subtitles(sh_video, mpctx->d_sub, 0); + update_teletext(sh_video, mpctx->demuxer, 0); update_osd_msg(); current_module = "filter video"; if (filter_video(sh_video, decoded_frame, sh_video->pts)) @@ -2036,6 +2041,7 @@ static double update_video(int *blit_frame) ++total_frame_cnt; } update_subtitles(sh_video, mpctx->d_sub, 0); + update_teletext(sh_video, mpctx->demuxer, 0); update_osd_msg(); current_module = "decode_video"; decoded_frame = decode_video(sh_video, start, in_size, drop_frame, @@ -2249,6 +2255,7 @@ static int seek(MPContext *mpctx, double amount, int style) // be completely wrong (probably 0). mpctx->sh_video->pts = mpctx->d_video->pts; update_subtitles(mpctx->sh_video, mpctx->d_sub, 1); + update_teletext(mpctx->sh_video, mpctx->demuxer, 1); } if (mpctx->sh_audio) { @@ -3123,7 +3130,11 @@ demux_info_print(mpctx->demuxer); //================== Read SUBTITLES (DVD & TEXT) ========================== if(vo_spudec==NULL && mpctx->sh_video && - (mpctx->stream->type==STREAMTYPE_DVD || mpctx->stream->type == STREAMTYPE_DVDNAV || mpctx->d_sub->id >= 0)){ + (mpctx->stream->type==STREAMTYPE_DVD || mpctx->stream->type == STREAMTYPE_DVDNAV || +#ifdef HAVE_TV_TELETEXT + mpctx->demuxer->type==DEMUXER_TYPE_TV || +#endif + mpctx->d_sub->id >= 0)){ init_vo_spudec(); } |