سؤال

لدي مشكلة حيث أنه عند انتهاء تشغيل فيديو 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).لا أرى أطر عمل ICS/مصادر av على ملف موقع المصدر, ، لكن ال ملف مصدر جيلي بين يبدو أنه ربما هو نفسه ...الشيك على الخط 1033.يبدو أنه فشل أثناء محاولة تحليل دفق النقل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top