diff options
| -rw-r--r-- | mkvlib/ass.go | 48 | ||||
| -rw-r--r-- | mkvlib/mkv.go | 10 |
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) { |
