يتعطل OpenMAX AL مع Signal 6 (SIGABRT).وفاة خادم الوسائط
-
21-12-2019 - |
سؤال
لدي مشكلة حيث أنه عند انتهاء تشغيل فيديو 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;
أثر شاهدة قبري موجود هنا.
المحلول
أنت تحصل على فشل التأكيد في 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.يبدو أنه فشل أثناء محاولة تحليل دفق النقل.