annotate subreader.h @ 12337:6f1b4c989914

soft skipping for mencoder. rather than skipping decoding/filtering frames that will be skipped, mencoded tells vf_softskip (if present) that it should drop the next frame. this allows filters that need to see every input frame (inverse telecine, denoise3d, ...) to see skipped frames before they get dropped. in principle, a smarter softskip filter could be written that would buffer frames and choose to drop the one with least change, rather than strictly dropping the next one.
author rfelker
date Wed, 28 Apr 2004 04:29:17 +0000
parents eb3ad04675e1
children ae4ae7ab636c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
616
41d6eec69b60 clean up
pontscho
parents: 509
diff changeset
1 #ifndef __MPLAYER_SUBREADER_H
41d6eec69b60 clean up
pontscho
parents: 509
diff changeset
2 #define __MPLAYER_SUBREADER_H
258
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
3
8361
2202c00001e3 overlapping subtitles support is now optional, can be disabled (-nooverlapsub)
arpi
parents: 7982
diff changeset
4 extern int suboverlap_enabled;
9126
7a06258271d6 Add a command line option (-sub-no-text-pp) to disable subtitles
arpi
parents: 8733
diff changeset
5 extern int sub_no_text_pp; // disable text post-processing
9893
eb274fd5e84e option for sub match fuzziness level
henry
parents: 9884
diff changeset
6 extern int sub_match_fuzziness;
2912
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
7
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
8 // subtitle formats
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
9 #define SUB_INVALID -1
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
10 #define SUB_MICRODVD 0
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
11 #define SUB_SUBRIP 1
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
12 #define SUB_SUBVIEWER 2
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
13 #define SUB_SAMI 3
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
14 #define SUB_VPLAYER 4
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
15 #define SUB_RT 5
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
16 #define SUB_SSA 6
11873
9c66ef56b1b1 Fix the PJS (aka dunnowhat) subtitles
attila
parents: 10916
diff changeset
17 #define SUB_PJS 7
2912
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
18 #define SUB_MPSUB 8
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
19 #define SUB_AQTITLE 9
6012
89c87be7a248 patch by Didier <did-c-debian@ifrance.com>:
pl
parents: 4064
diff changeset
20 #define SUB_SUBVIEWER2 10
6076
eff64fb1ffea patch fixes broken detecniou of AQTitle subtiles and adds support for subtitles created by subrip 0.9 - by Jiri.Svoboda@seznam.cz
arpi
parents: 6012
diff changeset
21 #define SUB_SUBRIP09 11
7982
eac680483e6c JACOSub is another subtitling format, whose specifications are at:
arpi
parents: 7460
diff changeset
22 #define SUB_JACOSUB 12
12138
eb3ad04675e1 MPL2 subreader, patch by Cezary Jackiewicz (cjackiewicz@poczta.onet.pl)
alex
parents: 11873
diff changeset
23 #define SUB_MPL2 13
2912
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
24
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
25 // One of the SUB_* constant above
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
26 extern int sub_format;
2f04b5f9a615 minor cleanups:
pl
parents: 2050
diff changeset
27
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
28 #define MAX_SUBTITLE_FILES 128
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
29
7215
065387d29573 increased SUB_MAX_TEXT by Piotr Krukowiecki <piotr@pingu.ii.uj.edu.pl>
alex
parents: 6792
diff changeset
30 #define SUB_MAX_TEXT 10
10916
c36db88bfbc4 Subtitle alignment & smart splitting by Salvatore Falco
henry
parents: 9893
diff changeset
31 #define SUB_ALIGNMENT_HLEFT 1
c36db88bfbc4 Subtitle alignment & smart splitting by Salvatore Falco
henry
parents: 9893
diff changeset
32 #define SUB_ALIGNMENT_HCENTER 0
c36db88bfbc4 Subtitle alignment & smart splitting by Salvatore Falco
henry
parents: 9893
diff changeset
33 #define SUB_ALIGNMENT_HRIGHT 2
258
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
34
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
35 typedef struct {
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
36
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
37 int lines;
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
38
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
39 unsigned long start;
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
40 unsigned long end;
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
41
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
42 char *text[SUB_MAX_TEXT];
10916
c36db88bfbc4 Subtitle alignment & smart splitting by Salvatore Falco
henry
parents: 9893
diff changeset
43 unsigned char alignment;
258
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
44 } subtitle;
66017e126280 subtitles (.sub files) support
arpi_esp
parents:
diff changeset
45
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
46 typedef struct {
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
47 subtitle *subtitles;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
48 char *filename;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
49 int sub_uses_time;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
50 int sub_num; // number of subtitle structs
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
51 int sub_errs;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
52 } sub_data;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
53
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
54 sub_data* sub_read_file (char *filename, float pts);
8618
a879b231b7e3 This patch adds a call to subcp_recode1(), so this subtitles too are
arpi
parents: 8451
diff changeset
55 subtitle* subcp_recode1 (subtitle *sub);
8733
478561617705 compiler warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents: 8618
diff changeset
56 void subcp_open (void); /* for demux_ogg.c */
478561617705 compiler warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents: 8618
diff changeset
57 void subcp_close (void); /* for demux_ogg.c */
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
58 char ** sub_filenames(char *path, char *fname);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
59 void list_sub_file(sub_data* subd);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
60 void dump_srt(sub_data* subd, float fps);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
61 void dump_mpsub(sub_data* subd, float fps);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
62 void dump_microdvd(sub_data* subd, float fps);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
63 void dump_jacosub(sub_data* subd, float fps);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
64 void dump_sami(sub_data* subd, float fps);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
65 void sub_free( sub_data * subd );
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
66 void find_sub(sub_data* subd,int key);
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9126
diff changeset
67 void step_sub(sub_data *subd, float pts, int movement);
818
16ba80b47ec4 Support for vplayer subtitles
eyck
parents: 624
diff changeset
68 #endif