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

Reply via email to