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/DRA746:有关视频解码器输出的 libdce/ompdrmtest 缓冲区管理的问题

Guru**** 2553680 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/608356/linux-dra746-questions-on-libdce-ompdrmtest-buffer-management-for-video-decoder-output

器件型号:DRA746

工具/软件:Linux

git.ti.com/.../上提供了针对 Linux/DRM 的 libdce 测试

在完成代码后、我有一些问题:
1.应用程序(基于 libdce)必须打开 DRM 器件、而 gst-plugins-Ducati 也是以类似的方式打开的、对吧?
我是说"global_fd = drmOpen ("omapdrm"、NULL);"
是否存在任何潜在的安全问题?
而在 DCE_init()中,它的作用是什么?

2. display-wayland.c 中没有 DRI2Authenticate(),为什么?

3.我想在 Wayland 平台上跳过视频渲染、然后可以忽略 display-wayland.c 中的所有 wayland 操作
它是否可行?

顺便说一下、在 display-wayland.c 行086-093中似乎有一个错误
我认为对齐应该在 OMAP-BO_NEW ()期间完成、而不是在这之后完成、类似于:
*间距= ALIGN2 (宽* bpp/8、page_shift)、
BO = omap_bo_new (disp->dev、pitp*height、bo_flags)

否则、当视频宽度比间距小得多时。 BO_DATA_SIZE /间距将小于原始高度。 例如:(假设 bpp=8)、176x144视频分辨率可能会创建大小为176x144x4的 bo;如果间距为176x8、则最终高度为144/2)

经过另一种思考、使用 bpp 计算音调也不够好。

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

    我已将您的问题转交给一位专家进行评论。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Halley、
    1) 1) OMAP-DRM 驱动程序具有 refcount 管理、它负责 drmOpens 的数量。
    2) 2)在 X11情况下需要、但我猜对于陆路不需要。
    3)您可以尝试 kms 或 kmscube。 它看起来是什么样子的吗?
    4) 4)如果缓冲器在 TILER2D 中、则需要调整间距。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。

    至2. 根据我的理解、DRI2Authenticate 与 DRI/DRM 相关。 它独立于 x11或陆地。

    至4. 以特殊情况为例,让视频分辨率为2*4096;然后最终的 bo 大小可能为4*4096,间距为4096。
    然后,将视频高度视为4*4096/4096=4。 不正确。
    因此您应该在 omap_bo_new()之前计算 pith。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Halley、
    *间距=宽度* bpp / 8;--- >这将是取决于宽度和颜色格式的实际间距。
    IF (BO_FLAGS 和 OMAP-BO_TOB砖 型)
    *pitch = ALIGN2 (*pitch,page_shift);------ >在本例中,间距将为4096或8192。

    在 util/display-x11.c 中,调用了 DRI2Authenticate(),对于 wayland,util/wayland-drm-client-protocol.h 定义了验证函数,但未使用。 我将检查此内容并告知您。

    Ramprasad
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、我们尚未到达相同的页面进行间距。
    (忽略 bpp、或 sait 为8)
    omap_bo_new()分配内存,它尊重 width*height。 结果为 bo_size,不小于 width*height。
    视频 DSP 将在大于宽度的任何间距使用此 bo;以及硬件对齐要求。 它与高度无关。
    然后皮*高可能比 bo_size 大。 这将导致失败。