This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 摄像头 OV10633

Guru**** 2604555 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642097/camera-ov10633

您好、TI、

我们的开发基于带 Android O 的 Vayu EVM XC5777X 修订版 G3板(6AA.1.0_Engineering_Drop)。

 我们希望将 OV10633传感器集成到目标器件中。

我们将 OV10633传感器连接到目标器件、内核驱动程序识别出它、但在 Android 0 中无法识别传感器。

我们希望能够使用 Android 0中的传感器。

请支持使用此功能吗?

此致、

Goran

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Goran、

    我已将您的问题转发给 Android 专家进行评论。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Goran、

    有关 如何在6AA.1.0_Engineering_Drop 上启用 OV1063x 摄像头的参考信息、请参阅 e2e.ti.com/.../635129。

    谢谢、
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    感谢您的回复。

    我们应用该路径、但相机仍然无法正常工作。

    此外、我们还在 V4LCapabilities.cpp 和 CameraHal.h 文件中更改了分辨率(1280x720、因为这是摄像机 OV10633的分辨率)。 OmxFrameDecoder.cpp 文件不存在(不在一个文件夹中)。

    在 Android 识别到摄像机(hardware/ti/dra7xx/camera/V4LcameraAdapter/V4LcameraAdapter.cpp:1301 V4LcameraAdapter_Capabilities -摄像机设备路径0为/dev/video1)后、但在初始化期间仍会获得一些错误日志(附加了错误日志-'cameraInitialization.txt'):
    - hardware/ti/dra7xx/cameraHal.cpp:126 getSockFamily -'/sys/board_properties/soc/family 不可用。
    - hardware/ti/dra7xx/cameraHal.cpp:286 enableMsgType -未启用预览回调409。

    当我们尝试运行 Android 应用程序"摄像头"时、它会崩溃。
    我们附加了错误日志("CameraApp_ErrorLog.txt")。

    您能为我们解决这个问题吗?

    谢谢、
    Goran

    e2e.ti.com/.../CameraInitialization.txte2e.ti.com/.../CameraApp_5F00_ErrorLog.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    您能否在 启用 TI_CAMERAHAL_DEBUG_ENABLED、 TI_CAMERAHAL_VERSE_DEBUG_ENABLED、 TI_CAMERAHAL_DEBUG_FUNCK_FUNCNTRY_FUNCTION 名称的情况下重建摄像机 HAL、并在尝试启动摄像机应用时向我发送完整的 ADB 日志(我认为您已经启用了这些日志、但需要更完整的日志)?  

    从应用程序错误日志中、我们似乎看到参数设置不正确(SupportedPreviewFpsRange)。 您能否编辑 CameraHal.cpp 以转储 CameraHal::getParameters 末尾的 params_string? 单次转储到 ADB 的时间太长、因此最好写入文件。 您可以参考 V4LCameraAdapter.cpp 中的 saveFile 函数、获取从 Camera HAL 转储到文件的示例。  

    请在有时间尝试时附加这两个输出。

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    感谢您的回复、我们就像您说的那样做了。

    在文件('dump_logcat.txt')中、所有 ADB 日志都包含运行"摄像头"应用程序("运行摄像头应用 程序"打印是应用程序"摄像头"启动的时刻)。

    在文件('dump_params_string.txt')中是包含 params_string 的所有参数。

    如果您从日志中得出结论、您能为我们提供支持吗?

    谢谢、

    Goran

    e2e.ti.com/.../dump_5F00_logcat.txte2e.ti.com/.../dump_5F00_params_5F00_string.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    正如我在上一次答复中提到的、params_string 太长、无法在单个 ADB 转储中捕获。 您可以将其写入文件吗? /data 应可进行写访问。

    如需更多信息、 您能否在调用 splitRange 之前转到 framework/base/core/java/android/hardware/Camera.java (可在 cameraApp_ErrorLog.txt 中找到)和 getSupportedPreviewFpsRange 中的转储 str (第2884行)?

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    -我们在文件(dump_params_string.txt)中转储了 params_string。

    getSupportedPreviewFpsRange()函数中的变量'tr'为空(我们在调用 splitRange 之前打印了变量)。

    如果您知道问题是什么、您能为我们提供支持吗?

    谢谢、

    Goran

    e2e.ti.com/.../8715.dump_5F00_params_5F00_string.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    您应该能够通过插入以下内容来解决当前问题:

    p.set(android::CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE、mcameraProperties->get(CameraProperties:::framera_range);

    在 CameraHal.CPP:4543的线路之后

    p.set(TICameraParameters::KEY_PREVIEW_FRAME_RATE_RANGE、mcameraProperties->get(CameraProperties:::framera_range);

    如果您看到新的故障、请再次包含完整的调试日志。

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    感谢您的回复。

    我们在 initDefaultParameters()函数中添加了这两行。

    应用程序"摄像头"仍然崩溃、但不在同一位置。

    当我们添加了两行您转发给我们时、这是一个日志'dump_logcat.txt'。

    之后、我们删除了 Camera.java 文件(framework/base/core/java/android/hardware/camera.java)中函数 splitRange (String str)中的 if condition、因为它导致了崩溃('sclitRangeFunction.txt')。

    在修改函数 splitRange (String str)后,应用程序“摄像机”仍会崩溃,但位置不同。  ('dump_logcat_fterModif.txt')

    如果您从日志中得出结论、您能为我们提供支持吗?

    谢谢、

    Goran

    e2e.ti.com/.../6622.dump_5F00_logcat.txte2e.ti.com/.../splitRangeFunction.txte2e.ti.com/.../dump_5F00_logcat_5F00_afterModif.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    我建议您撤消对 Camera.java 的更改、因为这样会使我们遇到更严重的问题、同时无法使 splitRange 正常工作。 让我们来看看这为什么不起作用。 在我看来、我们应该改变我之前的建议:

    p.set(TICameraParameters::KEY_PREVIEW_FRAME_RATE_RANGE、mcameraProperties->get(CameraProperties:::framera_range);

    至:

    p.set(TICameraParameters::KEY_PREVIEW_FRAME_RATE_RANGE、"(30000、30000)");

    或者、如果我们在 splitRange 中仍然看到类似错误、可能会更改 V4LCapabilities.cpp 中的 DEFAULT_framerate_range 以包括括号。  

    这些建议基于在 Camera.Java 中阅读 splitRange 的注释。

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    感谢你的帮助。

    我们成功启动了摄像头应用程序、但当我们运行摄像头时、摄像头输出出现问题。

    摄像头输出存在一些 损坏的数据和颜色问题(蓝色显示为红色、红色显示为蓝色)。

    我们附加了带有问题和日志(logcat.txt)的视频(IMG_7213.MOV)。

    如果您知道问题是什么、您能为我们提供支持吗?

    谢谢、

    Goran

    e2e.ti.com/.../logcat.txte2e.ti.com/.../1325.IMG_5F00_7213.MOV

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    这是一个特定于 OV 摄像头的问题、我们的 Android 版本目前不支持此问题、因此我之前没有仔细查看过此问题、但我可以尝试提供帮助。  

    首先、您可以在 V4LCameraAdapter.cpp 中看到对"processFram"的调用、其中指定了用于 VPE 色度转换的输入和输出格式。 至少是颜色问题以及可能看起来像去交错错误的原因可能是输入格式不正确。 如果您在 V4LM2M.cpp "descriptbeFormat"函数中查看从文本参数到实际 V4L2 fourcc 和 colorspace 参数的转换、这些转换传递给我们的 VPE 驱动程序。 首先、我将检查这些配置、以查看我们的摄像头是否采用了错误的输入格式。

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Goran、

    更多地看 OV 摄像头、它看起来像是逐行扫描、而不是隔行扫描。 考虑到这一点、我们根本不应该执行 processFrame 调用、它反映在您的 logcat 中。 这意味着转换问题出在  V4LCameraAdapter.cpp 中的 convertYUV422ToNV12Tiler 函数。 我不知道我们已经尝试支持该函数已经有多长时间了、但是如果您想沿着该路径走、应该能够使用 processFrame 函数调用 VPE 进行色度转换、而不会进行反交错。 您应该能够将 alignedWidth 和 RetVal = processFrame 行(从 IF 块中总共有两行)窃取到 else 块中、从而完全替换 else 块。

    谢谢、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:

    我们应用了您的建议、现在摄像机运行得非常完美。
    感谢你的帮助。

    此致、
    Goran