summaryrefslogtreecommitdiff
path: root/mkvlib
diff options
context:
space:
mode:
Diffstat (limited to 'mkvlib')
-rw-r--r--mkvlib/ass.go16
-rw-r--r--mkvlib/c/exports.go4
-rw-r--r--mkvlib/mkv.go6
-rw-r--r--mkvlib/shared.go2
4 files changed, 21 insertions, 7 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go
index 826c484..f7c195c 100644
--- a/mkvlib/ass.go
+++ b/mkvlib/ass.go
@@ -98,8 +98,8 @@ func (self *assProcessor) parse() bool {
ec++
} else {
data, err := io.ReadAll(f)
- str := toUTF8(data)
if err == nil {
+ str := toUTF8(data)
self.subtitles[file] = str
} else {
ec++
@@ -108,6 +108,7 @@ func (self *assProcessor) parse() bool {
if ec > 0 {
printLog(self.lcb, `Failed to read the ass file: "%s"`, file)
}
+ _ = f.Close()
}
if ec == 0 {
opt := parser.SSAOptions{}
@@ -194,7 +195,7 @@ func (self *assProcessor) parse() bool {
if ___reg.MatchString(v) {
v += "0123456789"
}
- v += "\u0020\u00a0"
+ v += "a\u0020\u00a0"
self.m[k] = new(fontInfo)
self.m[k].runes = []rune(v)
self.m[k].oldName = strings.Split(k, "^")[0]
@@ -376,8 +377,12 @@ func (self *assProcessor) checkFontMissing(f *fontInfo, i int, c bool) bool {
}
}
}
+ } else {
+ return false
}
}
+ } else {
+ return false
}
h := "N"
if c {
@@ -886,7 +891,12 @@ func (self *assProcessor) matchCache(k, o string) (string, int) {
names := self.getFontName(v.File)
if len(names) > 0 {
_count++
- if !self.checkFontMissing(self.m[o], _count, true) && self.strict {
+ f := new(fontInfo)
+ f.oldName = _k[0]
+ f.file = ok
+ f.index = i
+ f.runes = self.m[o].runes
+ if !self.checkFontMissing(f, _count, true) && self.strict {
ok = ""
i = 0
continue
diff --git a/mkvlib/c/exports.go b/mkvlib/c/exports.go
index d52e6f6..b24b345 100644
--- a/mkvlib/c/exports.go
+++ b/mkvlib/c/exports.go
@@ -124,11 +124,11 @@ func MakeMKVs(dir, data, output, slang, stitle *C.char, lcb C.logCallback) bool
}
//export A2P
-func A2P(a2p, apc bool, pr, pf string) {
+func A2P(a2p, apc bool, pr, pf *C.char) {
if !checkInstance() {
return
}
- getter.GetProcessorInstance().A2P(a2p, apc, pr, pf)
+ getter.GetProcessorInstance().A2P(a2p, apc, gs(pr), gs(pf))
}
//export GetFontsList
diff --git a/mkvlib/mkv.go b/mkvlib/mkv.go
index 6ec8931..ca6a083 100644
--- a/mkvlib/mkv.go
+++ b/mkvlib/mkv.go
@@ -424,9 +424,13 @@ func (self *mkvProcessor) CreateBlankOrBurnVideo(t int64, s, enc, ass, fontdir,
t = new(assProcessor).getLength(ass).Milliseconds()
fontdir = strings.ReplaceAll(fontdir, `\`, `/`)
fontdir = strings.ReplaceAll(fontdir, `:`, `\\:`)
+ fontdir = strings.ReplaceAll(fontdir, `[`, `\[`)
+ fontdir = strings.ReplaceAll(fontdir, `]`, `\]`)
ass = strings.ReplaceAll(ass, `\`, `/`)
ass = strings.ReplaceAll(ass, `:`, `\\:`)
- args = append(args, "-vf", fmt.Sprintf("subtitles=%s:fontsdir=%s", ass, fontdir))
+ ass = strings.ReplaceAll(ass, `[`, `\[`)
+ ass = strings.ReplaceAll(ass, `]`, `\]`)
+ args = append(args, "-vf", fmt.Sprintf(`subtitles=%s:fontsdir=%s`, ass, fontdir))
}
if s == "" {
if t > 0 {
diff --git a/mkvlib/shared.go b/mkvlib/shared.go
index b76b3ac..05b964d 100644
--- a/mkvlib/shared.go
+++ b/mkvlib/shared.go
@@ -11,7 +11,7 @@ import (
)
const libName = "mkvlib"
-const libVer = "v1.9.3"
+const libVer = "v1.9.7"
const LibFName = libName + " " + libVer