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/AM5728:将1080p 写回1080i 转换

Guru**** 2595805 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/632655/linux-am5728-writeback-1080p-to-1080i-conversion

器件型号:AM5728

工具/软件:Linux

您好!
我正在使用 AM5728 PSDK 04.00.04。

我们在 LCD 上指定了双摄像头、示例源(modetest.c)和当前的 WB 1920 x 1080p HDMI。
ioctl (VIDIOC_STREAMON、VIDIOC_STREAMOFF、VIDIOC_DQBUF、VIDIOC_QBUF……)
1080p 没有问题。

但是、如果将1080p HDMI 更改为1080i、WB、则会出现许多错误消息
尽管它显示在 WB 屏幕的 LCD 上、但它不是通用屏幕。

随附错误消息。

================================================================================================

[49.252115] OMAP-CRTC_ERROR_IRQ:抑制了50036回调
[49.257715][DRM:OMAP-CRTC_ERROR_IRQ]*错误*电视:错误:00008000
[49.263955][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:1400a0a2.
[49.270172] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.274575][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:04008008
[49.280783] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.285449][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:00008000
[49.291684][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:04008000
[49.297894] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.302299][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:1000a0aa
[49.308517][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:04008000
[49.314723] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.319123][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:1000a0a6
[49.325356][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:04008000
[49.331562] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.335960][DRM:OMAP_CRTC_ERROR_IRQ]*错误* tv:错误:1000a0aa
[49.342193] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.35274] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.369385] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.386066] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.402717] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.419399] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.436053] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.452735] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.469387] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.486067] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.502718] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.519398] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.536051] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.552733] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.569387] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.586068] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.602719] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.619402] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.786066] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.802718] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.819399] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.836052] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.852732] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.869386] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.886065] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.902718] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.919400] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.936051] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.952732] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.969386] omapwb-cap:WB:WBUNCOMPLETEERROR
[49.986068] omapwb-cap:WB:WBUNCOMPLETEERROR

(笑声)

================================================================================================

在 PSDK 03.01.00.06版本中也会出现此问题。
此时、我们通过修改 OMAP-WW_CAP 的 wbCAP_Handle_vsync (struct wbCAP_dev * dev)来解决该问题。
但是、同一解决方案不适用于当前使用的 PSDK 04.00.00.04版本。
我们的客户需要1080i。

