summaryrefslogtreecommitdiff
authorXiaoliang 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)
commit2208cd15919ab411b7bbe52bb33486dcfd687a0e (patch)
treef5e077a9ca612f8fb4a141d377f6f0f2faec6767
parenteca40f557d9790a015ebf509c793389d6de2664d (diff)
downloadSubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.zip
SubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.tar.gz
SubTitle-2208cd15919ab411b7bbe52bb33486dcfd687a0e.tar.bz2
change for mpsub cannot show the second time
Change-Id: Ib3fd3c8ff2af0a62f7ba65ec3fd547541ad7f1db
Diffstat
-rw-r--r--jni/subtitle/sub_api.c5
-rw-r--r--src/com/subtitleparser/SubtitleFile.java8
-rw-r--r--src/com/subtitleparser/subtypes/TextSubParser.java3
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!");