summaryrefslogtreecommitdiffstats
path: root/libvo/sub.h
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-15 19:17:12 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-15 19:17:12 +0000
commitdffeec9ce10e7c3f44ec2aaba8b80952e231cf99 (patch)
tree1816f84e496f9e565333e161e69bfb4639b1a1fd /libvo/sub.h
parent5814bcece380261027d0527fc7606b7808e529b0 (diff)
downloadmpv-dffeec9ce10e7c3f44ec2aaba8b80952e231cf99.tar.bz2
mpv-dffeec9ce10e7c3f44ec2aaba8b80952e231cf99.tar.xz
new osd code, use osd objs to follow changes and do minimal updates
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5639 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/sub.h')
-rw-r--r--libvo/sub.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/libvo/sub.h b/libvo/sub.h
index 574da401f4..b09d7a80c3 100644
--- a/libvo/sub.h
+++ b/libvo/sub.h
@@ -2,6 +2,48 @@
#ifndef __MPLAYER_SUB_H
#define __MPLAYER_SUB_H
+typedef struct mp_osd_bbox_s {
+ int x1,y1,x2,y2;
+} mp_osd_bbox_t;
+
+#define OSDTYPE_OSD 1
+#define OSDTYPE_SUBTITLE 2
+#define OSDTYPE_PROGBAR 3
+#define OSDTYPE_SPU 4
+#define OSDTYPE_VOBSUB 5
+
+#define OSDFLAG_VISIBLE 1
+#define OSDFLAG_CHANGED 2
+#define OSDFLAG_BBOX 4
+#define OSDFLAG_OLD_BBOX 8
+#define OSDFLAG_FORCE_UPDATE 16
+
+#define MAX_UCS 1600
+#define MAX_UCSLINES 16
+
+typedef struct mp_osd_obj_s {
+ struct mp_osd_obj_s* next;
+ unsigned char type;
+ unsigned char alignment; // 2 bits: x;y percents, 2 bits: x;y relative to parent; 2 bits: alignment left/right/center
+ unsigned short flags;
+ int x,y;
+ int dxs,dys;
+ mp_osd_bbox_t bbox; // bounding box
+ mp_osd_bbox_t old_bbox; // the renderer will save bbox here
+ union {
+ struct {
+ void* sub; // value of vo_sub at last update
+ int utbl[MAX_UCS+1]; // subtitle text
+ int xtbl[MAX_UCSLINES]; // x positions
+ int lines; // no. of lines
+ } subtitle;
+ struct {
+ int elems;
+ } progbar;
+ } params;
+} mp_osd_obj_t;
+
+
#if 0
// disable subtitles:
@@ -48,6 +90,8 @@ extern char * __sub_osd_names_short[];
//extern void vo_draw_text_sub(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride));
extern void vo_draw_text(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride));
+void vo_init_osd();
+int vo_update_osd(int dxs,int dys);
int vo_osd_changed(int new_value);
#endif