gpt4 book ai didi

android - OpenMAX AL 因信号 6 (SIGABRT) 而崩溃。媒体服务器死机

转载 作者:行者123 更新时间:2023-11-28 06:45:41 26 4
gpt4 key购买 nike

我遇到一个问题,当 OpenMAX 视频播放完毕时,应用程序崩溃并显示 Signal 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;

我的墓碑痕迹在这里。

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)。我在 source site 上没有看到 ICS 框架/av 源,但是 jellybean source file看起来可能是一样的...检查在第 1033 行。尝试解析传输流时似乎失败了。

关于android - OpenMAX AL 因信号 6 (SIGABRT) 而崩溃。媒体服务器死机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com