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
-~----------~----~----~----~------~----~------~--~---

Reply via email to