2016-11-21 6 views
4

이 앱은 Grafika의 카메라 캡처 작업 (https://github.com/google/grafika/tree/master/src/com/android/grafika)을 기반으로합니다. 사용자는 버튼을 탭하여 비디오를 녹화합니다. Nexus 5x에서 임의의 충돌이 발생했습니다. 아래의 내용은 작동 할 때와 작동하지 않을 때의 2 가지 로그입니다. 이 충돌의 원인이 무엇인지 그리고 코드의 일부를 게시해야하는 경우 알려주십시오.OMX.qcom 인코더 임의 충돌

작업 :

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()이 업데이트를 유지하는지 확인하십시오.