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: Cannot link vpe0 to mix in videomixer

Part Number: AM5728


Tool/software: Linux

Hi, 

I am trying to overlay a buffer of PNG images in real-time to a h264 encoded video stream. I am testing with the following pipeline:

gst-launch-1.0 -v videotestsrc ! video/x-raw, width=800, height=480, framerate=30/1 ! \
ducatih264enc ! decodebin ! \
video/x-raw, format=NV12 ! vpe ! video/x-raw, format=RGB ! \
videomixer name=mix sink_0::alpha=1 sink_1::alpha=0.7 ! \
waylandsink sync=true \
multifilesrc location="target.png" index=0 stop-index=1 loop=true caps="image/png,framerate=\(fraction\)30/1" ! pngdec ! videorate ! mix.

When I run the above pipeline, I get an error:

WARNING: erroneous pipeline: could not link vpe0 to mix

  • Hello,
    "video/x-raw, format=NV12 ! vpe ! video/x-raw, format=RGB !"
    Gstreamer VPE element does not support RGB on input or output.
    You could run gst-inspect-1.0 vpe to check the supported formats.
    Please replace vpe with videoconvert element for exmaple.

    BR
    Margarita

  • hi,
    So how does this pipeline work on this forum?
    e2e.ti.com/.../639672


    thank you
  • Hello,

    The gstreamer VPE element supports these formats:
    Pad Templates:
    SINK template: 'sink'
    Availability: Always
    Capabilities:
    video/x-raw
    format: NV12
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]
    video/x-raw
    format: YUYV
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]
    video/x-raw
    format: YUY2
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]

    SRC template: 'src'
    Availability: Always
    Capabilities:
    video/x-raw
    format: NV12
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]
    video/x-raw
    format: YUYV
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]
    video/x-raw
    format: YUY2
    width: [ 1, 2147483647 ]
    height: [ 1, 2147483647 ]
    framerate: [ 0/1, 2147483647/1 ]


    But the VPE driver itself supports:
    Supported Input formats: NV12, YUYV, UYVY
    Supported Output formats: NV12, YUYV, UYVY, RGB24, BGR24, ARGB24, ABGR24

    The customer in the thread that you linked added support for the RGB on the output.
    You could add this also and rebuild the gstreamer vpe element . You must follow this guide:
    processors.wiki.ti.com/.../Processor_SDK_Building_The_SDK
    The last step could be MACHINE=am57xx-evm bitbake gstreamer1.0-plugins-vpe
    Please if you are using PSDK 4.03 check the same guide but in here:
    software-dl.ti.com/.../index.html

    BR
    Margarita

  • Hello,

    I checked the gst vpe element source code. In order to add rgb support on gst vpe output you must change gstvpe.c and gstvpebuffer.c files. Refer how the other formats are added.

    BR
    Margarita
  • Hello,

    Please if this answers your question click the "This resolved my issue" button.
    Thank you!

    BR
    Margarita