找回密码
 立即注册
楼主: Apache553

自动按需加载字体的轮子

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    49

    主题

    466

    回帖

    2581

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1787395

    崭露头角活跃达人新人登场渐入佳境

    菜姬 发表于 2022-2-24 20:01:47 | 显示全部楼层

    链接: https://pan.baidu.com/s/1pp0gdejR-jS_7ZvFZve7EQ?pwd=ha3h 提取码: ha3h
    mpc-be 64bit 1.6.1
    xysubfilter with libass 20220124
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    49

    主题

    466

    回帖

    2581

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1787395

    崭露头角活跃达人新人登场渐入佳境

    菜姬 发表于 2022-2-24 20:08:02 | 显示全部楼层
    这个字幕 前面的部分是gbk编码 后面是utf8编码 可能是这个触发了一些奇怪的东西(
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366694
    苏辰汐 发表于 2022-2-24 22:15:40 | 显示全部楼层
    本帖最后由 苏辰汐 于 2022-2-24 22:49 编辑

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2022-2-25 00:07:08 | 显示全部楼层
    本帖最后由 Apache553 于 2022-2-25 00:14 编辑

    我测试了一下
    MPC-BE 1.6.1.6845 + XySubFilter with libass 20220124 播放mkv
    没有复现


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


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

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2022-2-25 00:46:19 | 显示全部楼层
    苏辰汐 发表于 2022-2-24 22:15
    又发现个很奇怪的问题,hook的播放器第一次打开时都无法正常hook并加载字体,必须关闭并再次打开后才能正常 ...

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

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

    我想了一下可能的原因

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366694
    苏辰汐 发表于 2022-2-25 01:12:18 | 显示全部楼层
    Apache553 发表于 2022-2-25 00:46
    hummm 能具体说说是什么么
    我测试了下

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    49

    主题

    466

    回帖

    2581

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1787395

    崭露头角活跃达人新人登场渐入佳境

    菜姬 发表于 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
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2022-2-25 13:31:54 | 显示全部楼层
    本帖最后由 Apache553 于 2022-2-25 13:33 编辑
    菜姬 发表于 2022-2-25 07:39
    忘了说 应该是是第二个字幕 touchfeeling.chi.eng.ass

    依然没有复现

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    49

    主题

    466

    回帖

    2581

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1787395

    崭露头角活跃达人新人登场渐入佳境

    菜姬 发表于 2022-2-25 15:54:04 | 显示全部楼层
    本帖最后由 菜姬 于 2022-2-25 16:03 编辑

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    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
    是正常的的话,那就没什么头绪了

    以后我会加入对粗体/斜体等信息的相关的判断,然后就能尽可能地消除对系统已有字体的不必要的加载。届时再看看有没有问题吧...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表