菜姬 发表于 2022-2-24 20:01:47

https://s2.loli.net/2022/02/24/m5dUJq7rRKB4WIM.png
链接: https://pan.baidu.com/s/1pp0gdejR-jS_7ZvFZve7EQ?pwd=ha3h 提取码: ha3h
mpc-be 64bit 1.6.1
xysubfilter with libass 20220124

菜姬 发表于 2022-2-24 20:08:02

这个字幕 前面的部分是gbk编码 后面是utf8编码 可能是这个触发了一些奇怪的东西(

苏辰汐 发表于 2022-2-24 22:15:40

本帖最后由 苏辰汐 于 2022-2-24 22:49 编辑

又发现个很奇怪的问题,hook的播放器第一次打开时都无法正常hook并加载字体,必须关闭并再次打开后才能正常hook进程并加载字体。
经测试mpc-be、mpc-hc和mpv等播放器都会出现这一现象,可复现
edit: 似乎potplayer和mpv.net上不会出现这一问题

又去测试了下重构前的旧版本,不会复现此问题,正常工作

Apache553 发表于 2022-2-25 00:07:08

本帖最后由 Apache553 于 2022-2-25 00:14 编辑

菜姬 发表于 2022-2-24 20:01
链接: https://pan.baidu.com/s/1pp0gdejR-jS_7ZvFZve7EQ?pwd=ha3h 提取码: ha3h
mpc-be 64bit 1.6.1
xysu ...
我测试了一下
MPC-BE 1.6.1.6845 + XySubFilter with libass 20220124 播放mkv
没有复现


也许是其他的什么东西触发了什么?


目前的实现是无论相应的字体加载与否,都会去至少查询索引并加载一次
这样做的目的是为了能加载到一个字体族未安装的变体(Italic/Bold),因为API上能截到的信息只有一个名字,并且无从得知这是一个FullName还是个FontFamilyName还是个PostScriptName 查询的时候会把输入的字符串当作上面三种分别都做一次查询并返回汇总的结果。有可能有什么稀奇古怪的字体恰好占用了这个字幕中的微软雅黑然后被加载了导致了问题

Apache553 发表于 2022-2-25 00:46:19

苏辰汐 发表于 2022-2-24 22:15
又发现个很奇怪的问题,hook的播放器第一次打开时都无法正常hook并加载字体,必须关闭并再次打开后才能正常 ...

hummm 能具体说说是什么么
我测试了下

重启计算机->运行daemon->打开mpc-hc播放恋爱小行星第一集 字体加载正常...

我想了一下可能的原因

重构后的版本加入了对播放器所属用户的识别,如果不是与daemon相同的用户启动的播放器,那么将不会尝试注入。
如果daemon不是使用管理员权限运行的但是播放器是,也不会尝试注入(会无法获取到启动的程序的路径)。
还有就是daemon也许还没加载完成,播放器就启动了,这个时候也不会尝试注入。

苏辰汐 发表于 2022-2-25 01:12:18

Apache553 发表于 2022-2-25 00:46
hummm 能具体说说是什么么
我测试了下



没事了,我删除软件重新解压再重启后正常了(不知道之前怎么回事,请无视此问题{:4_675:}

菜姬 发表于 2022-2-25 07:39:48

Apache553 发表于 2022-2-25 00:07
我测试了一下
MPC-BE 1.6.1.6845 + XySubFilter with libass 20220124 播放mkv
没有复现


忘了说 应该是是第二个字幕 touchfeeling.chi.eng.ass

Apache553 发表于 2022-2-25 13:31:54

本帖最后由 Apache553 于 2022-2-25 13:33 编辑

菜姬 发表于 2022-2-25 07:39
忘了说 应该是是第二个字幕 touchfeeling.chi.eng.ass
依然没有复现

在日志里面有每次查询的字体名和所加载的文件路径,您要不检查一下?
在我计算机上的结果是

菜姬 发表于 2022-2-25 15:54:04

本帖最后由 菜姬 于 2022-2-25 16:03 编辑

突然发现不打开这个视频也会出现这种情况 字幕里的字体反倒能正常加载
Bumped version from 1 to 2.
Query succeeded. pid: 1468, tid: 3592 requestName: Marlett No font available.
Query succeeded. pid: 1468, tid: 3592 requestName: Segoe UI responseCount: 4
InjectProcess(12232) succeeded!
Dll attached to 12232.
Query succeeded. pid: 12232, tid: 10124 requestName: Microsoft YaHei UI responseCount: 2

Apache553 发表于 2022-2-25 16:10:30

菜姬 发表于 2022-2-25 15:54
突然发现不打开这个视频也会出现这种情况 字幕里的字体反倒能正常加载

...

没发现什么有用的信息,也没看出来有什么问题

如果你电脑上的:
D:\Fonts\Microsoft(微软)\简繁\微软雅黑 & Microsoft Yahei UI.ttc
D:\Fonts\Microsoft(微软)\简繁\微软雅黑 Bold & Microsoft Yahei UI Bold.ttc
是正常的的话,那就没什么头绪了

以后我会加入对粗体/斜体等信息的相关的判断,然后就能尽可能地消除对系统已有字体的不必要的加载。届时再看看有没有问题吧...
页: 1 2 3 4 [5] 6 7 8 9 10
查看完整版本: 自动按需加载字体的轮子