2016-11-21 3 views
4

Приложение основано на активности захвата камеры Grafika (https://github.com/google/grafika/tree/master/src/com/android/grafika). Пользователь записывает кнопку для записи видео. Случайный сбой происходит на Nexus 5x. Ниже приведены 2 журнала, когда он работает, а когда нет. Скажите, пожалуйста, что может быть причиной этого сбоя, и если вам нужно, чтобы я опубликовал какую-либо часть кода.OMX.qcom encoder случайный сбой

Рабочие:

11-21 15:55:22.301 26556-27085/com.testvideo I/OMXClient: MuxOMX ctor 
11-21 15:55:22.505 26556-27085/com.testvideo E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010 
11-21 15:55:22.505 26556-27085/com.testvideo W/ACodec: do not know color format 0x7fa30c04 = 2141391876 
11-21 15:55:22.506 26556-27085/com.testvideo W/ACodec: do not know color format 0x7f000789 = 2130708361 
11-21 15:55:22.518 26556-27085/com.testvideo I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level31] 
11-21 15:55:22.520 26556-27085/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode color aspects. Ignoring. 
11-21 15:55:22.520 26556-27085/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring. 
11-21 15:55:22.520 26556-27085/com.testvideo I/ACodec: setupVideoEncoder succeeded 
11-21 15:55:22.523 26556-27085/com.testvideo W/ACodec: do not know color format 0x7f000789 = 2130708361 
11-21 15:55:22.586 26556-27082/com.testvideo D/Grafika: EGLContext created, client version 3 
11-21 15:55:22.632 26556-27085/com.testvideo D/ACodec: dataspace changed to 0x10c10000 (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) (R:2(Limited), S:1(BT709), T:3(SMPTE_170M)) 
11-21 15:55:22.698 26556-27082/com.testvideo I/MPEG4Writer: limits: 4294967295/0 bytes/us, bit rate: -1 bps and the estimated moov size 3193 bytes 
11-21 15:55:22.721 26556-27098/com.testvideo I/MPEG4Writer: setStartTimestampUs: 0 
11-21 15:55:22.721 26556-27098/com.testvideo I/MPEG4Writer: Earliest track starting time: 0 
11-21 15:55:31.394 26556-26667/com.testvideo W/OpenGLRenderer: Incorrectly called buildLayer on View: LinearLayout, destroying layer... 

Когда сбой:

11-21 15:28:09.401 526-3443/? I/MediaPlayerService: MediaPlayerService::getOMX 
11-21 15:28:09.405 26648-9812/com.testvideo I/OMXClient: MuxOMX ctor 
11-21 15:28:09.408 519-15317/? I/OMXMaster: makeComponentInstance(OMX.qcom.video.encoder.avc) in mediacodec process 
11-21 15:28:09.432 26648-9374/com.testvideo W/TestVideo.CSR: Waiting for movie encoder to finish before drawing frame 
11-21 15:28:09.583 519-15317/? E/OMX-VENC: Setting session priority failed 
11-21 15:28:09.586 537-9463/? E/mm-camera-sensor: port_sensor_handle_aec_update:443miss aec update window, skip 
11-21 15:28:09.640 519-15317/? I/OMX-VENC: Component_init : OMX.qcom.video.encoder.avc : return = 0x0 
11-21 15:28:09.644 519-8957/? E/OMX-VENC: set_parameter: metamode is valid for input port only 
11-21 15:28:09.644 519-8957/? W/OMXNodeInstance: [207006a:qcom.encoder.avc] component does not support metadata mode; using fallback 
11-21 15:28:09.644 26648-9812/com.testvideo E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010 
11-21 15:28:09.645 26648-9812/com.testvideo W/ACodec: do not know color format 0x7fa30c04 = 2141391876 
11-21 15:28:09.645 26648-9812/com.testvideo W/ACodec: do not know color format 0x7f000789 = 2130708361 
11-21 15:28:09.654 26648-9812/com.testvideo I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level31] 
11-21 15:28:09.655 26648-9812/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode color aspects. Ignoring. 
11-21 15:28:09.655 26648-9812/com.testvideo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring. 
11-21 15:28:09.655 26648-9812/com.testvideo I/ACodec: setupVideoEncoder succeeded 
11-21 15:28:09.658 26648-9812/com.testvideo W/ACodec: do not know color format 0x7f000789 = 2130708361 
11-21 15:28:09.668 519-15317/? D/GraphicBufferSource: setting dataspace: 0x104 
11-21 15:28:09.669 519-3849/? E/OMXNodeInstance: getParameter(207006a:qcom.encoder.avc, ParamConsumerUsageBits(0x6f800004)) ERROR: UnsupportedIndex(0x8000101a) 
11-21 15:28:09.669 519-3674/? D/GraphicBufferSource: requesting color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) 

ответ

1

я столкнулся с таким же вопросом, не уверен, если это то же самое.

Когда он работает, он должен выйти с информацией журнала регистрации.

D/ACodec: dataspace changed to 0x10c10000 (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) (R:2(Limited), S:1(BT709), T:3(SMPTE_170M)) 

Таким образом, кодер может получить статус буфера на этапе инициализации.

encoderStatus == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED 

В моей программе, OnframeAvailable функции и визуализации потоков не были заблокированы в то же время и больше не в состоянии уведомлять друг друга в начале инициализации записи. Поскольку функция OnframeAvailable застряла, буфер не может быть обновлен. В результате MeidaCodec никогда не получает статус INFO_OUTPUT_FORMAT_CHANGED.

Проверьте, сохраняет ли frameAvailable() или frameAvailableSoon() обновление при начале записи.

Смежные вопросы