OpenMAX AL在信号6 (SIGABRT)时崩溃.媒体服务器死亡
OpenMAX AL crashes with Signal 6 (SIGABRT). Media Server dies
我有一个问题,当一个OpenMAX视频完成播放,应用程序崩溃与信号6。
这是我的EOS代码在缓冲回调。如果我在这里停止媒体播放器并清除队列,也会发生崩溃。根据一些更详细的日志,我发送一个EOS信号,EOS被处理,然后崩溃。
这是我发送EOS信号的代码
// We reached the EOF or an I/O error occured
// Create EOS signal
XAAndroidBufferItem signal;
memset(&signal, 0, sizeof(XAAndroidBufferItem));
signal.itemKey = XA_ANDROID_ITEMKEY_EOS;
// Enqueue the error
if ((res = (*i_PlayerInputBufferInterface)->Enqueue(i_PlayerInputBufferInterface,
(void *)&EOS_BUFFER_CONTEXT, nullptr, 0, &signal, sizeof(XAuint32) * 2))
!= XA_RESULT_SUCCESS)
throw OpenMAXException("Could not enqueue EOS signal.", res);
// Update video state
i_IsEOF = true;
return XA_RESULT_SUCCESS;
My Tombstone trace is here
http://pastebin.com/CScimETt在stagefright出现断言失败:
A/ATSParser(21042): frameworks/av/media/libstagefright/mpeg2ts/ATSParser.cpp:1194 CHECK_EQ( sync_byte,0x47u) failed: 169 vs. 71
A/libc(21042): Fatal signal 6 (SIGABRT) at 0x00005232 (code=-6), thread 21385 (NuPlayerDriver )
看起来它对数据流不满意(这很奇怪——如果是这种情况,应该是一个错误,而不是一个致命的断言)。
最好的办法是弄清楚libstagefright解析器阻塞的流是什么。
构建指纹表示这是具有ICS构建(samsung/GT-I9100/GT-I9100:4.0.3/IML74K
)的旧设备。我没有在源站点上看到ICS框架/av源文件,但是jellybean源文件看起来可能是一样的…支票在1033线上。在尝试解析传输流时似乎失败。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 媒体基础 多个视频播放导致内存泄漏和崩溃
- OpenMAX AL在信号6 (SIGABRT)时崩溃.媒体服务器死亡