author | Xiaoliang Wang <xiaoliang.wang@amlogic.com> | 2016-03-14 10:59:28 (GMT) |
---|---|---|
committer | Xiaoliang Wang <xiaoliang.wang@amlogic.com> | 2016-03-14 10:59:28 (GMT) |
commit | 2208cd15919ab411b7bbe52bb33486dcfd687a0e (patch) | |
tree | f5e077a9ca612f8fb4a141d377f6f0f2faec6767 | |
parent | eca40f557d9790a015ebf509c793389d6de2664d (diff) | |
download | SubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.zip SubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.tar.gz SubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.tar.bz2 |
change for mpsub cannot show the second time
Change-Id: Ib3fd3c8ff2af0a62f7ba65ec3fd547541ad7f1db
-rw-r--r-- | jni/subtitle/sub_api.c | 5 | ||||
-rw-r--r-- | src/com/subtitleparser/SubtitleFile.java | 8 | ||||
-rw-r--r-- | src/com/subtitleparser/subtypes/TextSubParser.java | 3 |
3 files changed, 13 insertions, 3 deletions
diff --git a/jni/subtitle/sub_api.c b/jni/subtitle/sub_api.c index 5f20b09..470d46f 100644 --- a/jni/subtitle/sub_api.c +++ b/jni/subtitle/sub_api.c @@ -2188,6 +2188,10 @@ static int internal_sub_autodetect(int fd) return SUB_INVALID; // too many bad lines } +SUBAPI void reset_variate() { + mpsub_position = 0; +} + SUBAPI void internal_sub_close(subdata_t *subdata) { int i; @@ -2244,6 +2248,7 @@ SUBAPI subdata_t *internal_sub_open(char *filename, unsigned int rate, {internal_sub_read_line_mpl2, NULL, "mpl2"} }; subreader_t *srp; + reset_variate(); //log_print("[internal_sub_open] filename= %s, charset=%s\n", filename, charset); if (filename == NULL) { diff --git a/src/com/subtitleparser/SubtitleFile.java b/src/com/subtitleparser/SubtitleFile.java index 435d32e..79933e9 100644 --- a/src/com/subtitleparser/SubtitleFile.java +++ b/src/com/subtitleparser/SubtitleFile.java @@ -197,9 +197,13 @@ public class SubtitleFile extends LinkedList { } else { while (curIndex > 0) { - n = (SubtitleLine) get (curIndex - preOffset); + int tmpIdx = curIndex - preOffset; + if (tmpIdx <= 0) { + tmpIdx = 0; + } + n = (SubtitleLine) get (tmpIdx); if (millisec >= n.getBegin().getMilValue()) { - ret = curIndex - preOffset; + ret = tmpIdx; break; } else { diff --git a/src/com/subtitleparser/subtypes/TextSubParser.java b/src/com/subtitleparser/subtypes/TextSubParser.java index 2182556..b95881d 100644 --- a/src/com/subtitleparser/subtypes/TextSubParser.java +++ b/src/com/subtitleparser/subtypes/TextSubParser.java @@ -133,7 +133,8 @@ public class TextSubParser implements SubtitleParser { public SubtitleApi parse (String filename, String encode) throws MalformedSubException { - SubtitleFile file = Subtitle.parseSubtitleFileByJni (filename, encode); + SubtitleFile file = new SubtitleFile(); + file = Subtitle.parseSubtitleFileByJni (filename, encode); if (file == null) { Log.e("TextSubParser", "------------err-----------"); //throw new MalformedSubException ("text sub parser return NULL!"); |