diff libass/ass_types.h @ 18937:9e95ac641e77

Initial libass release (without mencoder support).
author eugeni
date Fri, 07 Jul 2006 18:26:51 +0000
parents
children c8daf3471201
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libass/ass_types.h	Fri Jul 07 18:26:51 2006 +0000
@@ -0,0 +1,83 @@
+#ifndef __ASS_TYPES_H__
+#define __ASS_TYPES_H__
+
+#define VALIGN_SUB 0
+#define VALIGN_CENTER 8
+#define VALIGN_TOP 4
+#define HALIGN_LEFT 1
+#define HALIGN_CENTER 2
+#define HALIGN_RIGHT 3
+
+/// ass Style: line
+typedef struct ass_style_s {
+	char* Name;
+	char* FontName;
+	int FontSize;
+	uint32_t PrimaryColour;
+	uint32_t SecondaryColour;
+	uint32_t OutlineColour;
+	uint32_t BackColour;
+	int Bold;
+	int Italic;
+	int Underline;
+	int StrikeOut;
+	double ScaleX;
+	double ScaleY;
+	int Spacing;
+	int Angle;
+	int BorderStyle;
+	double Outline;
+	double Shadow;
+	int Alignment;
+	int MarginL;
+	int MarginR;
+	int MarginV;
+//        int AlphaLevel;
+	int Encoding;
+} ass_style_t;
+
+/// ass_event_t corresponds to a single Dialogue line
+/// Text is stored as-is, style overrides will be parsed later
+typedef struct ass_event_s {
+	long long Start; // ms
+	long long Duration; // ms
+
+	int ReadOrder;
+	int Layer;
+	int Style;
+	char* Name;
+	int MarginL;
+	int MarginR;
+	int MarginV;
+	char* Effect;
+	char* Text;
+} ass_event_t;
+
+/// ass track represent either an external script or a matroska subtitle stream (no real difference between them)
+/// it can be used in rendering after the headers are parsed (i.e. events format line read)
+typedef struct ass_track_s {
+	int n_styles; // amount used
+	int max_styles; // amount allocated
+	int n_events;
+	int max_events;
+	ass_style_t* styles; // array of styles, max_styles length, n_styles used
+	ass_event_t* events; // the same as styles
+
+	char* style_format; // style format line (everything after "Format: ")
+	char* event_format; // event format line
+
+	enum {TRACK_TYPE_ASS, TRACK_TYPE_SSA} track_type;
+	
+	// script header fields
+	int PlayResX;
+	int PlayResY;
+	double Timer;
+	int WrapStyle;
+
+	
+	int default_style; // index of default style
+	char* name; // file name in case of external subs, 0 for streams
+} ass_track_t;
+
+#endif
+