summaryrefslogtreecommitdiff
authorTellen Yu <tellen.yu@amlogic.com>2016-03-22 02:15:24 (GMT)
committer Gerrit Code Review <gituser@git.myamlogic.com>2016-03-22 02:15:24 (GMT)
commit77bfd2fb2d797e7aee2c580f08d4111780a6478d (patch)
tree3876197dab9494ea11e13030cbbee19acc70cdda
parent2aeb4efeb292037cd64bad19ca59f759be0591ce (diff)
parent2208cd15919ab411b7bbe52bb33486dcfd687a0e (diff)
downloadSubTitle-77bfd2fb2d797e7aee2c580f08d4111780a6478d.zip
SubTitle-77bfd2fb2d797e7aee2c580f08d4111780a6478d.tar.gz
SubTitle-77bfd2fb2d797e7aee2c580f08d4111780a6478d.tar.bz2
Merge "change for mpsub cannot show the second time" into m-amlogic
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 c88f508..d364022 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!");