the problem maybe occurs in the function bool PVMFOMXVideoEncNode::SendInputBufferToOMXComponent() if( (current_msg_seq_num - iInPacketSeqNum) > 1 )
in the file externl/opencore/nodes/pvomxvideoencnode/src/ pvmf_omx_videoenc_node.cpp, because when force variable iKeepDroppingMsgsUntilMarkerBit = false,it can record audio&video normally but i don't know why? On 2月14日, 上午12时46分, Dave Sparks <[email protected]> wrote: > I see this in the log: > > I/OpenCore( 684): ------leave > > It happens right after an allocator call. My guess is that your CPU > can't keep up with audio and video encode at the same time and the MIO > is running out of buffers. You can probably work around this problem > by keeping count of buffers in the codec and when they are all full, > start dropping frames in the MIO. > > On Feb 12, 2:26 am,forest<[email protected]> wrote: > > > > > xscale, ipp > > the log: > > V/videocamera( 688): initializeVideo > > V/videocamera( 688): Releasing media recorder. > > V/videocamera( 688): SurfaceHolder is null > > I/VideoPreview( 688): ar 1.6666666 setting size: 400x240 > > V/videocamera( 688): stopVideoRecording > > V/videocamera( 688): initializeVideo > > V/videocamera( 688): Releasing media recorder. > > I/PVMediaRecorder( 684): constructor > > I/AuthorDriver( 684): InitializeForThread > > I/AuthorDriver( 684): OMX_Init > > I/AuthorDriver( 684): Create author ... > > I/PVMediaRecorder( 684): constructor > > I/AuthorDriver( 684): InitializeForThread > > I/AuthorDriver( 684): OMX_Init > > I/AuthorDriver( 684): Create author ... > > I/PVMediaRecorder( 684): init > > I/AuthorDriver( 684): Command (1) completed with status(1) > > I/PVMediaRecorder( 684): destructor > > I/AuthorDriver( 684): Delete Author > > I/PVMediaRecorder( 684): setAudioSource(1) > > I/audio_input( 684): AndroidAudioInput constructor 0x29a00 > > I/AuthorDriver( 684): create mio input audio > > I/audio_input( 684): ThreadLogon 0x29a00 > > I/audio_input( 684): connect > > I/audio_input( 684): DoRequestCompleted(0, 1) this 0x29a00 > > I/AuthorDriver( 684): Command (4) completed with status(1) > > I/PVMediaRecorder( 684): setVideoSource(1) > > I/CameraInput( 684): constructor > > I/AuthorDriver( 684): create mio input video > > I/CameraInput( 684): ThreadLogon > > I/CameraInput( 684): connect > > I/CameraInput( 684): QueryInterface > > I/CameraInput( 684): AddCmdToQueue > > I/CameraInput( 684): Run > > I/CameraInput( 684): DoRequestCompleted > > I/AuthorDriver( 684): Command (3) completed with status(1) > > I/PVMediaRecorder( 684): setOutputFormat(1) > > I/AuthorDriver( 684): Command (5) completed with status(1) > > V/videocamera( 688): before setOutputFile > > I/PVMediaRecorder( 684): setOutputFile(/sdcard/dcim/camera/ > > 187372.3gp) > > I/PVMediaRecorder( 684): setVideoFrameRate(15) > > I/CameraInput( 684): SetFrameRate > > I/PVMediaRecorder( 684): setVideoSize(400, 240) > > I/CameraInput( 684): SetFrameSize > > I/CameraInput( 684): FrameSizeChanged > > I/PVMediaRecorder( 684): setVideoEncoder(3) > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): AllocateKvp > > I/CameraInput( 684): releaseParameters > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=8, > > iChunkSize=8320 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::createmempool > > iChunkSize=8320, iNumChunk=8 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=8, > > iChunkSize=128 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::createmempool > > iChunkSize=128, iNumChunk=8 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=9, > > iChunkSize=0 > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): AllocateKvp > > I/CameraInput( 684): setParametersSync > > I/CameraInput( 684): VerifyAndSetParameter > > I/CameraInput( 684): releaseParameters > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): AllocateKvp > > I/CameraInput( 684): releaseParameters > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): AllocateKvp > > I/CameraInput( 684): releaseParameters > > I/CameraInput( 684): getParametersSync > > I/CameraInput( 684): AllocateKvp > > I/CameraInput( 684): releaseParameters > > I/CameraInput( 684): createMediaTransfer > > I/CameraInput( 684): setPeer > > I/AuthorDriver( 684): Command (6) completed with status(1) > > I/PVMediaRecorder( 684): setAudioEncoder(1) > > I/audio_input( 684): getParametersSync(.../input_formats;attr=cap) > > I/audio_input( 684): getParametersSync(.../output_formats;attr=cap) > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=4, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=10, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=9, > > iChunkSize=0 > > I/audio_input( 684): getParametersSync(.../output_formats;attr=cap) > > I/audio_input( 684): setParametersSync > > I/audio_input( 684): getParametersSync(.../output/ > > sampling_rate;attr=cur) > > I/audio_input( 684): getParametersSync(.../num_channels;attr=cur) > > I/audio_input( 684): createMediaTransfer 0x29a00 > > I/audio_input( 684): setPeer > > I/AuthorDriver( 684): Command (7) completed with status(1) > > V/videocamera( 688): before setPreviewDisplay > > I/MediaRecorderJNI( 688): prepare: surface=0x1c0d80 (id=1) > > I/PVMediaRecorder( 684): setPreviewSurface(0x2f208) > > I/CameraInput( 684): SetPreviewSurface > > I/PVMediaRecorder( 684): prepare > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[0] > > =video_decoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[1] > > =video_encoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[2] > > =video_encoder.h263 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[3] > > =video_decoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[4] > > =video_encoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[5] > > =audio_decoder.mp3 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[6] > > =audio_decoder.aac > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[7] > > =video_decoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[8] > > =video_decoder.h263 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[9] > > =video_decoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[10] > > =audio_decoder.aac > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[11] > > =audio_decoder.amr > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[12] > > =audio_decoder.mp3 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[0] > > =video_decoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[1] > > =video_encoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[2] > > =video_encoder.h263 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[3] > > =video_decoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[4] > > =video_encoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[5] > > =audio_decoder.mp3 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[6] > > =audio_decoder.aac > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[7] > > =video_decoder.mpeg4 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[8] > > =video_decoder.h263 > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[9] > > =video_decoder.avc > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[10] > > =audio_decoder.aac > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[11] > > =audio_decoder.amr > > I/OpenCore( 684): ------PV_MasterOMX_GetComponentsOfRole[12] > > =audio_decoder.mp3 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::allocate > > iChunkSize=0, n=16 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::createmempool > > iChunkSize=16, iNumChunk=1 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::allocate > > iChunkSize=16, n=16 > > D/PVMFOMXVideoEncNode( 684): @@@@@@@@@@@@ iOutputAllocSize = 436104 > > and iOMXComponentOutputBufferSize = 432000 @@@@@@@@@@@@@ > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=0 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::allocate > > iChunkSize=0, n=436104 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::createmempool > > iChunkSize=436104, iNumChunk=1 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator iNumChunk=1, > > iChunkSize=128 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::createmempool > > iChunkSize=128, iNumChunk=1 > > I/OpenCore( 684): ------OsclMemPoolFixedChunkAllocator::allocate > > iChunkSize=436104, n=436104 > > I/CameraInput( 684): Init > > I/CameraInput( 684): AddCmdToQueue > > I/audio_input( 684): Init > > I/CameraInput( 684): Run > > I/CameraInput( 684): DoInit() > > D/CameraService( 684): Connect E from ICameraClient 0x30d8c > > D/CameraService( 684): Client E constructor > > W/CameraService( 684): ---------- > > CameraHardwareMadonna::CameraHardwareMadonna > > W/CameraService( 684): open /dev/video0 success fd=10 > > W/CameraService( 684): ioctl VIDIOC_S_INPUT success > > D/CameraService( 684): initHeapLocked: preview size=400x240 > > D/CameraService( 684): Client X constructor > > D/CameraService( 684): Connect X > > D/CameraService( 684): setPreviewDisplay(0x2f208) > > D/CameraInput( 684): Intended mFrameWidth=400, mFrameHe=240 > > D/CameraService( 684): getParameters > > D/CameraService( 684): setParameters(picture-format=jpeg;picture- > > size=800x600;preview-format=rgb565;preview-frame-rate=30;preview- > > size=400x240) > > D/CameraService( 684): initHeapLocked: preview size=400x240 > > D/CameraService( 684): getParameters > > D/CameraInput( 684): Actual mFrameWidth=400, mFrameHe=240 > > D/CameraService( 684): startPreview() > > W/CameraService( 684): ioctl VIDIOC_S_PARM success > > W/CameraService( 684): ioctl VIDIOC_S_FMT success > > W/CameraService( 684): ioctl VIDIOC_REQBUFS > > ... > > 阅读更多 >>- 隐藏被引用文字 - > > - 显示引用的文字 - --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
