I have used CC library to convert YUV422 to YUV420 as following: get Next FrameAsYuv422(cc); mYUV422toYUV420->Init(352,288,0,352,288,0,0); mYUV422toYUV420->Convert(cc, (uint8_t*)buffer);
and I send the buffer to PV encoder. But it stop video recording just when i start it. Is the conversion method right? the log as following: E/CameraInput( 1438): writeComplete E/CameraHardwareStub( 1438): >virtual void android::CameraHardwareStub::releaseRecordingFrame(const android::sp<android::IMemory>&) E/CameraHardwareStub( 1438): <virtual void android::CameraHardwareStub::releaseRecordingFrame(const android::sp<android::IMemory>&) E/PV ( 1438): PVLOG:TID (0x8062170):Time=4232:PVMFVideoEncPort::Run E/PV ( 1438): PVLOG:TID(0x8062170):Time=4232:0x8073db8 PvmfPortBaseImpl::Send E/PV ( 1438): PVLOG:TID(0x8062170):Time=4233:0x8074010 PvmfPortBaseImpl::Receive E/PV ( 1438): PVLOG:TID(0x8062170):Time=4233:PORT PVMP4ComposerIn In Msg Received MediaData SeqNum 0, SId 0, TS 0, Q-depth 1/10 E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerPort::HandlePortActivity: type=5 E/PV ( 1438): PVLOG:TID(0x8062170):Time=4233:PORT PVVideoEncOut Msg Sent MediaData SeqNum 0, SId 0, TS 0, Q-depth 0/10 E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerPort::Run E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerNode::ProcessIncomingMsg: aPort=0x8074010 E/PV ( 1438): PVLOG:TID(0x8062170):Time=4233:0x8074010 PvmfPortBaseImpl::DequeueIncomingMsg E/PV ( 1438): PVLOG:TID(0x8062170):Time=4233:PORT PVMP4ComposerIn In Msg De-Q'd MediaData SeqNum 0, SId 0, TS 0, Q-depth 0/10 E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerNode::AddMemFragToTrack: aFormat=0x259, aTimestamp=0, aTrackId=3 E/OpenCore( 1438): Tony, size = 0, data = E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerNode::AddMemFragToTrack: Error - Invalid data or data size E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVMp4FFComposerNode:ReportErrorEvent: aEventType=8193, aEventData=0x8074010 E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVAuthorEngine::HandleNodeErrorEvent E/PV ( 1438): PVLOG:TID (0x8062170):Time=4233:PVAuthorEngine::SetPVAEState: aState=5 E/AuthorDriver( 1438): HandleErrorEvent(-16) E/MediaRecorder( 1816): message received msg=1, ext1=1, ext2=-16 E/MediaRecorder( 1816): callback application E/MediaRecorder( 1816): back from callback E/PV ( 1438): PVLOG:TID (0x8062170):Time=4234:PVMp4FFComposerPort::Run: Error - ProcessIncomingMsg failed. status=-1 V/videocamera( 1816): stopVideoRecording It still get the invalid data or data size. Did you meet the same problem? Thank you very much! On 7月21日, 上午9时46分, Tony <xingxin19860...@gmail.com> wrote: > I will try my best to achive today! > Thanks a lot! > > On 7月21日, 上午9时20分, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > I sent YUV420 format to PV encoder, and I used the colorconversion > > (CC) library to achieve this. For more detail, you may read the files > > inhttp://android.git.kernel.org/?p=platform/external/opencore.git;a=tre... > > And I was helped by Ravi, he's an expert engineer in PV company, which > > develops the PV framework. He helped me a lot in my process to develop > > the application. > > Here is his reply about the > > question:http://groups.google.com/group/android-framework/browse_thread/thread... > > > About the other question, I think there are different ways to achive > > the same goal, you may call mRecordingCallback > > in previewThread() or add another thead() (like recordingThead())to > > call it. All the means could have advantages and disadvantages. > > > On 7月20日, 下午8时07分, Tony <xingxin19860...@gmail.com> wrote: > > > > Dear Jack, > > > Thanks for your reply. > > > I saw this two hours ago. I confirm I meet the same problem as you. > > > And I tried to convert RGB565 to RGB24, but failed. > > > Maybe it's related to my algorithm. What data type do you send to > > > encoder? RGB12, RGB24 or YUV420? Different types means different > > > difficulties, I think. > > > I have to go home now and I will go on studying this part tomorrow. > > > Another question, do you call mRecordingCallback in previewThread() in > > > Camerahal.cpp? > > > Thanks very much for your help. > > > > On 7月20日, 下午12时25分, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > Dear xin xing: > > > > I am sorry that I can not use MSN or reply to you by email because of > > > > my working place's rule. > > > > So may be we could talk just in this way--on the group. In the file > > > > Pvm4vencoder.cpp, you may find > > > > the format that cupcake_r1 supports encoding now.Thereare only 3 > > > > types including YUV420, rgb12,and rgb24. > > > > So, convert your video frame format into these 3 types before you send > > > > them to the encoder or just add your own function to the framework may > > > > lead you forward. > > > > I recommend the former one. Wish it can help. > > > > > On 7月18日, 下午2时16分, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > > Thank you Ravi, I now can record the video and play it in the correct > > > > > way. > > > > > Thank you very much for your help! > > > > > > On 7月10日, 下午9时58分, RaviY <yend...@pv.com> wrote: > > > > > > > pvmi/pvmf/include/pvmf_return_codes.h > > > > > > > On Jul 10, 3:21 am, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > > > > Hi,Ravi > > > > > > > I tried to fill the functions by myself but still can't fix it. > > > > > > > Now I > > > > > > > can enter the preview mode of video recorder, but the function got > > > > > > > crushed every time I press the start key. > > > > > > > And I got the log below: > > > > > > > > ...... > > > > > > > D/CameraService( 55): startCameraMode(1) > > > > > > > D/CameraHardware( 55): CameraHardware startRecording: > > > > > > > D/CameraHardware( 55): vendor/marvell/marvell_310/libcamera/ > > > > > > > CameraHardware.cpp startRecording 761 > > > > > > > E/PVAE ( 55): PVAuthorEngine::HandleNodeInformationalEvent > > > > > > > E/PVAE ( 55): PVAuthorEngine::HandleNodeInformationalEvent > > > > > > > sends > > > > > > > unknown eventType:24 > > > > > > > E/PVAE ( 55): PVAuthorEngineNodeUtility::NodeCommandCompleted > > > > > > > E/PVAE ( 55): > > > > > > > PVAuthorEngineNodeUtility::CompleteStateTransition > > > > > > > E/PVAE ( 55): > > > > > > > PVAuthorEngineNodeUtility::CompleteStateTransition: > > > > > > > return PVMFSuccess > > > > > > > E/PVAE ( 55): PVAuthorEngineNodeUtility::CompleteUtilityCmd: > > > > > > > aCmd.iType=7, aStatus=0x1 > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > cmdType:14 > > > > > > > E/PVAE ( 55): PVAuthorEngineNodeUtility::GetCommandQueueSize: > > > > > > > size=0 > > > > > > > E/PVAE ( 55): PVAuthorEngine::SetPVAEState: aState=3 > > > > > > > E/PVAE ( 55): PVAuthorEngine::CompleteEngineCommand: > > > > > > > aStatus=0x1, > > > > > > > aResponseData=0x0, aResponseDataSize=0 > > > > > > > V/AuthorDriver( 55): Command (14) completed with status(1) > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted: Exit > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::HandlePortActivity: type=5 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::Run > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::ProcessIncomingMsg: > > > > > > > aPort=0x1acc8 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::HandlePortActivity: type=4 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::Run > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::HandlePortActivity: type=5 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::Run > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::ProcessIncomingMsg: > > > > > > > aPort=0x1acc8 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::HandlePortActivity: type=4 > > > > > > > E/PVAE ( 55): PVMFVideoEncPort::Run > > > > > > > E/PVAE ( 55): PVAuthorEngine::HandleNodeErrorEvent > > > > > > > E/PVAE ( 55): PVAuthorEngine::SetPVAEState: aState=5 > > > > > > > E/AuthorDriver( 55): HandleErrorEvent(-16) > > > > > > > V/MediaRecorder( 216): message received msg=1, ext1=1, ext2=-16 > > > > > > > V/MediaRecorder( 216): callback application > > > > > > > V/MediaRecorder( 216): back from callback > > > > > > > ........ > > > > > > > > I don't know what's the meaning of HandleErrorEvent(-16), would > > > > > > > you > > > > > > > please help me to decipher it ? > > > > > > > Thank you very much! > > > > > > > > On 7月8日, 下午5时48分, RaviY <yend...@pv.com> wrote: > > > > > > > > > What is the frame size that you are trying to encode? What is > > > > > > > > the > > > > > > > > frame rate? > > > > > > > > > -Ravi > > > > > > > > > On Jul 8, 4:27 am, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > > > > > > Thank you RaviY! I fix the problem and get into the preview > > > > > > > > > mode now! > > > > > > > > > Thank you very much for your help! But now I get an error > > > > > > > > > when I press > > > > > > > > > start. > > > > > > > > > Would you please help me to fix it? > > > > > > > > > > here is the log: > > > > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::Start > > > > > > > > > E/PVAE ( 55): PVAuthorEngineNodeUtility::Run: Exit > > > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::Run > > > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::DoStart > > > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::DoPrepare: > > > > > > > > > CommonVideoEncoder::Initialize failed > > > > > > > > > E/PVAE ( 55): PVMFVideoEncNode::CommandComplete: > > > > > > > > > Id=10006, > > > > > > > > > Type=6, Status=-1, Context=0x0, Data0x0 > > > > > > > > > E/PVAE ( 55): > > > > > > > > > PVAuthorEngineNodeUtility::NodeCommandCompleted > > > > > > > > > E/PVAE ( 55): > > > > > > > > > PVAuthorEngineNodeUtility::NodeCommandCompleted: > > > > > > > > > Command failed - context=0x0, status=0xffffffff > > > > > > > > > E/PVAE ( 55): > > > > > > > > > PVAuthorEngineNodeUtility::CompleteUtilityCmd: > > > > > > > > > aCmd.iType=7, aStatus=0xffffffff > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > > > cmdType:14 > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::SetPVAEState: aState=5 > > > > > > > > > E/PVAE ( 55): > > > > > > > > > PVAuthorEngineNodeUtility::GetCommandQueueSize: > > > > > > > > > size=1 > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::NodeUtilCommandCompleted > > > > > > > > > cmdType:14 > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::SetPVAEState: aState=5 > > > > > > > > > E/PVAE ( 55): > > > > > > > > > PVAuthorEngineNodeUtility::GetCommandQueueSize: > > > > > > > > > size=0 > > > > > > > > > E/PVAE ( 55): PVAuthorEngine::CompleteEngineCommand: > > > > > > > > > aStatus=0xffffffff, aResponseData=0x0, aResponseDataSize=0 > > > > > > > > > V/AuthorDriver( 55): Command (14) completed with status(-1) > > > > > > > > > E/MediaRecorder( 285): start failed: -2147483648 > > > > > > > > > > On 7月7日, 下午9时12分, RaviY <yend...@pv.com> wrote: > > > > > > > > > > > All static libraries that you are adding should go inside > > > > > > > > > > LOCAL_WHOLE_STATIC_LIBRARIES of libopencoreauthor. > > > > > > > > > > > On Jul 7, 7:08 am, Jack <zhang.sheng...@zte.com.cn> wrote: > > > > > > > > > > > > Yes, here's my android.mk in > > > > > > > > > > > external\opencore\nodes\pvvideoencnode\ > > > > > > > > > > > ...... > > > > > > > > > > > LOCAL_MODULE := libpvvideoencnode > > > > > > > > > > > > LOCAL_CFLAGS := $(PV_CFLAGS) > > > > > > > > > > > > LOCAL_C_INCLUDES := \ > > > > > > > > > > > $(PV_TOP)//nodes/pvvideoencnode/include \ > > > > > > > > > > > $(PV_TOP)//nodes/pvvideoencnode/src \ > > > > > > > > > > > $(PV_INCLUDES) \ > > > > > > > > > > > $(PV_TOP)//codecs_v2/video/m4v_h263/enc/include > > > > > > > > > > > > LOCAL_STATIC_LIBRARIES +=libpvm4vencoder > > > > > > > > > > > > # This lib defines the class CPVM4VEncoder > > > > > > > > > > > > ...... > > > > > > > > > > > > On 7月7日, 下午7时49分, RaviY <yend...@pv.com> wrote: > > > > > > > > > > > > > Did you check if the library that defines the function > > > > > > > > > > > > CPVM4VEncoder > > > > > > > > > > > > is part of the shared library as well? > > > > > > > > > > > > > On Jul 7, 6:47 am, RaviY <yend...@pv.com> wrote: > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > > > > > From: zhang.sheng...@zte.com.cn > > > > > > > > > > > > > [mailto:zhang.sheng...@zte.com.cn] > > > > > > > > > > > > > Sent: Tue 7/7/2009 5:43 AM > > > > > > > > > > > > > To: Ravi K. Yenduri > > > > > > > > > > > > > Subject: Re: Prepare failed in MediaRecorder > > > > > > > > > > > > > > Dear RaviY, > > ... > > 阅读更多 »- 隐藏被引用文字 - > > - 显示引用的文字 - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "android-framework" group. To post to this group, send email to android-framework@googlegroups.com To unsubscribe from this group, send email to android-framework+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-framework?hl=en -~----------~----~----~----~------~----~------~--~---