summaryrefslogtreecommitdiffstats
path: root/sub/sub.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-06-01 19:44:12 +0200
committerwm4 <wm4@nowhere>2013-06-01 19:44:16 +0200
commit02ce316ade9ba932ad405383278d6b01c54e5fc4 (patch)
tree4151e307fafc30a4079d4cd79c3d85d92df35105 /sub/sub.h
parent27d383918a3d63559c85ca96b2162a13234f2abc (diff)
downloadmpv-02ce316ade9ba932ad405383278d6b01c54e5fc4.tar.bz2
mpv-02ce316ade9ba932ad405383278d6b01c54e5fc4.tar.xz
sub: refactor
Make the sub decoder stuff independent from sh_sub (except for initialization of course). Sub decoders now access a struct sd only, instead of getting access to sh_sub. The glue code in dec_sub.c is similarily independent from osd. Some simplifications are made. For example, the switch_id stuff is unneeded: the frontend code just has to make sure to call osd_changed() any time subtitles are switched. This is also preparation for introducing subtitle converters. It's much cleaner to completely separate demuxer header/renderer glue/decoders for this purpose, especially since sub converters might completely change how demuxer headers have to be interpreted. Also pass data as demux_packets. Currently, this doesn't help much, but libavcodec converters might need scary stuff like packet side data, so it's perhaps better to go with passing packets.
Diffstat (limited to 'sub/sub.h')
-rw-r--r--sub/sub.h9
1 files changed, 2 insertions, 7 deletions
diff --git a/sub/sub.h b/sub/sub.h
index fae7202ed5..a13d3ca6f8 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -120,7 +120,6 @@ struct osd_state {
struct ass_library *ass_library;
struct ass_renderer *ass_renderer;
- struct sh_sub *sh_sub;
double sub_offset;
double vo_pts;
@@ -138,15 +137,11 @@ struct osd_state {
float progbar_value; // range 0.0-1.0
float *progbar_stops; // used for chapter indicators (0.0-1.0 each)
int progbar_num_stops;
-
- int switch_sub_id;
+ // OSDTYPE_SUB
+ struct dec_sub *dec_sub;
struct MPOpts *opts;
- // Video resolution used for subtitle decoding. Doesn't necessarily match
- // the resolution of the VO, nor does it have to be the OSD resolution.
- int sub_video_w, sub_video_h;
-
// Internal to sub.c
struct mp_draw_sub_cache *draw_cache;