summaryrefslogtreecommitdiffstats
path: root/sub/dec_sub.h
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2012-08-25 21:22:39 +0300
committerwm4 <wm4@nowhere>2012-09-18 21:04:46 +0200
commit89a57148934ec7f150a6170ac1313f6f5c636596 (patch)
treeacff6dbda4ea8623ea4ce4d86834fe74f015653e /sub/dec_sub.h
parent9bb03b7db40408b9dc4a0e1405a5bac754893e2b (diff)
downloadmpv-89a57148934ec7f150a6170ac1313f6f5c636596.tar.bz2
mpv-89a57148934ec7f150a6170ac1313f6f5c636596.tar.xz
subs: always use sub decoder framework for libass rendering
Remove subtitle selection code setting osd->ass_track directly and vf_ass/vf_vo code rendering the track directly with libass. Instead, do track selection and rendering with dec_sub.c functions. Before, mpctx->set_of_ass_tracks[] contained bare libass tracks generated from external subtitle files. For use with dec_sub.c, it now contains struct sh_sub instances with decoder already initialized. This commit breaks the sub_step command ('g' and 'y' keys) for libass-rendered subtitles. It could be fixed, but it's so useless - especially as with the existing implementation there's no practical way to get subtitle delay back to normal after using it - that I didn't bother. Conflicts: command.c mp_core.h mplayer.c
Diffstat (limited to 'sub/dec_sub.h')
-rw-r--r--sub/dec_sub.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sub/dec_sub.h b/sub/dec_sub.h
index e58ad65550..f09b555685 100644
--- a/sub/dec_sub.h
+++ b/sub/dec_sub.h
@@ -3,12 +3,18 @@
struct sh_sub;
struct osd_state;
+struct ass_track;
typedef struct mp_eosd_res {
int w, h; // screen dimensions, including black borders
int mt, mb, ml, mr; // borders (top, bottom, left, right)
} mp_eosd_res_t;
+typedef struct sub_bitmaps {
+ struct ass_image *imgs;
+ int changed;
+} mp_eosd_images_t;
+
static inline bool is_text_sub(int type)
{
return type == 't' || type == 'm' || type == 'a';
@@ -16,9 +22,14 @@ static inline bool is_text_sub(int type)
void sub_decode(struct sh_sub *sh, struct osd_state *osd, void *data,
int data_len, double pts, double duration);
+void sub_get_bitmaps(struct osd_state *osd, struct sub_bitmaps *res);
void sub_init(struct sh_sub *sh, struct osd_state *osd);
void sub_reset(struct sh_sub *sh, struct osd_state *osd);
void sub_switchoff(struct sh_sub *sh, struct osd_state *osd);
void sub_uninit(struct sh_sub *sh);
+struct sh_sub *sd_ass_create_from_track(struct ass_track *track,
+ bool vsfilter_aspect,
+ struct MPOpts *opts);
+
#endif