请帮帮我。
提供需要更多信息的案例。
谢谢!

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

    已通知视频专家。 答案将发布在此处。

    此致、
    Kemal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    WB 捕获不使用隔行输入进行测试、因此可能会出现问题。 您在 PLSDK 3.1上所做的修复应该适用于 PLSDK 4.0、但可能需要进行移植、因为 DS/DRM 子系统在这两个版本之间发生了相当大的变化。

    请与我们分享您之前应用的补丁。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha

    从3.1更改为4.0、我们更新了 PLSDK、
    结果、DS/DRM 子系统的许多部分发生了变化。
    我们希望这一问题将列入该部分。

    在 PLSDK 3.1中、我们的解决方案很简单。

    GPU / DRM / omapdrm / omap_wb_cap.c
    由 wbcap_handle_vsync 调用 void ()
    我们更改了 hrtimer_start_range_ns 中@time 和@Tim 的值()。

    hrtimer_start_range_ns (& dev->wbgo_timer、3、1000000、HRTIME_MODE_REL)
    => hrtimer_start_range_ns (& dev->wbgo 计时器、3、100000、HRTIMER 模式_REL)
    或 hrtimer_start_range_ns (& dev->wbGO_timer、0、100000、HRTIMER _MODE_REL)

    目前、PLSDK 4.0中未应用相应的解决方案。
    但愿这对您有所帮助。

    我们需要连接 WB。
    我们的客户迫切需要这种解决方案。

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

    请尝试附加补丁、如果您发现任何其他问题、请告知我们。  

    e2e.ti.com/.../LCPD_2D00_10921.zip

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

    感谢您提供该补丁、我们已应用它。
    不再显示 OMAP-DRM 错误消息。
    这似乎是有效的。

    但我发现了一个问题。
    WB 不是全屏、但高度以1/2的大小显示。

    我们调试这个问题。
    我修改了一些代码。

    drivers/GPU/DRM/omapdrm/dss/dispc.c
    (0002-DRM-OMAP-FIX-WB-height-with interlap.patch)
    (笑声)

    - IF (ilace && height == out_height)
      -现场模式= true;

    (笑声)

    我没有应用该部分。
    然后全屏显示 WB。

    我们不知道这种方法是一种常规方法。
    我希望在这一问题上得到援助。

    谢谢你。

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

    花边间距场高度预计为帧高度的一半、因此1080i 的预期 WB 捕获值为540。 您是否看到270度的捕获高度与我共享的贴片?

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

    我们已再次检查。

    WB 的高度为540。

    这是正确的行为。

    我们必须向上扩展并显示它。

    感谢您的支持。

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

    大家好、Manisha

    您提供的修补程序(LCPD-1091.zip)有一个新问题。

    从 WB 接收到的帧的偏移量是不同的。

    将同一屏幕输出到 WB 时、屏幕不会中断。

    从 WB 连续接收的数据保存为映像。

     帧_1

    帧_2

    将奇数数据/偶数数据与 DSS 组合时、偏移似乎存在问题。


    是否有任何东西可以确认此问题?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    目前、捕获回写解决方案不会检测哪个字段是哪个字段。 我注意到你报告的上述问题。 当我们添加场检测功能时、我们将对其进行研究。 目前、我没有任何时间轴可供提交。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Aupers、

    请找到随附 的补丁、通知用户该字段是顶部还是底部。 我们不会看到任何场偏移问题。 请尝试此操作、并告知我们它是否可以解决您的问题。

    e2e.ti.com/.../7776.0001_2D00_drm_2D00_omap_2D00_omap_5F00_wb_5F00_cap_2D00_Add_2D00_support_2D00_for_2D00_interlace_2D00_field.patch

    此致、

    Manisha

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

    大家好、Manisha

    感谢您提供该补丁。

    我们用这个对它进行了测试。

    它比以前更好、但有时屏幕会震动。

    我在应用程序的字段选项中设置'V4L2_field_alternal'。

    我们修改了几个源。(7776.0001-DRM-OMAP-OMAP-OMAP-WB_CAP-ADD-SUPPTE-for-interlap-field.patch)

    ===================================================================================================

    OMAP-WB_CAP_PATCH.c

    void wbcap_IRQ (struct wbcap_dev *dev、u32 irqstatus)

       if (IT_INPUT_IRQ_vSYNC_SET (dev、irqstatus)){

          if (dev->field!= V4L2_field_none){

             IF (irqstatus & DISPC_IRQ_EVSYNC_EVE偶 数)

                dev->field = V4L2_field_bottom;

             否则、如果(irqstatus & DISPC_IRQ_EVSYNC_ODD)

                dev->field = V4L2_field_top;

        }

             wbcap_handle_vsync (dev);

       }

    =>

    void wbcap_IRQ (struct wbcap_dev *dev、u32 irqstatus)

       if (IT_INPUT_IRQ_vSYNC_SET (dev、irqstatus)){

          if (dev->field!= V4L2_field_none){

             IF (irqstatus & DISPC_IRQ_EVSYNC_EVE偶 数)

                dev->field = V4L2_field_bottom;

             否则、如果(irqstatus & DISPC_IRQ_EVSYNC_ODD){

                dev->field = V4L2_field_top;

                wbcap_handle_vsync (dev);

             }

          }

       }

    ===================================================================================================

    这样屏幕抖动的问题已解决。

    是否适合这样做?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我们看来、您所做的更改不会有所帮助。 请帮助我们更好地了解您的问题。

    您看到了什么类型的屏幕抖动? 我们如何在最终重现它? 您是在谈论 HDMI 显示屏、还是在谈论捕获的数据。 如果稍后,您能否共享显示握手的数据?