【華爲Hicar倒車影像分流需求 四】- 保存視頻數據爲yuv 圖

先寫個隨筆,後面再完善:

倒車視頻是在切倒檔後由車機來控制打開的,
Hicar 在接收到 倒檔信息後,做註冊callback,open camera 這兩步
然後,在 libdmspcamerahandler.so 中,實現將Camera 數據通過 callback 來上報。

目前daemon 中,我是模擬了一個 id = 5 ,判斷到open camera id=5 時,就說明進入倒車視頻。
然後啓動線程,在線程中,將數據以 yuv 文件的形式保存下來。
運行log 如下:

05-28 16:27:12.068 30361 30361 I CamSDK_3rdCamera: [reverse_exe][OpenCamera][570] id=5 
05-28 16:27:12.070 30361 30361 I CamSDK_3rdCamera: [reverse_exe][OpenCamera][584] start create pthread , reverse_capturing=1 
05-28 16:27:12.071 30361 30362 I CamSDK_3rdCamera: [reverse_exe][cap_reverse][548] Enter ... 
05-28 16:27:12.079 30361 30362 I : [reverse_exe][open_Memory][80] buffer -- d2-d2-d2-d2 - d2-d2-d2-d2 - d2-d2-d2-d2
05-28 16:27:12.091 30361 30362 I : [reverse_exe][Camera_Dump][131] filename_buf=/sdcard/reverse/Rear-Camera-720x480-0.yuv  
05-28 16:27:12.133 30361 30362 I : [reverse_exe][open_Memory][80] buffer -- d2-d2-d2-d2 - d2-d2-d2-d2 - d2-d2-d2-d2
05-28 16:27:12.133 30361 30362 I : [reverse_exe][Camera_Dump][131] filename_buf=/sdcard/reverse/Rear-Camera-720x480-1.yuv  
05-28 16:27:12.175 30361 30362 I : [reverse_exe][open_Memory][80] buffer -- d2-d2-d2-d2 - d2-d2-d2-d2 - d2-d2-d2-d2
05-28 16:27:12.175 30361 30362 I : [reverse_exe][Camera_Dump][131] filename_buf=/sdcard/reverse/Rear-Camera-720x480-2.yuv 

數據格式爲 YUV420P N21,720x480,
測試過程中保存的 yuv raw 圖可以使用如下命令查看:
ffplay -video_size 720x480 -pix_fmt nv21 Rear-Camera-720x480-20.yuv

在這裏插入圖片描述
注: 測試圖片爲Camera 的pattern 圖。


該方案目前用的是共享內存方式,但這個方案不能上量產,目前用來和華爲聯調使用,後面有時間,同步我再自已寫AIDL 來實現進程間大數據傳輸。

因爲安卓默認不支持共享內存,所以在Kernel 中,需要使能這兩個宏才能使用共享內存

CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y

TW9992 芯片在不接Camera 情況下,出圖需要改寄存器,往 0x7D 中寫 0x86 即可

// {0x7D,0x06,0x00}
// {0x7D,0x86,0x00}  ----for  test

播放NV21
ffplay -video_size 720x480  -pix_fmt nv21 Rear-Camera-720x480-20.yuv 

播放YUV420P
ffplay -video_size 720x480  -pix_fmt yuv420p Rear-Camera-720x480-20.yuv 

詳解YUV420數據格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章