Mercurial > mplayer.hg
annotate subreader.h @ 8843:c70444c5b516
I have seen problems where DVD subtitles don't display
at the right time and sometimes they don't appear at
all. The problem stems from the fact that subtitle
command packets are being applied as soon as they are
read and assembled from the input stream. Sometimes,
a fully assembled subtitle packet arrives at the
spudec_assemble function before the previous subtitle
appears onscreen and thus the viewer only sees the
second subtitle. So I created a patch that queues
assembled subtitle packets and applies them at the
appropriate time within the heartbeat function. The
reset function clears the packet queue when seeking
through the video.
Tomasz Farkas <tomasz_farkas@yahoo.co.uk>
author | arpi |
---|---|
date | Wed, 08 Jan 2003 18:36:36 +0000 |
parents | 478561617705 |
children | 7a06258271d6 |
rev | line source |
---|---|
616 | 1 #ifndef __MPLAYER_SUBREADER_H |
2 #define __MPLAYER_SUBREADER_H | |
258 | 3 |
4 extern int sub_uses_time; | |
5 extern int sub_errs; | |
6 extern int sub_num; // number of subtitle structs | |
8361
2202c00001e3
overlapping subtitles support is now optional, can be disabled (-nooverlapsub)
arpi
parents:
7982
diff
changeset
|
7 extern int suboverlap_enabled; |
2912 | 8 |
9 // subtitle formats | |
10 #define SUB_INVALID -1 | |
11 #define SUB_MICRODVD 0 | |
12 #define SUB_SUBRIP 1 | |
13 #define SUB_SUBVIEWER 2 | |
14 #define SUB_SAMI 3 | |
15 #define SUB_VPLAYER 4 | |
16 #define SUB_RT 5 | |
17 #define SUB_SSA 6 | |
18 #define SUB_DUNNOWHAT 7 // FIXME what format is it ? | |
19 #define SUB_MPSUB 8 | |
20 #define SUB_AQTITLE 9 | |
6012 | 21 #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
|
22 #define SUB_SUBRIP09 11 |
7982
eac680483e6c
JACOSub is another subtitling format, whose specifications are at:
arpi
parents:
7460
diff
changeset
|
23 #define SUB_JACOSUB 12 |
2912 | 24 |
25 // One of the SUB_* constant above | |
26 extern int sub_format; | |
27 | |
7215
065387d29573
increased SUB_MAX_TEXT by Piotr Krukowiecki <piotr@pingu.ii.uj.edu.pl>
alex
parents:
6792
diff
changeset
|
28 #define SUB_MAX_TEXT 10 |
258 | 29 |
30 typedef struct { | |
31 | |
32 int lines; | |
33 | |
34 unsigned long start; | |
35 unsigned long end; | |
36 | |
37 char *text[SUB_MAX_TEXT]; | |
38 } subtitle; | |
39 | |
4064
3c747168eb6e
1. subs know are readed after reading AVI header so we already know fps
atlka
parents:
3734
diff
changeset
|
40 subtitle* 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
|
41 subtitle* subcp_recode1 (subtitle *sub); |
8733
478561617705
compiler warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents:
8618
diff
changeset
|
42 void subcp_open (void); /* for demux_ogg.c */ |
478561617705
compiler warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents:
8618
diff
changeset
|
43 void subcp_close (void); /* for demux_ogg.c */ |
4064
3c747168eb6e
1. subs know are readed after reading AVI header so we already know fps
atlka
parents:
3734
diff
changeset
|
44 char * sub_filename(char *path, char * fname); |
2050 | 45 void list_sub_file(subtitle* subs); |
6792 | 46 void dump_srt(subtitle* subs, float fps); |
4064
3c747168eb6e
1. subs know are readed after reading AVI header so we already know fps
atlka
parents:
3734
diff
changeset
|
47 void dump_mpsub(subtitle* subs, float fps); |
7460 | 48 void dump_microdvd(subtitle* subs, float fps); |
8451 | 49 void dump_jacosub(subtitle* subs, float fps); |
50 void dump_sami(subtitle* subs, float fps); | |
3543 | 51 void sub_free( subtitle * subs ); |
4064
3c747168eb6e
1. subs know are readed after reading AVI header so we already know fps
atlka
parents:
3734
diff
changeset
|
52 void find_sub(subtitle* subtitles,int key); |
8365
423a19edc0a4
This patch makes it possible to navigate among the subtitles while
arpi
parents:
8361
diff
changeset
|
53 void step_sub(subtitle *subtitles, float pts, int movement); |
818 | 54 #endif |