summaryrefslogtreecommitdiff
path: root/mkvlib
diff options
context:
space:
mode:
Diffstat (limited to 'mkvlib')
-rw-r--r--mkvlib/ass.go48
-rw-r--r--mkvlib/mkv.go10
2 files changed, 31 insertions, 27 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go
index 664a45b..c29b281 100644
--- a/mkvlib/ass.go
+++ b/mkvlib/ass.go
@@ -537,7 +537,7 @@ func (self *assProcessor) createFontSubset(font *fontInfo) bool {
ok = err == nil && s.ExitCode() == 0
}
if !ok {
- printLog(self.lcb, `Failed to subset font: "%s"[%s].`, font.oldName, font.index)
+ printLog(self.lcb, `Failed to subset font: "%s"[%d].`, font.oldName, font.index)
} else {
font.sFont = _fn
}
@@ -827,30 +827,34 @@ func (self *assProcessor) copyFontsFromCache() bool {
return ec == 0
}
-func (self *assProcessor) loadCache(p string) {
- if data, err := ioutil.ReadFile(p); err == nil {
- cache := make([]fontCache, 0)
- if json.Unmarshal(data, &cache) == nil {
- for _, v := range cache {
- list := make([][]map[string]bool, 0)
- l := len(v.Fonts)
- for i := 0; i < l; i++ {
- m := make([]map[string]bool, 2)
- for _, n := range v.Fonts[i] {
- if m[0] == nil {
- m[0] = make(map[string]bool)
- }
- m[0][n] = true
- }
- for _, f := range v.Types[i] {
- if m[1] == nil {
- m[1] = make(map[string]bool)
+func (self *assProcessor) loadCache(ccs []string) {
+ if len(ccs) > 0 {
+ for _, p := range ccs {
+ if data, err := ioutil.ReadFile(p); err == nil {
+ cache := make([]fontCache, 0)
+ if json.Unmarshal(data, &cache) == nil {
+ for _, v := range cache {
+ list := make([][]map[string]bool, 0)
+ l := len(v.Fonts)
+ for i := 0; i < l; i++ {
+ m := make([]map[string]bool, 2)
+ for _, n := range v.Fonts[i] {
+ if m[0] == nil {
+ m[0] = make(map[string]bool)
+ }
+ m[0][n] = true
+ }
+ for _, f := range v.Types[i] {
+ if m[1] == nil {
+ m[1] = make(map[string]bool)
+ }
+ m[1][f] = true
+ }
+ list = append(list, m)
}
- m[1][f] = true
+ self.cache = append(self.cache, cacheInfo{v.File, list})
}
- list = append(list, m)
}
- self.cache = append(self.cache, cacheInfo{v.File, list})
}
}
}
diff --git a/mkvlib/mkv.go b/mkvlib/mkv.go
index de97398..53e3161 100644
--- a/mkvlib/mkv.go
+++ b/mkvlib/mkv.go
@@ -40,7 +40,7 @@ type mkvProcessor struct {
mks bool
pr string
pf string
- cache string
+ caches []string
ass2bdnxml bool
nrename bool
check bool
@@ -322,7 +322,7 @@ func (self *mkvProcessor) ASSFontSubset(files []string, fonts, output string, di
obj.output = path.Join(obj.output, "subsetted")
}
obj.fonts = findFonts(obj._fonts)
- obj.loadCache(self.cache)
+ obj.loadCache(self.caches)
r := obj.parse() && obj.matchFonts() && obj.createFontsSubset() && obj.changeFontsName() && obj.replaceFontNameInAss()
if r && self.a2p {
r = self.ass2Pgs(obj._files, self.pr, self.pf, obj.output, d, lcb)
@@ -370,12 +370,12 @@ func (self *mkvProcessor) CopyFontsFromCache(subs, dist string, lcb logCallback)
obj.lcb = lcb
obj.files = asses
obj.output = dist
- obj.loadCache(self.cache)
+ obj.loadCache(self.caches)
return obj.copyFontsFromCache()
}
-func (self *mkvProcessor) Cache(p string) {
- self.cache = p
+func (self *mkvProcessor) Cache(ccs []string) {
+ self.caches = ccs
}
func (self *mkvProcessor) MKS(mks bool) {