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