当前位置: 首页 > news >正文

关于ffplay在macos上运行奔溃的问题

这个问题大概是由于 MacOS 的问题引起的,奔溃的地方在 SDL2 的代码中,如果直接使用 brew 安装 SDL2就会遇到这个问题,所以需要修改 SDL2源码然后再编译安装。

我这里采用的是 origin/release-2.28.x 分支,修改部分如下:

src/video/cocoa/SDL_cocoamouse. m 文件中:

/*
把下面这个函数的函数体删除或者注释掉,让他直接返回NULL
*/
@implementation NSCursor (InvisibleCursor)
+ (NSCursor *)invisibleCursor
{static NSCursor *invisibleCursor = NULL;return invisibleCursor;
}
@end

根目录的 CMakeLists 中:

# set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${N3DS_MAIN_SOURCES}) 注释这一行
set(SDLMAIN_SOURCES ${SDLMAIN_SOURCES} ${N3DS_MAIN_SOURCES} # 添加下面的内容src/video/cocoa/SDL_cocoamouse.hsrc/video/cocoa/SDL_cocoamouse.m)

还有一个地方,我没有修改就可以跑了,但是最好修改一下,在 src/video/cocoa/SDL_cocoawindow. m 文件里 :

/*
把下面这个函数中的部分注释掉就可以了
*/
- (void)resetCursorRects
{/* KJSL: temp workaround for crash on Intel MacOS Sequioa 15.1.1 (24B91)//    [super resetCursorRects];
//    [self addCursorRect:[self bounds]
//                 cursor:Cocoa_GetDesiredCursor()];*/
}- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent

然后重新编译,我是吧 SDL2 和 ffmpeg 全部重新编译了一遍,但我估计只要重新编译 SDL2 就可以了。

相关文章:

  • 英语中最难学的部分是时态‌
  • 一、Python 常用内置工具(函数、模块、特性)的汇总介绍和完整示例
  • #Js篇:BlobFile对象URL.createObjectURL()fetchlocationnavigatornew URl
  • 动态规划-300.最长递增子序列-力扣(LeetCode)
  • (LeetCode 每日一题)2359. 找到离给定两个节点最近的节点( 图)
  • haproxy 搭建web群集
  • Flexbox + Grid 组合布局技术解析
  • 通用的防御框架,用于抵御(多模态)大型语言模型的越狱攻击
  • @Docker Compose 部署 Pushgateway
  • 相机--双目立体相机
  • 卓力达码盘:精密蚀刻技术赋能高精度运动控制
  • Bootstrap项目 - 个人作品与成就展示网站
  • mobile app 工具简要对比
  • UI自动化测试中的元素等待机制解析
  • es6+和css3新增的特性有哪些
  • 如何成为一名优秀的产品经理
  • 权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用
  • 缓存穿透、缓存击穿、缓存雪崩目前记录(纯日记)
  • AgenticSeek: 100% 本地替代 Manus AI 的方案
  • 在线政治采购系统架构构建指南
  • 怎样弄网站的导航栏/关键词筛选工具
  • 租用了空间 怎样上传网站程序/前端seo搜索引擎优化
  • wordpress gitbook/seo优化师培训
  • 网站建设淘宝属于什么类目/网页设计与制作作业成品
  • 网站开发建设类合同/恢复原来的百度
  • 绍兴做网站的/最近一周新闻大事件