summaryrefslogtreecommitdiffstats
path: root/sub/sub.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-10-04 17:16:40 +0200
committerwm4 <wm4@nowhere>2012-10-16 07:26:32 +0200
commitcc05910f16a5ccd8e3dca26a89e9c3835cbdb645 (patch)
treea95fcec3775de31f0fd5b4f52a43f60115bc292c /sub/sub.c
parent05f4f00e24caf23646a2b551b8e1a1a1abe76de7 (diff)
downloadmpv-cc05910f16a5ccd8e3dca26a89e9c3835cbdb645.tar.bz2
mpv-cc05910f16a5ccd8e3dca26a89e9c3835cbdb645.tar.xz
sub: cosmetics: move things around
Move sub-bitmap definitions from dec_sub.h to sub.h. While it's a bit odd that OSD data structures are in a file named sub.h, it's definitely way too strange to have them in a file about subtitle decoding. (Maybe sub.h/.c and the sub/ directory should be split out and renamed "osd" at a later point.) Remove including ass_mp.h (and the libass headers) where possible. Remove typedefs for mp_eosd_res and sub_bitmaps structs. Store a mp_eosd_res struct in osd_state instead of just w/h. Note that sbtitles might be rendered using different sizes/margins when filters are involved (the subtitle renderer is not supposed to use the OSD res directly, and the "dim" member removed in the previous commit is something different).
Diffstat (limited to 'sub/sub.c')
-rw-r--r--sub/sub.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 600ef6fae1..b2d9eb82fc 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -35,7 +35,7 @@
#include "mp_msg.h"
#include "libvo/video_out.h"
#include "sub.h"
-#include "sub/ass_mp.h"
+#include "dec_sub.h"
#include "img_convert.h"
#include "spudec.h"
@@ -92,9 +92,11 @@ static struct osd_state *global_osd;
static void osd_update_ext(struct osd_state *osd, struct mp_eosd_res res)
{
- if (osd->w != res.w || osd->h != res.h) {
- osd->w = res.w;
- osd->h = res.h;
+ struct mp_eosd_res old = osd->res;
+ if (old.w != res.w || old.h != res.h || old.ml != res.ml || old.mt != res.mt
+ || old.mr != res.mr || old.mb != res.mb)
+ {
+ osd->res = res;
for (int n = 0; n < MAX_OSD_PARTS; n++)
osd->objs[n]->force_redraw = true;
}
@@ -171,7 +173,7 @@ static bool render_object(struct osd_state *osd, struct osd_object *obj,
if (obj->type == OSDTYPE_SPU) {
*out_imgs = (struct sub_bitmaps) {0};
if (spu_visible(osd, obj))
- spudec_get_bitmap(vo_spudec, osd->w, osd->h, out_imgs);
+ spudec_get_bitmap(vo_spudec, osd->res.w, osd->res.h, out_imgs);
// Normal change-detection (sub. dec. calls vo_osd_changed(OSDTYPE_SPU))
if (obj->force_redraw) {
out_imgs->bitmap_id++;
@@ -269,7 +271,7 @@ bool osd_draw_sub(struct osd_state *osd, struct sub_bitmaps *out_imgs,
void draw_osd_with_eosd(struct vo *vo, struct osd_state *osd)
{
- mp_eosd_res_t dim = {0};
+ struct mp_eosd_res dim = {0};
if (vo_control(vo, VOCTRL_GET_EOSD_RES, &dim) != VO_TRUE)
return;