20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像
2024/1/4 13:23
开发板:Firefly的AIO-3399J【RK3399】
SDK:rk3399-android-11-r20211216.tar.xz【Android11】
Android11.0.tar.bz2.aa【ToyBrick】
Android11.0.tar.bz2.ab
Android11.0.tar.bz2.ac
https://wiki.t-firefly.com/AIO-3399J/prepare_compile_android.html
AIO-3399J产品规格书 立即购买
AIO-3399J 采用 RK3399 六核(A72x2+A53x4) 64 位处理器,主频高达1.8GHz,集成了四核 Mali-T860 GPU,性能优异。
1、简略步骤:
rootroot@rootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2
rootroot@rootroot-X99-Turbo:~/3TB$ tar jxvf Android11.0.tar.bz2
rootroot@rootroot-X99-Turbo:~/3TB$ mv Android11.0 64rk3399-android-11
rootroot@rootroot-X99-Turbo:~/3TB$ cd 64rk3399-android-11
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ cd u-boot
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/u-boot$ ./make.sh rk3399
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/u-boot$ cd ..
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ cd kernel/
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/kernel$ make ARCH=arm64 rockchip_defconfig android-11.config -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11/kernel$ make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3399_Android11/boot.img rk3399-sapphire-excavator-edp-avb.img -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ source build/envsetup.sh
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ lunch
36. rk3399_Android11-userdebug
Which would you like? [aosp_arm-eng] 36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ make -j36
rootroot@rootroot-X99-Turbo:~/3TB/64rk3399-android-11$ ./build.sh -u
2、参考资料:【OV13850】看规格书DATASHEET是可以支持4K录像的【13.2MP at 30fps】,但是在RK3399平台的实践中有点问题。
https://dev.t-firefly.com/thread-129925-1-1.html
20240103_AIO-3399J刷官方Andorid10使用前后摄像头ov13850最高480p【不能是4K分辨率】
请问RK3399的ISP可以支持4K分辨率录像吗?
4K分辨率录像,4LANE下,MIPI的PCLK=
3840x2160x8x30=1990656000 = 1990M bps 也就是接近2G bps
4LANE下MIPI的PCLK=1990656000/(4x2)= 248832000 =【接近 250M bps】
【也就是在2LANE模式为 500M bps】
全像素模式下:support for image sizes: 13.2MP (4224x3136),
4224x3136x8x30=3179151360 = 3179M bps 也就是接近3.2G bps
4LANE下MIPI的PCLK=3179151360/(4x2)= 397393920 =【接近 400M bps】
【也就是在2LANE模式为 800M bps】
Sensor_OV13850-G04A_OmniVision_Specification(V1.1).pdf
OV13580的规格书DATASHEET告诉我们:13.2MP at 30fps
AIO-3399J_Android10_HDMI_210809.7z
点前后摄像头ov13850也只能前后1080p呀!
http://www.taodudu.cc/news/show-3050664.html?action=onClick
瑞芯微 | 摄像头ov13850移植笔记
https://www.shili8.cn/article/detail_20000400637.html
FPGA解码4K分辨率4line MIPI视频 OV13850采集 提供工程源码和技术支持
发布人:shili8 发布时间:2023-03-13 15:06 阅读次数:38
4、vivado工程介绍
工程架构如下:在这里插入图片描述
开发板:Xilinx Kintex7开发板;
开发环境:vivado2020.2;
输入:OV13850;4line;分辨率3840x2160;
输出:HDMI;分辨率1920x1080;
https://download.csdn.net/download/weixin_42651887/86228368?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EOPENSEARCH%7ERate-14-86228368-blog-130116729.235%5Ev39%5Epc_relevant_3m_sort_dl_base1&depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EOPENSEARCH%7ERate-14-86228368-blog-130116729.235%5Ev39%5Epc_relevant_3m_sort_dl_base1&utm_relevant_index=21
OV13850.tar.gz_Linux 驱动ov13850_OV13850 驱动_ov13850_ov13850驱动
extern const IsiRegDescription_t OV13850_g_2112x1568P30_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P25_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P20_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P15_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_2112x1568P10_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P15_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P7_fourlane_fpschg[];
extern const IsiRegDescription_t OV13850_g_4224x3136P4_fourlane_fpschg[];
http://www.orangepi.cn/orangepiwiki/index.php?title=OV13850_%E5%92%8C_OV13855_MIPI_%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95
OV13850 和 OV13855 MIPI 摄像头的测试方法
目前测试 OV13850 不支持 4K 录制视频(OV13855 支持),最高只支持 1080p, 录制视频时请在设置中将视频格式切换到 1080p,步骤如下所示:
a. 首先进入摄像头 APP 的设置界面,然后点击 Resolution & quality
3、为了确认RK3399的ISP/编码器否支持4K录像。
找了很多地方,比如给taobao淘宝上的nanoPi-T4的全部卖家发消息核实。
都回答不行!
请问 这款涉嫌头 ov13850 适配 NanoPC-T4 开发板【RK3399】
可以 4K分辨率录像吗?
【3840x2160 @ 30fps】
https://item.taobao.com/item.htm?id=598190977880&spm=a21m98.27004841
OV13850高清摄像模组MIPI口NanoPC-T4 Pi M4 NEO4 CAM1320摄像头
注1:以上特性描述主要来自于OV13850数据手册;
注2:因主控本身功能特性有限,以上部分性能指标不一定能达到,请以实际为准,更多功能特性,请自行研究使用。
直接找到RK3399的官方文档:
4. 编译 Android10.0 固件
4.1. 下载 Android SDK
由于 SDK 较大,可以去下载页面选择云盘下载 Firefly-RK3399_Android10.0_git_20211222.7z:
https://www.t-firefly.com/doc/download/page/id/31.html
Z:\rk3399_Android10.0\RKDocs\rk3399\Rockchip_RK3399_Introduction_Multimedia_Codec_Benchmark_EN.pdf
4、尝试强制在RK3399的Android11下给摄像头录像的分辨率增加4K选项!
https://blog.csdn.net/QliumengQ/article/details/129623726
2023-03-17 18:05:57-RK3588 camera2 支持4K录像-开开心心everyday
console:/ #
console:/ # dumpsys media.camera | grep picture-size
picture-size: 4096x3136
picture-size-values: 4096x3136,2112x1568,1920x1080,1280x960,1280x720,640x480,352x288,320x240,176x144
console:/ #
console:/ #
largeIndex mediumIndex smallIndex 大 中 小 列表中的三个值,需要继续一层层的跟下去,getNextSupportedVideoQualityIndex里面有个判断把4K分辨率过滤掉了,这个判断需要打开
private static boolean isVideoQualitySupported(int videoQuality) {
// 4k is only supported on L or higher but some devices falsely report
// to have support for it on K, see b/18172081.
if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
return false;
}
return true;
}
&& videoQuality == CamcorderProfile.QUALITY_2160P 这个条件判断去掉
getNextSupportedVideoQualityIndex是获取的接口,代码都贴出来太多,整个调用顺序好了。
rootroot@rootroot-X99-Turbo:~/3TB/66原始Android11.0/packages/apps/Camera2$ grep CamcorderProfile.QUALITY_2160P . -R
./src/com/android/camera/settings/SettingsUtil.java: CamcorderProfile.QUALITY_2160P,
./src/com/android/camera/settings/SettingsUtil.java: if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
grep: ./.git/info: No such file or directory
grep: ./.git/logs: No such file or directory
grep: ./.git/refs: No such file or directory
grep: ./.git/hooks: No such file or directory
grep: ./.git/packed-refs: No such file or directory
grep: ./.git/rr-cache: No such file or directory
grep: ./.git/objects: No such file or directory
grep: ./.git/svn: No such file or directory
grep: ./.git/description: No such file or directory
grep: ./.git/config: No such file or directory
grep: ./.git/shallow: No such file or directory
rootroot@rootroot-X99-Turbo:~/3TB/66原始Android11.0/packages/apps/Camera2$
Z:\3TB\64rk3399-android-11\packages\apps\Camera2\src\com\android\camera\settings\SettingsUtil.java
/**
* @return Whether the given {@link CamcorderProfile} is supported on the
* current device/OS version.
*/
private static boolean isVideoQualitySupported(int videoQuality) {
// 4k is only supported on L or higher but some devices falsely report
// to have support for it on K, see b/18172081.
if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
return false;
}
return true;
}
修改为:
/**
* @return Whether the given {@link CamcorderProfile} is supported on the
* current device/OS version.
*/
private static boolean isVideoQualitySupported(int videoQuality) {
// 4k is only supported on L or higher but some devices falsely report
// to have support for it on K, see b/18172081.
//if (!ApiHelper.isLOrHigher() && videoQuality == CamcorderProfile.QUALITY_2160P) {
if ( !ApiHelper.isLOrHigher() ) {
Log.w(TAG, "2024/1/4 11:06 wenyuanbo");
Log.d(TAG, "2025/1/4 11:07 wenyuanbo");
return false;
}
return true;
}
【参照1080p的参数配置2160P/4K分辨率的!】
N:\AIO-3399J\media_profiles_V1_0.xml
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 2160p stream, Please turn off this element -->
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="18000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 2160p stream, Please turn off this element -->
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="18000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="18000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="1" maxFrameRate="30" />
修改为:
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="18000000"
minFrameWidth="176" maxFrameWidth="3840"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="1" maxFrameRate="30" />
Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Administrator>adb root
* daemon not running; starting now at tcp:5037
* daemon started successfully
restarting adbd as root
C:\Users\Administrator>adb remount
remount succeeded
C:\Users\Administrator>
C:\Users\Administrator>cd N:\AIO-3399J
C:\Users\Administrator>n:
N:\AIO-3399J>adb push media_profiles_V1_0.xml /vendor/etc/
media_profiles_V1_0.xml: 1 file pushed, 0 skipped. 0.4 MB/s (24266 bytes in 0.059s)
N:\AIO-3399J>
效果图:
5、出错的分析:LOGCAT出错
01-04 03:51:39.506 0 0 W rkisp1 : Measurement late(162, 161)
01-04 03:51:39.767 1738 1738 D CAM_VideoModule: onShutterButtonClick
01-04 03:51:39.767 1738 1738 I CAM_VideoModule: startVideoRecording: Thread[main,5,main]
01-04 03:51:39.767 1738 1738 V CAM_VideoUI: mFocusRing.stopFocusAnimations()
01-04 03:51:39.768 1738 1738 D CAM_CameraActivity: mUpdateStorageTask = com.android.camera.CameraActivity$22@7e08a80
01-04 03:51:39.784 1738 1798 D CAM_Storage: External storage state=mounted
01-04 03:51:39.786 1738 1798 D CAM_Storage: /storage/emulated/0/DCIM/Camera can write:true
01-04 03:51:39.792 1738 1798 E CAM_Storage: getOtherAvailableSpace DIRECTORY:/DCIM/Camera UNAVAILABLE
01-04 03:51:39.797 1738 1798 E CAM_Storage: getOtherAvailableSpace DIRECTORY:/DCIM/Camera UNAVAILABLE
01-04 03:51:39.798 1738 1738 I CAM_VideoModule: initializeRecorder: Thread[main,5,main]
01-04 03:51:39.800 355 1729 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.807 1738 1738 D CAM_VideoModule: camera isReleased:false
01-04 03:51:39.821 355 927 W StagefrightRecorder: Max file duration is not positive: 0 us. Disabling duration limit.
01-04 03:51:39.821 355 927 W StagefrightRecorder: Target duration (0 us) too short to be respected
01-04 03:51:39.822 1738 1738 D CAM_LcyLocProvider: No location received yet.
01-04 03:51:39.828 1738 1738 D CAM_LcyLocProvider: No location received yet.
01-04 03:51:39.829 1738 1738 V CAM_VideoModule: New video filename: /storage/emulated/0/DCIM/Camera/VID_20240104_035139.mp4.tmp
01-04 03:51:39.877 355 927 D MPEG4Writer: PreAllocation disabled. fallocate : Operation not supported on transport endpoint, 95
01-04 03:51:39.878 355 927 E CameraSource: Video dimension (3840x2160) is unsupported
01-04 03:51:39.878 355 927 I BpBinder: onLastStrongRef automatically unlinking death recipients: <uncached descriptor>
01-04 03:51:39.878 355 927 D MPEG4Writer: reset()
01-04 03:51:39.878 355 927 D MPEG4Writer: release()
01-04 03:51:39.882 1738 1738 E MediaRecorder: start failed: -19
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: Could not start media recorder.
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: java.lang.RuntimeException: start failed.
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.media.MediaRecorder.start(Native Method)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at com.android.camera.VideoModule$14.onStorageUpdateDone(VideoModule.java:1614)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2770)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2754)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.os.AsyncTask.finish(AsyncTask.java:771)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.os.AsyncTask.access$900(AsyncTask.java:199)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.os.Handler.dispatchMessage(Handler.java:106)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.os.Looper.loop(Looper.java:223)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at android.app.ActivityThread.main(ActivityThread.java:7660)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at java.lang.reflect.Method.invoke(Native Method)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-04 03:51:39.883 1738 1738 E CAM_VideoModule: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: Handling Camera Access Failure:
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: java.lang.Exception
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.camera.FatalErrorHandlerImpl.onGenericCameraAccessFailure(FatalErrorHandlerImpl.java:84)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.camera.VideoModule$14.onStorageUpdateDone(VideoModule.java:1617)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2770)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.camera.CameraActivity$22.onPostExecute(CameraActivity.java:2754)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.os.AsyncTask.finish(AsyncTask.java:771)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.os.AsyncTask.access$900(AsyncTask.java:199)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.os.Handler.dispatchMessage(Handler.java:106)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.os.Looper.loop(Looper.java:223)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at android.app.ActivityThread.main(ActivityThread.java:7660)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at java.lang.reflect.Method.invoke(Native Method)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-04 03:51:39.883 1738 1738 E CAM_FatalErrorHandler: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-04 03:51:39.884 1738 1738 E CAM_CameraUtil: Show fatal error dialog
01-04 03:51:39.911 1738 1738 I CAM_VideoModule: Releasing media recorder.
01-04 03:51:39.928 1175 1310 I MediaProvider: Deleted 1 items on external_primary due to com.android.camera2
01-04 03:51:39.930 1738 1738 V CAM_VideoModule: Empty video file deleted: /storage/emulated/0/DCIM/Camera/VID_20240104_035139.mp4.tmp
01-04 03:51:39.930 355 927 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.934 355 405 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.934 355 405 W StagefrightRecorder: stop while neither recording nor paused
01-04 03:51:39.936 1738 1738 I CAM_VideoModule: Released media recorder.
01-04 03:51:39.959 1738 1765 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
01-04 03:51:39.960 230 230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.960 230 230 D gralloc4: got new private_handle_t instance @0xb4000071f9e12890 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.960 230 230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.960 230 230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.961 230 230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.961 230 230 D gralloc4: got new private_handle_t instance @0xb4000071f9e10250 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.961 230 230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.961 230 230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.962 230 230 D gralloc4: [File] : hardware/rockchip/libgralloc/midgard/src/hidl_common/Allocator.cpp; [Line] : 147; [Func] : allocate;
01-04 03:51:39.962 230 230 D gralloc4: got new private_handle_t instance @0xb4000071f9e12890 for buffer 'com.android.camera2/com.android.camera.CameraLauncher#1'. share_fd : 8, share_attr_fd : 9, flags : 0x4, width : 1217, height : 463, req_format : 0x1, producer_usage : 0xb00, consumer_usage : 0xb00, internal_format : 0x1, stride : 0, byte_stride : 4928, internalWidth : 1217, internalHeight : 463, alloc_format : 0x1, size : 2281664, layer_count : 1, backing_store_size : 2281664, allocating_pid : 230, ref_count : 1, yuv_info : 0
01-04 03:51:39.962 230 230 D gralloc4: plane_info[0]: offset : 0, byte_stride : 4928, alloc_width : 1217, alloc_height : 463
01-04 03:51:39.962 230 230 D gralloc4: plane_info[1]: offset : 0, byte_stride : 0, alloc_width : 0, alloc_height : 0
01-04 03:51:39.980 1738 1765 D android.camera: set stream to NULL
[ 46.672930] rkisp1: Measurement late(179, 178)
01-04 03:51:40.074 0 0 W rkisp1 : Measurement late(179, 178)
baidu/bing/google搜索: CameraSource: Video dimension (3840x2160) is unsupported
https://blog.csdn.net/dongxianfei/article/details/122622733
CTS测试中和Media相关的项-testGet/testGetWithId
(4)示例
(A)
03-22 10:15:40.088 10164 23970 23995 V CamcorderProfileTest: profile: duration=30, quality=1, fileFormat=2, videoCodec=2, videoBitRate=43000000, videoFrameRate=30, videoFrameWidth=3840, videoFrameHeight=2160, audioCodec=3, audioBitRate=128000, audioSampleRate=48000, audioChannels=2
03-22 10:15:40.088 10164 23970 23995 E CamcorderProfileTest: Size (3840x2160) is not supported
03-22 10:15:40.089 10164 23970 23995 E TestRunner: failed: testGet(android.media.cts.CamcorderProfileTest)
03-22 10:15:40.089 10164 23970 23995 E TestRunner: ----- begin exception -----
03-22 10:15:40.091 10164 23970 23995 E TestRunner: junit.framework.AssertionFailedError
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at junit.framework.Assert.fail(Assert.java:48)
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at junit.framework.Assert.assertTrue(Assert.java:20)
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at junit.framework.Assert.assertTrue(Assert.java:27)
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at android.media.cts.CamcorderProfileTest.checkProfile(CamcorderProfileTest.java:129)
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at android.media.cts.CamcorderProfileTest.checkGet(CamcorderProfileTest.java:402)
03-22 10:15:40.091 10164 23970 23995 E TestRunner: at android.media.cts.CamcorderProfileTest.testGet(CamcorderProfileTest.java:494)
从Log可以看到,CamcorderProfileTest: Size (3840x2160) is not supported。
此时查看media_profiles.xml当中有配置这个size,那最大可能就是此Size超过了Sensor Drv输出能力,经确认Sensor最大输出3264x2448,从而需要从media_profiles.xml当中移除此Size。
http://www.taodudu.cc/news/show-3050665.html?action=onClick
RK3399适配OV8858摄像头
Video
Back camera video
UHD 4K
Camera error
Can't connect to the camera.
REPORT DISMISS
视频
后置摄像头视频
UHD 4K
相机发生错误
无法连接到相机。
报告 关闭
参考资料:
http://www.friendlyelec.com.cn/agent.asp
http://www.friendlyelec.com.cn/
https://download.friendlyelec.com/NanoPC-T4
https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4/zh#.E4.B8.8B.E8.BD.BDAndroid10.E6.BA.90.E4.BB.A3.E7.A0.81
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.37562e8dcotDm6&id=570312633249&_u=7ju3ku004a
友善NanoPC-T4瑞芯微RK3399开发板ROS双摄4K播放开源AI智能安卓10
WiKi维基教程(固件介绍,使用说明,操作步骤等)
http://wiki.friendlyelec.com/wiki/index.php/NanoPC-T4
系统固件下载
https://dl.friendlyelec.com/nanopct4
原理图(pdf格式)
http://wiki.friendlyelec.com/wiki/images/e/e0/NanoPC-T4-1902-Schematic.pdf
尺寸图(dxf格式)
http://wiki.friendlyelec.com/wiki/images/b/bc/NanoPC-T4_1802_Drawing%28dxf%29.zip
http://www.friendlyelec.com.cn/nanopi-m4.asp
NanoPi M4 | NanoPi M4V2
https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M4/zh
15.3 编译Android10源代码
15.3.1 下载Android10源代码
有以下两种途径获取 Android10 的源代码,都需要联网:
使用网盘里的git repo压缩包
网盘下载地址: 点击进入
https://download.friendlyelec.com/NanoPiM4
https://pan.baidu.com/share/init?surl=oBLn9H31hILJKEPQXgrUog
提取码:yn6r