a.yuv is more redder than normal, so maybe you should check your
camera driver & hardware.
And you said the video playing only continued for one or two seconds
although I recorded for more than 30 seconds,
so what's happening after one or two seconds? I think you should
provide more detail like logs, codes to
make it clear for the readers.

On 7月27日, 下午4时04分, Tony <[email protected]> wrote:
> Dear Jack,
> Last week, I corrected some mistakes.Something happened as following.
> I take the YUV422 buffer as a.yuv and take YUV420 buffer converted
> from YUV422 as b.yuv  in CameraHal.cpp .
> And they can be displayed in YUVViewer, but their colors are not
> normal. a.yuv is more redder than normal, and b.yuv is gray.
> The "Invalid data type or size" disappeared in the log.
> But the 3gp file encorded is still wrong, its playing only continued
> for one or two seconds although I recorded for more than 30 seconds.
> And the  picture of playing is full of colorful fragments.
> Now, I have no ideas about this.
> Do you have more suggestions? Or, could you attach your CameraHal.cpp?
> Thank you very much for your help!
>
> On 7月21日, 下午4时17分, Jack <[email protected]> wrote:
>
>
>
> > I did not meet the same problem. But I think maybe you can check the
> > problem step by step and finally locate it to the cause root.
> > 1. ensure the data transfer back from your hardware can construct the
> > right format frame, e.g YUV422.
> > 2. after the conversion, ensure the data transfer from CameraHAL to PV
> > can construct the right format frame, e.g YUV420.
> > In order to check these two things, you need to save one frame to
> > a .yuv file in the CameraHAL.cpp and the
> > pvmf_media_input_data_buffer.cpp separately.
> > Write the save_to_file function by your self and add it in the two
> > files above.
> > Then check the two yuv file on PC, using some software like YUVViewer.
> > If you can see two good pictures, that means you are not far from
> > success.
> > Good luck!
>
> > On 7月21日, 下午3时17分, Tony <[email protected]> wrote:
>
> > > 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 SeqNum0, SId0, TS0, 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 SeqNum0, SId0, TS0, Q-depth0/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 SeqNum0, SId0, TS0, Q-depth0/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 <[email protected]> wrote:
>
> > > > I will try my best to achive today!
> > > > Thanks a lot!
>
> > > > On 7月21日, 上午9时20分, Jack <[email protected]> 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 thinkthereare 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> wrote:
>
> > > > > > > > > pvmi/pvmf/include/pvmf_return_codes.h
>
> > > > > > > > > On Jul 10, 3:21 am, Jack <[email protected]> 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):
>
> ...
>
> 阅读更多 »- 隐藏被引用文字 -
>
> - 显示引用的文字 -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"android-framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/android-framework?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to