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/DRA72: EGLFS question

Part Number: DRA72

Tool/software: Linux

How do we do deinterlacing of analog camera input with QT? Our QT Application runs on eglfs.

Michel Catudal

ACTIA Corp

  • Hi Michael,

    We don't have much experience with Qt SW framework. You may want to check with Qt community.

    Let me answer the question from HW capability standpoint. On TI DRA72 SoC, you can use VPE (Video Processing Engine) HW block to do the deinterlacing. This is an M2M (memory-to-memory) IP and is accessible via V4L2 interface. Hope this helps.

    Regards,
    Anand
  • Do you have some examples? I am able to do de-interlace  with gst-launch but I need to be able to do the same using the library.

    It is not obvious how I would do that.

    QT uses the function "GstElement *CameraBinSession::buildCameraSource()" in camerabinsession.cpp

    Michel Catudal

    ACTIA Corp

  • Hi,

    Please refer:
    processors.wiki.ti.com/index.php

    Source code for test application is available in TI Git tree:
    git.ti.com/.../v4l2-m2m

    Regards,
    Anand
  • Anand,

    It doesn't really do what I need to do.

    test-v4l2-m2m
    
     Usage:
     <SRCfilename> <SRCWidth> <SRCHeight> <SRCFormat> <DSTfilename> <DSTWidth> <DSTHeight> <DSTformat> <interlace> <translen>


    I have no source input filename to use. I do not want to send to a file


    All I want is to display the live video to the screen and have it deinterlaced.


    Camera inputs are video0 to video3, video input can be NTSC or PAL


    Format from the analog video input is "8-bit UYVY 4:2:2"
    Input is 720x480 or 720x576


    Michel Catudal
    ACTIA Corp




  • Michel,

    The same link has another application which does what you want:
    processors.wiki.ti.com/index.php

    VIP-VPE-Display
    Camera captures the frames, which are processed by VPE(SC, CSC, Dei) then displays on LCD/HDMI.

    Regards,
    Anand
  • Anand,

    That wouldn't work. The cameras are connected to a Renesas isl79987 and use ti_cal and not vip. The output of the isl79987 is connected to csi2_1

    Michel Catudal

    ACTIA Corp

  • Michel,

    The examples show how to use VPE in an M2M mode using V4L2 to achieve deinterlacing. You can take the examples and customize it for your configuration. Do you have questions on the sample applications shared?

    Regards,
    Anand
  • Anand,

    I ran the test program and didn't get very good results

    The 4 cameras are on /dev/vide0 to /dev/video3
    vpe is on /dev/video4

    In the example code the vpe was on /dev/video0 and the camera on /dev/video1
    I fixed the code to match the correct video lines.
    How do I fix that and how would I use that to convert all 4 camera inputs at the same time?
    When I use gstreamer it uses vpe with waylandsink kmssink doesn't work.


    capturevpedisplay crashes. It says that the video is busy if I have weston running.


    root@actia-dra726-12inch:~/work/omapdrmtest# ./capturevpedisplay 720 480 uyvy 360 240 uyvy 0 1 -s 32:720x480
    vpe:/dev/video4 open success!!!
    vip open success!!!
    using 1 connectors, 1920x720 display, multiplanar: 1
    Setting mode 720x480 on connector 32, crtc 34
    vip: G_FMT(start): width = 720, height = 480, 4cc = UYVY
    vpe: S_CTRL failed

    [ 394.597623] ------------[ cut here ]------------
    [ 394.619763] WARNING: CPU: 0 PID: 1118 at /home/michel/gl-disp-yocto/build/tmp/work-shared/actia-dra726-12inch/kernel-source/drivers/gpu/drm/omapdrm/omap_crtc.c:494 omap_crtc_atomic_flush+0x178/0x1b4()
    [ 394.665385] Modules linked in: usbhid bc_example(O) snd_usb_audio snd_hwdep snd_usbmidi_lib uvcvideo snd_rawmidi cbc drbg xfrm_user xfrm4_tunnel xhci_plat_hcd xhci_hcd ipcomp xfrm_ipcomp esp4 usbcore ah4 af_key xfrm_algo dwc3 udc_core ecb sha512_generic sha512_arm sha256_generic hmac md5 sha1_generic sha1_arm_neon sha1_arm pvrsrvkm(O) omap_aes_driver omap_sham omap_wdt ti_vpe ti_sc ti_csc ti_vpdma dwc3_omap extcon isl79987 ti_cal st_acc33_i2c st_acc33 kfifo_buf egalax_i2c noa1305 mcp4018 omap_rng omap_des rng_core sch_fq_codel uio_module_drv(O) gdbserverproxy(O) cryptodev(O) cmemk(O)
    [ 394.793113] CPU: 0 PID: 1118 Comm: capturevpedispl Tainted: G W O 4.4.45-actia-RevD-g89944627d5 #5
    [ 394.803066] Hardware name: Generic DRA72X (Flattened Device Tree)
    [ 394.809179] Backtrace:
    [ 394.811649] [<c0013910>] (dump_backtrace) from [<c0013b0c>] (show_stack+0x18/0x1c)
    [ 394.819246] r7:c03a91c8 r6:600b0013 r5:c090078c r4:00000000
    [ 394.824958] [<c0013af4>] (show_stack) from [<c02b6820>] (dump_stack+0x94/0xa8)
    [ 394.832214] [<c02b678c>] (dump_stack) from [<c003462c>] (warn_slowpath_common+0x88/0xb8)
    [ 394.840334] r7:c03a91c8 r6:000001ee r5:00000009 r4:00000000
    [ 394.846043] [<c00345a4>] (warn_slowpath_common) from [<c0034700>] (warn_slowpath_null+0x24/0x2c)
    [ 394.854860] r8:e8dd2880 r7:00000000 r6:eeab4a00 r5:00000000 r4:eeafec00
    [ 394.861620] [<c00346dc>] (warn_slowpath_null) from [<c03a91c8>] (omap_crtc_atomic_flush+0x178/0x1b4)
    [ 394.870791] [<c03a9050>] (omap_crtc_atomic_flush) from [<c036203c>] (drm_atomic_helper_commit_planes+0x1a8/0x274)
    [ 394.881090] r7:00000000 r6:c03a9050 r5:00000000 r4:ebdf6240
    [ 394.886800] [<c0361e94>] (drm_atomic_helper_commit_planes) from [<c03a747c>] (omap_atomic_complete+0x44/0x13c)
    [ 394.896838] r9:eead1d00 r8:ebd69540 r7:eead1c00 r6:eeab4a00 r5:ebdf6240 r4:ebd69540
    [ 394.904645] [<c03a7438>] (omap_atomic_complete) from [<c03a770c>] (omap_atomic_commit+0x198/0x248)
    [ 394.913637] r9:eead1d00 r8:eeab4b18 r7:eead1c00 r6:ebdf6240 r5:eeab4a00 r4:ebd69540
    [ 394.921449] [<c03a7574>] (omap_atomic_commit) from [<c03885d4>] (drm_atomic_commit+0x4c/0x6c)
    [ 394.930005] r10:00000002 r9:eead1e00 r8:ebdf6240 r7:00000001 r6:00000003 r5:eead1c00
    [ 394.937895] r4:ebdf6240
    [ 394.940443] [<c0388588>] (drm_atomic_commit) from [<c0365ac4>] (restore_fbdev_mode+0x26c/0x2a0)
    [ 394.949173] r5:eeaf4300 r4:00000050
    [ 394.952772] [<c0365858>] (restore_fbdev_mode) from [<c0367454>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x38/0x7c)
    [ 394.963421] r10:ed92a97c r9:eead1c34 r8:c09604ec r7:eeab4a34 r6:eead1c00 r5:eeab4a00
    [ 394.971310] r4:eeaf4300
    [ 394.973858] [<c036741c>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c03a73f0>] (dev_lastclose+0xc0/0x108)
    [ 394.984157] r7:eeab4a34 r6:eead1c00 r5:eeab4a00 r4:00000002
    [ 394.989864] [<c03a7330>] (dev_lastclose) from [<c036bc8c>] (drm_lastclose+0x3c/0x120)
    [ 394.997721] r9:eead1c34 r8:e8dd2f00 r7:eead1c4c r6:ed92a980 r5:c09604ec r4:eead1c00
    [ 395.005525] [<c036bc50>] (drm_lastclose) from [<c036c070>] (drm_release+0x300/0x4b8)
    [ 395.013295] r7:eead1c4c r6:ed92a980 r5:eead1c00 r4:ed92a900
    [ 395.019002] [<c036bd70>] (drm_release) from [<c012194c>] (__fput+0x88/0x1d0)
    [ 395.026074] r10:ed92a488 r9:00000008 r8:00000000 r7:eec53a18 r6:ee108790 r5:eeab37d0
    [ 395.033965] r4:ed92a480
    [ 395.036512] [<c01218c4>] (__fput) from [<c0121af4>] (____fput+0x10/0x14)
    [ 395.043236] r10:00000000 r9:ef1d4000 r8:c000fc64 r7:ed81b000 r6:ed92a000 r5:c092862c
    [ 395.051125] r4:ed81b460
    [ 395.053672] [<c0121ae4>] (____fput) from [<c004e7c4>] (task_work_run+0x98/0xcc)
    [ 395.061008] [<c004e72c>] (task_work_run) from [<c0037258>] (do_exit+0x304/0x9bc)
    [ 395.068429] r7:ef1d5f58 r6:ed993738 r5:ed81b478 r4:ed81b000
    [ 395.074132] [<c0036f54>] (do_exit) from [<c0037990>] (do_group_exit+0x44/0xc4)
    [ 395.081378] r7:000000f8
    [ 395.083924] [<c003794c>] (do_group_exit) from [<c0037a28>] (__wake_up_parent+0x0/0x28)
    [ 395.091868] r7:000000f8 r6:b59bc798 r5:00000001 r4:00000001
    [ 395.097574] [<c0037a10>] (SyS_exit_group) from [<c000faa0>] (ret_fast_syscall+0x0/0x3c)
    [ 395.607212] ---[ end trace 8b1815e20865fb46 ]---
    [ 395.611867] ------------[ cut here ]------------
    [ 395.631628] WARNING: CPU: 0 PID: 1118 at /home/michel/gl-disp-yocto/build/tmp/work-shared/actia-dra726-12inch/kernel-source/drivers/gpu/drm/omapdrm/omap_crtc.c:436 omap_crtc_enable+0x90/0x98()
    [ 395.675126] Modules linked in: usbhid bc_example(O) snd_usb_audio snd_hwdep snd_usbmidi_lib uvcvideo snd_rawmidi cbc drbg xfrm_user xfrm4_tunnel xhci_plat_hcd xhci_hcd ipcomp xfrm_ipcomp esp4 usbcore ah4 af_key xfrm_algo dwc3 udc_core ecb sha512_generic sha512_arm sha256_generic hmac md5 sha1_generic sha1_arm_neon sha1_arm pvrsrvkm(O) omap_aes_driver omap_sham omap_wdt ti_vpe ti_sc ti_csc ti_vpdma dwc3_omap extcon isl79987 ti_cal st_acc33_i2c st_acc33 kfifo_buf egalax_i2c noa1305 mcp4018 omap_rng omap_des rng_core sch_fq_codel uio_module_drv(O) gdbserverproxy(O) cryptodev(O) cmemk(O)
    [ 395.803701] CPU: 0 PID: 1118 Comm: capturevpedispl Tainted: G W O 4.4.45-actia-RevD-g89944627d5 #5
    [ 395.813654] Hardware name: Generic DRA72X (Flattened Device Tree)
    [ 395.819767] Backtrace:
    [ 395.822237] [<c0013910>] (dump_backtrace) from [<c0013b0c>] (show_stack+0x18/0x1c)
    [ 395.829834] r7:c03a9294 r6:60070013 r5:c090078c r4:00000000
    [ 395.835543] [<c0013af4>] (show_stack) from [<c02b6820>] (dump_stack+0x94/0xa8)
    [ 395.842799] [<c02b678c>] (dump_stack) from [<c003462c>] (warn_slowpath_common+0x88/0xb8)
    [ 395.850919] r7:c03a9294 r6:000001b4 r5:00000009 r4:00000000
    [ 395.856627] [<c00345a4>] (warn_slowpath_common) from [<c0034700>] (warn_slowpath_null+0x24/0x2c)
    [ 395.865444] r8:c0687b84 r7:c09604ec r6:eeafec00 r5:ebdf6240 r4:eeafec00
    [ 395.872202] [<c00346dc>] (warn_slowpath_null) from [<c03a9294>] (omap_crtc_enable+0x90/0x98)
    [ 395.880674] [<c03a9204>] (omap_crtc_enable) from [<c0363400>] (drm_atomic_helper_commit_modeset_enables+0xa0/0x1a0)
    [ 395.891148] r5:ebdf6240 r4:00000000
    [ 395.894751] [<c0363360>] (drm_atomic_helper_commit_modeset_enables) from [<c03a7488>] (omap_atomic_complete+0x50/0x13c)
    [ 395.905574] r9:eead1d00 r8:ebd69540 r7:eead1c00 r6:eeab4a00 r5:ebdf6240 r4:ebd69540
    [ 395.913380] [<c03a7438>] (omap_atomic_complete) from [<c03a770c>] (omap_atomic_commit+0x198/0x248)
    [ 395.922372] r9:eead1d00 r8:eeab4b18 r7:eead1c00 r6:ebdf6240 r5:eeab4a00 r4:ebd69540
    [ 395.930183] [<c03a7574>] (omap_atomic_commit) from [<c03885d4>] (drm_atomic_commit+0x4c/0x6c)
    [ 395.938739] r10:00000002 r9:eead1e00 r8:ebdf6240 r7:00000001 r6:00000003 r5:eead1c00
    [ 395.946627] r4:ebdf6240
    [ 395.949174] [<c0388588>] (drm_atomic_commit) from [<c0365ac4>] (restore_fbdev_mode+0x26c/0x2a0)
    [ 395.957904] r5:eeaf4300 r4:00000050
    [ 395.961503] [<c0365858>] (restore_fbdev_mode) from [<c0367454>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x38/0x7c)
    [ 395.972151] r10:ed92a97c r9:eead1c34 r8:c09604ec r7:eeab4a34 r6:eead1c00 r5:eeab4a00
    [ 395.980040] r4:eeaf4300
    [ 395.982587] [<c036741c>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c03a73f0>] (dev_lastclose+0xc0/0x108)
    [ 395.992886] r7:eeab4a34 r6:eead1c00 r5:eeab4a00 r4:00000002
    [ 395.998593] [<c03a7330>] (dev_lastclose) from [<c036bc8c>] (drm_lastclose+0x3c/0x120)
    [ 396.006451] r9:eead1c34 r8:e8dd2f00 r7:eead1c4c r6:ed92a980 r5:c09604ec r4:eead1c00
    [ 396.014256] [<c036bc50>] (drm_lastclose) from [<c036c070>] (drm_release+0x300/0x4b8)
    [ 396.022027] r7:eead1c4c r6:ed92a980 r5:eead1c00 r4:ed92a900
    [ 396.027732] [<c036bd70>] (drm_release) from [<c012194c>] (__fput+0x88/0x1d0)
    [ 396.034804] r10:ed92a488 r9:00000008 r8:00000000 r7:eec53a18 r6:ee108790 r5:eeab37d0
    [ 396.042693] r4:ed92a480
    [ 396.045238] [<c01218c4>] (__fput) from [<c0121af4>] (____fput+0x10/0x14)
    [ 396.051962] r10:00000000 r9:ef1d4000 r8:c000fc64 r7:ed81b000 r6:ed92a000 r5:c092862c
    [ 396.059849] r4:ed81b460
    [ 396.062396] [<c0121ae4>] (____fput) from [<c004e7c4>] (task_work_run+0x98/0xcc)
    [ 396.069732] [<c004e72c>] (task_work_run) from [<c0037258>] (do_exit+0x304/0x9bc)
    [ 396.077154] r7:ef1d5f58 r6:ed993738 r5:ed81b478 r4:ed81b000
    [ 396.082860] [<c0036f54>] (do_exit) from [<c0037990>] (do_group_exit+0x44/0xc4)
    [ 396.090107] r7:000000f8
    [ 396.092653] [<c003794c>] (do_group_exit) from [<c0037a28>] (__wake_up_parent+0x0/0x28)
    [ 396.100597] r7:000000f8 r6:b59bc798 r5:00000001 r4:00000001
    [ 396.106302] [<c0037a10>] (SyS_exit_group) from [<c000faa0>] (ret_fast_syscall+0x0/0x3c)
    [ 396.611511] ---[ end trace 8b1815e20865fb47 ]---



    I can display using gstreamer but can't move the image except with touch. The picture is put at a random place.
    With QT I can have the picture on the screen but I get a double picture, no deinterlace.
    Doing deinterlace in software would have a picture crawling.

    I need to make a demonstration to a customer and so far we got a problem because of the deinterlacing issue. We won't be able to sell our boards to them if we can't get this to work. Less money for us, less money for TI.

    I used this for my test and it works file except for infinite messages as shown below the script

    gst-launch-1.0 -v --gst-debug=2 v4l2src io-mode=4 device=/dev/video$1 ! 'video/x-raw,interlaced=true' ! vpe ! queue ! waylandsink

    0:00:03.056373810 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    0:00:03.066534532 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    0:00:03.076678986 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    0:00:03.086894364 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    0:00:03.097065659 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed


    One thing I found odd is that kmssink doesn't find the connector

    root@actia-dra726-12inch:~/work/tests# ./camera.sh 0
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)UYVY\,\ framerate\=\(fraction\)100/1\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ interlace-mode\=\(string\)interleaved\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)bt601\,\ interlaced\=\(boolean\)true"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)UYVY\,\ framerate\=\(fraction\)100/1\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ interlace-mode\=\(string\)interleaved\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)bt601\,\ interlaced\=\(boolean\)true"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)100/1"
    /GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)100/1"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)UYVY\,\ framerate\=\(fraction\)100/1\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ interlace-mode\=\(string\)interleaved\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)bt601\,\ interlaced\=\(boolean\)true"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)UYVY\,\ framerate\=\(fraction\)100/1\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ interlace-mode\=\(string\)interleaved\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)bt601\,\ interlaced\=\(boolean\)true"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)100/1"
    /GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)720\,\ height\=\(int\)480\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ framerate\=\(fraction\)100/1"
    0:00:00.419120133 1199 0x143ec0 WARN vpe gstvpebufferpool.c:467:gst_vpe_buffer_pool_import: Allocating a new input buffer index: 0/128, 0
    0:00:00.433172427 1199 0x143f20 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    0:00:00.445774025 1199 0x143f20 WARN kmssink gstkmssink.c:370:gst_kms_sink_show_frame:<kmssink0> error: connector not found
    ERROR: from element /GstPipeline:pipeline0/GstKMSSink:kmssink0: Resource not found.
    Additional debug info:
    ../../../git/sys/kms/gstkmssink.c(370): gst_kms_sink_show_frame (): /GstPipeline:pipeline0/GstKMSSink:kmssink0:
    connector not found
    Execution ended after 0:00:00.136647150
    Setting pipeline to PAUSED ...

    (gst-launch-1.0:1199): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
    0:00:00.447410491 1199 0x143f20 WARN kmssink gstkmssink.c:364:gst_kms_sink_show_frame:<kmssink0> error: drmModeSetPlane failed: Permission denied (13)
    0:00:00.448241086 1199 0x143f20 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed
    Setting pipeline to READY ...
    0:00:00.459530584 1199 0x140220 WARN bufferpool gstbufferpool.c:537:gst_buffer_pool_set_active:<vpebufferpool1> stop failed
    0:00:00.461077581 1199 0x140220 WARN bufferpool gstbufferpool.c:537:gst_buffer_pool_set_active:<vpebufferpool1> stop failed
    Setting pipeline to NULL ...
    Freeing pipeline ...



    Michel Catudal
    ACTIA Corp
  • Hi Michel,

    Our VPE expert will check and respond to you.

    Regards,
    Anand
  • I meant fine no file, typo

    With waylandsink it works fine except that when I enable a limited debug display it gives this warning which makes the debug screen useless. How do we fix that, what would be the reason for the alloc failure?

    0:00:03.097065659 1188 0x143fb0 WARN bufferpool gstbufferpool.c:300:do_alloc_buffer:<vpebufferpool1> alloc function failed



    As for kmssink I tried with both weston on and weston off, it can never find the connector which is odd because other applications can find it.

    Michel Catudal
    ACTIA Corp
  • Anand,

    I removed the call to non supported IOCTL VIDIOC_S_CTRL and it gets farther except that it still gives a backtrace on the serial line and can't find the plane


    root@actia-dra726-12inch:~/work/omapdrmtest# ./capturevpedisplay 720 480 uyvy 720 480 nv12 0 1 -s 32:720x480
    vpe:/dev/video4 open success!!!
    vip open success!!!
    using 1 connectors, 1920x720 display, multiplanar: 1
    Setting mode 720x480 on connector 32, crtc 34
    vip: G_FMT(start): width = 720, height = 480, 4cc = UYVY
    vpe i/p: G_FMT: width = 720, height = 480, 4cc = UYVY
    vpe o/p: G_FMT: width = 720, height = 480, 4cc = NV12
    Page flip: frame=188878, sec=3164, usec=745020, remaining=0
    streaming started...
    Could not find plane for crtc 34
    disp post vid buf failed

    Here is the output from modetest


    root@actia-dra726-12inch:~/work/omapdrmtest# modetest
    trying to open device 'i915'...failed
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    trying to open device 'omapdrm'...done
    Encoders:
    id crtc type possible crtcs possible clones
    31 34 TMDS 0x00000001 0x00000000

    Connectors:
    id encoder status name size (mm) modes encoders
    32 31 connected unknown-1 0x0 1 31
    modes:
    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
    1920x720 60 1920 2035 2040 2060 720 752 755 758 flags: nhsync, nvsync; type: preferred, driver
    props:
    1 EDID:
    flags: immutable blob
    blobs:

    value:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0

    CRTCs:
    id fb pos size
    34 39 (0,0) (1920x720)
    1920x720 60 1920 2035 2040 2060 720 752 755 758 flags: nhsync, nvsync; type: preferred, driver
    props:
    27 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    28 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    29 background:
    flags: range
    values: 0 16777215
    value: 0
    30 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    21 GAMMA_LUT:
    flags: blob
    blobs:

    value:
    22 GAMMA_LUT_SIZE:
    flags: immutable range
    values: 0 4294967295
    value: 256
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    36 0 (0,0) (0x0)
    0 0 0 0 0 0 0 0 0 flags: ; type:
    props:
    27 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    28 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    29 background:
    flags: range
    values: 0 16777215
    value: 0
    30 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    21 GAMMA_LUT:
    flags: blob
    blobs:

    value:
    22 GAMMA_LUT_SIZE:
    flags: immutable range
    values: 0 4294967295
    value: 256
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0

    Planes:
    id crtc fb CRTC x,y x,y gamma size possible crtcs
    33 34 39 0,0 0,0 0 0x00000001
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0
    35 0 0 0,0 0,0 0 0x00000002
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0

    Frame buffers:
    id size pitch



    Michel Catudal
    ACTIA Corp
  • Hi,

    This application uses drmModesetPlane API for displaying the buffers.
    The failures seems that the app is not able to find a suitable plane for CRTC34.

    From the modetest output, I do not see any plane with flags stating it as overlay plane.
    I only see 2 primary planes. You should have 4 planes registered, 2 with overlay and 2 with primary planes


    Regards,
    Nikhil D