summaryrefslogtreecommitdiffstats
path: root/sub/subreader.h
diff options
context:
space:
mode:
Diffstat (limited to 'sub/subreader.h')
-rw-r--r--sub/subreader.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/sub/subreader.h b/sub/subreader.h
new file mode 100644
index 0000000000..9c7465d71a
--- /dev/null
+++ b/sub/subreader.h
@@ -0,0 +1,114 @@
+/*
+ * This file is part of MPlayer.
+ *
+ * MPlayer is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * MPlayer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with MPlayer; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef MPLAYER_SUBREADER_H
+#define MPLAYER_SUBREADER_H
+
+#include <stdio.h>
+#include <stdbool.h>
+
+#include "config.h"
+
+extern int suboverlap_enabled;
+extern int sub_no_text_pp; // disable text post-processing
+extern int sub_match_fuzziness;
+
+// subtitle formats
+#define SUB_INVALID -1
+#define SUB_MICRODVD 0
+#define SUB_SUBRIP 1
+#define SUB_SUBVIEWER 2
+#define SUB_SAMI 3
+#define SUB_VPLAYER 4
+#define SUB_RT 5
+#define SUB_SSA 6
+#define SUB_PJS 7
+#define SUB_MPSUB 8
+#define SUB_AQTITLE 9
+#define SUB_SUBVIEWER2 10
+#define SUB_SUBRIP09 11
+#define SUB_JACOSUB 12
+#define SUB_MPL2 13
+
+// One of the SUB_* constant above
+extern int sub_format;
+
+#define MAX_SUBTITLE_FILES 128
+
+#define SUB_MAX_TEXT 12
+#define SUB_ALIGNMENT_BOTTOMLEFT 1
+#define SUB_ALIGNMENT_BOTTOMCENTER 2
+#define SUB_ALIGNMENT_BOTTOMRIGHT 3
+#define SUB_ALIGNMENT_MIDDLELEFT 4
+#define SUB_ALIGNMENT_MIDDLECENTER 5
+#define SUB_ALIGNMENT_MIDDLERIGHT 6
+#define SUB_ALIGNMENT_TOPLEFT 7
+#define SUB_ALIGNMENT_TOPCENTER 8
+#define SUB_ALIGNMENT_TOPRIGHT 9
+
+typedef struct subtitle {
+
+ int lines;
+
+ unsigned long start;
+ unsigned long end;
+
+ char *text[SUB_MAX_TEXT];
+ double endpts[SUB_MAX_TEXT];
+ unsigned char alignment;
+} subtitle;
+
+typedef struct sub_data {
+ subtitle *subtitles;
+ char *filename;
+ int sub_uses_time;
+ int sub_num; // number of subtitle structs
+ int sub_errs;
+} sub_data;
+
+extern char *fribidi_charset;
+extern int flip_hebrew;
+extern int fribidi_flip_commas;
+
+struct MPOpts;
+sub_data* sub_read_file (char *filename, float pts, struct MPOpts *opts);
+subtitle* subcp_recode (subtitle *sub);
+// enca_fd is the file enca uses to determine the codepage.
+// setting to NULL disables enca.
+struct stream;
+void subcp_open (struct stream *st); /* for demux_ogg.c */
+void subcp_close (void); /* for demux_ogg.c */
+#ifdef CONFIG_ENCA
+const char* guess_buffer_cp(unsigned char* buffer, int buflen, const char *preferred_language, const char *fallback);
+const char* guess_cp(struct stream *st, const char *preferred_language, const char *fallback);
+#endif
+char ** sub_filenames(const char *path, char *fname);
+void list_sub_file(sub_data* subd);
+void dump_srt(sub_data* subd, float fps);
+void dump_mpsub(sub_data* subd, float fps);
+void dump_microdvd(sub_data* subd, float fps);
+void dump_jacosub(sub_data* subd, float fps);
+void dump_sami(sub_data* subd, float fps);
+void sub_free( sub_data * subd );
+struct MPContext;
+void find_sub(struct MPContext *mpctx, sub_data* subd,int key);
+void step_sub(sub_data *subd, float pts, int movement);
+void sub_add_text(subtitle *sub, const char *txt, int len, double endpts);
+int sub_clear_text(subtitle *sub, double pts);
+
+#endif /* MPLAYER_SUBREADER_H */