Domanda

Ho un problema in cui quando un video OpenMax finisce la riproduzione, l'applicazione si blocca con un segnale 6.

Ecco il mio codice EOS nella callback del buffer.Anche l'incidente si verifica se interrompo il lettore multimediale qui e cancella anche la coda.Secondo alcuni log più verbosi, invio un segnale EOS, l'EOS viene elaborato e quindi si blocca.

Ecco il mio codice per segnalare un 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;
.

La mia traccia della Tombstone è qui.

http://pastebin.com/cscimett

È stato utile?

Soluzione

Hai un errore di asserzione in 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 )
.

Sembra che sia infelice con il flusso di dati (che è strano - dovrebbe essere un errore, non una asserzione fatale se è così).

La tua migliore scommessa è capire cosa si tratta del flusso che il parser libstagefright sta soffocando.

L'impronta digitale Build dice che è un dispositivo precedente con una build ICS (samsung/GT-I9100/GT-I9100:4.0.3/IML74K).Non vedo fotogrammi ICS / fonti AV su Sito di origine , maThe jellybean File sorgente Sembra che sia probabilmente lo stesso ... il controllo è sulla riga 1033. Sembra fallire mentre si tenta di analizzare il flusso di trasporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top