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: The 1280x720 output of kmssink is not fully displayed.

Part Number: AM62A7


Tool/software:

SDK ver 10_00_00_08

 I’ve encountered a strange issue here. I connected an LVDS screen with a resolution of 1280x720, but during testing, I found that when I used a GStreamer command to display a test pattern, the output was incomplete. The result is as follows:

cmd:

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

result:

As you can see, there are huge black borders on both sides of the screen. Additionally, the videotestsrcpattern 0 (which should display a snow noise pattern) is also cropped by these black edges. When I directly fetch frames from the sink pad of kmssinkin my code, they appear complete—but once displayed, the output becomes abnormal.

Interestingly, if I change the videotestsrcwidth to ​1290, the image fills the screen, but part of it extends beyond the visible area.

I also tested with modetestand kmscube, and both of them are able to fill the screen perfectly.

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

  • As you can see , the kmssink scale to 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
    

  • I resolved this issue by adding can-scale=false, but I'm still puzzled - why does this phenomenon occur? Could there be an issue with my driver or the tidss configuration?

  • Hi Jason,

    Glad you were able to get it resolved. 

    It worked fine without me having to specify the can-scale=false on my 11.1 SDK Image on my AM62A. (It again is display dependent). On another display i do see that the 1280x720 didn't show entirely. 

    Also, can-scale=false should display the exact resolution (here in your case, that would be whatever you specify in videotestsrc) irrespective of the display resolution. 

    Another setting that you can probably use is force-modesetting=true  which would fill up the content to your display resolution. 

    Best Regards,

    Suren