20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像

发布时间:2024年01月04日

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

文章来源:https://blog.csdn.net/wb4916/article/details/135394273
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。