문제

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;
.

내 삭제 표시 추적이 여기에 있습니다.

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 행에 있습니다. 전송 스트림을 구문 분석하려고하는 동안 실패하는 것처럼 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top