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.

[参考译文] Linux/DRA744:VPE/NV12

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/631385/linux-dra744-vpe-nv12

器件型号:DRA744

工具/软件:Linux

很棒的酒店

我在 Android JB 系统上使用具有4个视频输入的 DRA7xx 进行板载工作。

VPDMA 加载了 FW "vpdma-1b8.fw"。

是否可以使用 VPE 进行 YUYV -> NV12转换?

因为在我的情况 下、如果我将 VIDIOC_S_FMT ioctl 与 fmt.pix_mp.pixelformat = V4L2_PI_FMT_NV12一起使用、它会失败。

我正在使用内核3.14。

是否有示例测试?

提前感谢您的帮助、

Lorenzo

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

    我已将您的问题转发给视频专家。

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

    VPE 的 NV12输出现在正常、并且2个平面上已满了正确的 Y 和 UV 样本。

    尽管如此、在使用 Android 时、每行都必须划到4096、这是'strige'参数的默认值;此转换需要大量的 CPU 使用。

    尝试在驱动程序中强制将跨度对齐设置为4096以匹配 Android 默认设置,或尝试设置 fmt.pix_mp.plane_fmt[x].bytesperline ,都未成功。

    是否可以从 VPE 获得 nv12输出、直接用于 Android 而无需使用"stripe"参数进行转换?

    提前感谢、

    Lorenzo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Lorenzo、
    请参考中的源代码
    git.ti.com/.../test-v4l2-m2m.c
    这是为了演示 Linux SDK 中的 VPE。
    我在 Linux 中看不到对4096填充的任何限制。
    您是否在 TILER2D 中分配 DRM 缓冲区? 如果是、则需要4096/8192跨度。
    在 Linux 中、尚不支持针对 TILER2D 分配的缓冲区进行 VPE 处理。

    Ramprasad
x 出现错误。请重试或与管理员联系。