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.

AM5729: hdmi 1920x1080 ducatimpeg4dec->vpe->kmssink can-scale=false gives no error no output

Part Number: AM5729

Hello,

Using the kmssink with can-scale=true produces a terrible stretched result on an hdmi 1920x1080 display.  If I set can-scale=false then there is no video display and no error produced.

gst-launch-1.0 -v filesrc location=/usr/share/ti/video/TearOfSteel-AV-Short-720x420.mp4 \
! qtdemux name=demux demux.video_0 \
! queue \
! mpeg4videoparse \
! ducatimpeg4dec \
! vpe \
! 'video/x-raw,width=(int)1920,height=(int)1080' \
! kmssink can-scale=false

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 1920
/GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 1080
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)simple, level=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800c51684349443000001b24c61766335352e36362e313030, width=(int)720, height=(int)420, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)simple, level=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800c51684349443000001b24c61766335352e36362e313030, width=(int)720, height=(int)420, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)simple, level=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800c51684349443000001b24c61766335352e36362e313030, width=(int)720, height=(int)420, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstMpeg4VParse:mpeg4vparse0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)simple, level=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800c51684349443000001b24c61766335352e36362e313030, width=(int)720, height=(int)420, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstDucatiMpeg4Dec:ducatimpeg4dec0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)768, height=(int)464, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, drm_mem=(boolean)true
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)768, height=(int)464, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, drm_mem=(boolean)true
/GstPipeline:pipeline0/GstDucatiMpeg4Dec:ducatimpeg4dec0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, profile=(string)simple, level=(string)1, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800c51684349443000001b24c61766335352e36362e313030, width=(int)720, height=(int)420, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstDucatiMpeg4Dec:ducatimpeg4dec0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)768, height=(int)464, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, drm_mem=(boolean)true, max-ref-frames=(int)2
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)768, height=(int)464, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, drm_mem=(boolean)true, max-ref-frames=(int)2
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.001255457
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Using ti-processor-sdk-linux-rt-am57xx-evm-06.03.00.106.

It seems like there are two issues here:

1. the decoder is outputing 768x464

2. the vpe doesn't know how to frame it within 1920x1080.

How can I make this work?

Thanks,
Stef