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.

[参考译文] AM62A7:kmssink 的 1280x720 输出未完全显示。

Guru**** 2560390 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1571629/am62a7-the-1280x720-output-of-kmssink-is-not-fully-displayed

器件型号:AM62A7


工具/软件:

版本 10_00_00_08

 这里遇到了一个奇怪的问题。 我连接了分辨率为 1280x720 的 LVDS 屏幕、但在测试期间、我发现当使用 GStreamer 命令显示测试图形时、输出不完整。 结果如下:

命令:

gst-launch-1.0 videotestsrc  pattern=0 is-live=true ! \
video/x-raw,width=1280,height=720,format=NV12,framerate=60/1 ! \
kmssink sync=true

结果:

如您所见、屏幕两侧都有巨大的黑色边框。 此外、videotestsrc图形 0(应显示雪噪声图形)也被这些黑色边沿裁剪。 当我kmssink在代码中直接从的接收器垫获取帧时、它们显示为完成、但一旦显示、输出就会异常。

有趣的是、如果我将videotestsrc宽度更改为 ​1290 、图像将填充屏幕、但部分图像延伸到可见区域之外。

我还测试了modetestkmscube,他们都能够填充屏幕完美.

modetest -M tidss -a -s 40@38:1280x720+0+0@RG24 -a -P  31@38:1280x720+0+0

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

    如您所见、kmssink 的缩放比例为 900x720?

    0:00:00.370964442   354     0x36459ae0 INFO                 kmssink gstkmssink.c:671:log_drm_version:<kmssink0> DRM v1.0.0 [tidss — TI Keystone DSS — 20180215]
    0:00:00.371069006   354     0x36459ae0 INFO                 kmssink gstkmssink.c:716:get_drm_caps:<kmssink0> prime import (✓) / prime export (✓) / async page flip (✗)
    0:00:00.371253495   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AR12
    0:00:00.371284885   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AB12
    0:00:00.371310715   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format RA12
    0:00:00.371393060   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AR15
    0:00:00.371427119   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AB15
    0:00:00.371471564   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format RA24
    0:00:00.371497504   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format BA24
    0:00:00.371540514   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AR30
    0:00:00.371566214   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format AB30
    0:00:00.371590799   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XR12
    0:00:00.371614754   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XB12
    0:00:00.371639168   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format RX12
    0:00:00.371776533   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XR15
    0:00:00.371801893   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XB15
    0:00:00.371846057   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format RX24
    0:00:00.371872072   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format BX24
    0:00:00.371896357   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XR30
    0:00:00.371921087   354     0x36459ae0 INFO                 kmssink gstkmssink.c:849:ensure_allowed_caps:<kmssink0> ignoring format XB30
    0:00:00.372163146   354     0x36459ae0 DEBUG                kmssink gstkmssink.c:886:ensure_allowed_caps:<kmssink0> allowed caps = video/x-raw, format=(string){ RGB16, BGR16, BGRA, RGBA, BGR, RGB, BGRx, RGBx, YUY2, UYVY, NV12 }, width=(int)[ 8, 8096 ], height=(int)[ 8, 8096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    0:00:00.704883198   354     0x36459ae0 INFO                 kmssink gstkmssink.c:1100:gst_kms_sink_start:<kmssink0> connector id = 40 / crtc id = 38 / plane id = 41
    0:00:00.704960933   354     0x36459ae0 INFO                 kmssink gstkmssink.c:1122:gst_kms_sink_start:<kmssink0> display size: pixels = 1280x720 / millimeters = 353x133
    Pipeline is live and does not need PREROLL ...
    0:00:00.706609370   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1328:gst_kms_sink_get_caps:<kmssink0> Proposing caps video/x-raw, format=(string){ RGB16, BGR16, BGRA, RGBA, BGR, RGB, BGRx, RGBx, YUY2, UYVY, NV12 }, width=(int)[ 8, 8096 ], height=(int)[ 8, 8096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    0:00:00.707135338   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1328:gst_kms_sink_get_caps:<kmssink0> Proposing caps video/x-raw, format=(string){ RGB16, BGR16, BGRA, RGBA, BGR, RGB, BGRx, RGBx, YUY2, UYVY, NV12 }, width=(int)[ 8, 8096 ], height=(int)[ 8, 8096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    0:00:00.707287162   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1328:gst_kms_sink_get_caps:<kmssink0> Proposing caps video/x-raw, format=(string){ RGB16, BGR16, BGRA, RGBA, BGR, RGB, BGRx, RGBx, YUY2, UYVY, NVNew clock: GstSystemClock
    12 }, width=(int)[ 8, 8096 ], height=(int)[ 8, 8096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    0:00:00.707375276   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1403:gst_kms_sink_calculate_display_ratio:<kmssink0> video calculated display ratio: 5/4
    0:00:00.707399656   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1413:gst_kms_sink_calculate_display_ratio:<kmssink0> keeping video height
    0:00:00.707425731   354 0xffffa8000b70 DEBUG                kmssink gstkmssink.c:1430:gst_kms_sink_calculate_display_ratio:<kmssink0> scaling to 900x720
    

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

    我通过添加 can-scale=false,解决了这个问题,但我仍然困惑 — 为什么会出现这种现象? 我的驱动程序或 Tidss 配置是否有问题?

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

    尊敬的 Jason:

    很高兴您能解决这个问题。  

    这种操作正常、无需在 AM62A 上的 11.1 SDK 映像上指定 can-scale=false。 (它同样取决于显示)。 在另一个显示器上、我确实看到 1280x720 没有完全显示。  

    另外,can-scale=false 应该显示精确的分辨率(在本例中,这将是您在 videotestsrc 中指定的任何分辨率),而不考虑显示分辨率。  

    您可能可以使用的另一个设置是 force-modesetting=true 、它将填充内容、使其达到您的显示分辨率。  

    此致、

    Suren