diff options
| author | b5f0d6c3 <[email protected]> | 2022-03-22 16:29:45 +0800 |
|---|---|---|
| committer | b5f0d6c3 <[email protected]> | 2022-03-22 16:29:45 +0800 |
| commit | 5e69f58a8297e52802d62657b8f7b14a969f9562 (patch) | |
| tree | 4944862faa2ee5c6d0bd98598072388c38815ae4 /mkvlib/ass.go | |
| parent | 12c6e6904c51f13e2d22f02618ecfd7a78266ed7 (diff) | |
update mkvlib:fix bugs
Diffstat (limited to 'mkvlib/ass.go')
| -rw-r--r-- | mkvlib/ass.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index 03674ba..ab5fe8c 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -189,6 +189,7 @@ func (self *assProcessor) dumpFont(file, out string, full bool) []string { if err == nil { str := string(f) str = strings.ReplaceAll(str, "\x00", "") + str = strings.ReplaceAll(str, "�", "") ok = ioutil.WriteFile(fn, []byte(str), os.ModePerm) == nil } } @@ -238,7 +239,8 @@ func (self *assProcessor) getFontName(p string) []string { if err == nil { defer func() { _ = f.Close() }() names := make([]string, 0) - if xml, err := xmlquery.Parse(f); err == nil { + xml, err := xmlquery.Parse(f) + if err == nil { for _, v := range xml.SelectElements(`ttFont/name/namerecord[@platformID=3]`) { id := v.SelectAttr("nameID") name := strings.TrimSpace(v.FirstChild.Data) @@ -543,7 +545,6 @@ func (self *assProcessor) createFontsCache(output string) []string { list := self.dumpFont(_item, self.tDir, false) if len(list) > 0 { m.Lock() - ok++ _m := self.getFontsName(list) __m := make(map[string]bool) _fonts := make([][]string, len(_m)) @@ -559,8 +560,13 @@ func (self *assProcessor) createFontsCache(output string) []string { q, _ := strconv.Atoi(index) _fonts[q] = _list } - cache = append(cache, fontCache{_item, _fonts}) - printLog(self.lcb, "Cache font (%d/%d) done.", ok, l) + if len(_fonts) > 0 { + ok++ + cache = append(cache, fontCache{_item, _fonts}) + printLog(self.lcb, "Cache font (%d/%d) done.", ok, l) + } else { + el = append(el, _item) + } m.Unlock() } else { el = append(el, _item) |
