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/AM5726: VPE scaling error

Part Number: AM5726

Tool/software: Linux

Hello,

GST_DEBUG=3 gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! testplugin ! fakesink

above pipeline works fine for me.

i want to use vpe instead of of videoscale to scale down.

GST_DEBUG=3 gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! testplugin ! fakesink

above pipeline gives error atteched in logs.

2210.vpe_error_logs.txt

I am using PSDK 3.2.0.5.

As input source i am getting jpeg buffer of (1280x720). and i have done changes in ducatijpegdec to accept that buffer and decode that.

i have tried couple of pipeline shown below but it works fine for me.

gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)YUY2, width=(int)4032, height=(int)1008, framerate=15/1' ! videocrop left = 2016 right=1008 ! vpe ! video/x-raw , height=1280 , width=720 ! fakesink

gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)YUY2, width=(int)4032, height=(int)1008, framerate=15/1' ! videocrop left = 2016 right=1008 ! vpe ! video/x-raw , height=240 , width=320 ! fakesink

Regards,

Prerak

  • The software team have been notified. They will respond here.
  • Hello,

    Do you observe the same problem with the latest PSDK?
    If you remove the testplugin element from the pipeline do you observe the issue?
    If you are using USB camera please check this thread:
    e2e.ti.com/.../2012114

    BR
    Margarita
  • Hi,

    I have not try it on latest SDK. I have only try this with 3.2.0.5.

    I have try with below pipeline but facing same error.

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! fakesink

    camera id atteched with AM2756 with parallel port. so mentioned link doesn't help me.

    Regards,
    Prerak
  • Hello,

    gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! fakesink

    Is this working?

    BR
    Margarita
  • Hi,

    i have slightly modified your pipeline. reason is below.
    i am receiving jpeg data from v4l2src(1280x720), but i am using YUY2 formate for capturing . so i have used resoluion (640x720).
    My actual image size is 1824x1824 which i have get from ducatijpegdec. for that i have changed in ducatijpegdec source code.

    gst-launch-1.0 -e videotestsrc ! 'video/x-raw, format=(string)YUY2, width=(int)1824, height=(int)1824, framerate=15/1' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! fakesink

    this pipeline will work fine for me.

    Regards,
    Prerak
  • Hello,

    I can not set up your use case.
    I tried the below pipelines on my side which are working:
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! videocrop left = 0 right=912 top=0 bottom = 912 ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    As you could see in both cases I have jpegparse.

    But if I use this pipeline :
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    I am observing this error 0:00:00.498622783 1165 0x15a600 ERROR vpe gstvpebufferpool.c:380:gst_vpe_buffer_pool_queue: vpebufferpool: QBUF failed: Bad address, index = 31

    Please could you try with ducatijpegdecvpe element on your side?

    BR
    Margarita
  • Hi,

    as i can see in below pipelines,

    here there is no any vpe element used.
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! videocrop left = 0 right=912 top=0 bottom = 912 ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    here there is no any video crop element is used.
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    does ducatijpegdecvpe work as vpe aswell as jpegdec ?

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videocrop left = 0 right=912 top=0 bottom = 912 ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! testplugin ! fakesink

    above pipeline works fine for me so i can not doubt on ducatijpegdec.

    Although i need source code of ducatijpegdecvpe for doing some modification in that, to run with my configuration.

    as i have seen, i am scaling down 1824x1824 through vpe using below pipeline but i can not get proper output. by using videoscale element i am getting proper output.

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! filesink location=1.yuv

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec ! videoscale ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! filesink location=1.yuv


    Regards,
    Prerak
  • Hello,

    Prerak Patel said:
    Although i need source code of ducatijpegdecvpe for doing some modification in that, to run with my configuration.

    Ducatijpegdecvpe is a bin of ducatijpegdec + vpe. Bin creation is in gst-vpe plugin.

    You could use this command MACHINE=am57xx-evm bitbake gstreamer1.0-plugins-vpe and check this file gstvpebins.c in  gstreamer1.0-plugins-vpe folder.

    So if you use this pipeline without the crop

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdec !  vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! testplugin ! fakesink

    is working also?

    BR
    Margarita

  • Hello,

    Something like this also is working on my side:
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    The video that I am using is with resolution 1920x1080, 30 fps.

    BR
    Margarita
  • Hi,

    i can get only one frame using this pipeline. i am getting below error.
    (gst-launch-1.0:1671): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed.

    Regards,
    Prerak
  • Hello,

    This is the correct pipeline:
    gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    BR
    Margarita
  • hi,

    it gives error mention below. and due to that my testplugin get crashed.

    (gst-launch-1.0:2554): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed

    Regards,
    Prerak
  • Hello,

      I do not observe this error as you could check:

    root@am57xx-evm:~# gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdecvpe ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink
    Setting pipeline to PAUSED ...[ 34.652230] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1

    Pipeline is PREROLLING ...
    /GstPipeline:pipeline0/GstJpegParse:jpegparse0.GstPad:sink: caps = "image/jpeg\,\ parsed\=\(boolean\)true\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1\,\ pixel-aspect-ratio\=\(fraction\)1/1"
    /GstPipeline:pipeline0/GstJpegParse:jpegparse0.GstPad:src: caps = "image/jpeg\,\ parsed\=\(boolean\)true\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = "image/jpeg\,\ parsed\=\(boolean\)true\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstDucatiJpegDec:decoder.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1088\,\ framerate\=\(fraction\)30/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstVpe:vpe.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstVideoCrop:videocrop0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1008\,\ height\=\(int\)168\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1008\,\ height\=\(int\)168\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstVideoCrop:videocrop0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src.GstProxyPad:proxypad1: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstVpe:vpe.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1088\,\ framerate\=\(fraction\)30/1\,\ drm_mem\=\(boolean\)true"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstDucatiJpegDec:decoder.GstPad:sink: caps = "image/jpeg\,\ parsed\=\(boolean\)true\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:sink: caps = "image/jpeg\,\ parsed\=\(boolean\)true\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstDucatiJpegDec:decoder.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1088\,\ framerate\=\(fraction\)30/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstVpe:vpe.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src.GstProxyPad:proxypad1: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstVpe:vpe.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1088\,\ framerate\=\(fraction\)30/1\,\ drm_mem\=\(boolean\)true\,\ max-ref-frames\=\(int\)1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0/GstVpe:vpe.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstDucatiJpegdecVpe:ducatijpegdecvpe0.GstGhostPad:src.GstProxyPad:proxypad1: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = "video/x-raw\,\ format\=\(string\)NV12\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1"
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:03.308492940
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

    BR
    Margarita

  • Hi,

    gst-launch-1.0 -e v4l2src device=/dev/video1 ! 'video/x-raw, format=(string)YUY2, width=(int)640, height=(int)720, framerate=15/1' ! ducatijpegdecvpe ! video/x-raw , format=NV12 , height=1824 , width=1824 ! queue ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! video/x-raw , format=NV12 , height=240 , width=320 ! testplugin ! fakesink

    Setting pipeline to PAUSED ...
    [ 544.295948] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1
    Pipeline is live and does not need PREROLL ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    [ 544.355138] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.363328] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.371484] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.379581] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.412115] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.420336] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.428488] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.436698] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.444638] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.452836] systemd-journald[113]: /dev/kmsg buffer overrun, some messages lost.
    [ 544.686008] omap_hwmod: mmu0_dsp2: _wait_target_disable failed
    [ 544.691904] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0
    [ 544.700432] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0
    [ 544.716767] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [ 544.722657] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 544.759960] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [ 544.773760] misc debugss: drv_error: debugss_remap_mmap: Requested debugss physical address range is already mapped by another process with pid2
    2017-11-06 11:19:58 INFO OVReadyApp_LoadConfigs - 1 channel(s) requested
    2017-11-06 11:19:58 INFO OVReadyApp_LoadConfigs - Number of channels set to 1
    2017-11-06 11:19:58 INFO OnBoardSensor_PreMemoryRequirementsSetup - OnBoardSensor_PreMemoryRequirementsSetup: Entry
    2017-11-06 11:19:58 INFO OnBoardSensor_AllocateContextMemory - Calling OV_GetMemoryResourceList.
    Warning: Initialized data for objects in .mem_l2 sections will be ignored.
    [core 0] OVGMRL: Frame Width - 320, Height - 240OVGMRL: max views = 3
    [core 0] OVGMRL: completed successfully and total resources:4
    2017-11-06 11:19:58 INFO OnBoardSensor_AllocateContextMemory - INT_RAM_SCRATCH size 27648.
    2017-11-06 11:19:58 INFO OnBoardSensor_AllocateContextMemory - EXT_RAM_SCRATCH size 4194304.
    2017-11-06 11:19:58 INFO OnBoardSensor_AllocateContextMemory - EXT_RAM_PERSIST size 69844.
    2017-11-06 11:19:58 INFO OnBoardSensor_AllocateContextMemory - Calling OV_GetMemoryResourceList done.
    2017-11-06 11:19:58 INFO OnBoardSensor_PreMemoryRequirementsSetup - OnBoardSensor_PreMemoryRequirementsSetup: Exit
    2017-11-06 11:19:58 INFO OVReadyApp_LoadConfigs - Maximum request size set to 65536
    2017-11-06 11:19:58 INFO OVR_DeviceConfigGetMemoryRequirements - Requesting 1353 bytes for storage
    2017-11-06 11:19:58 INFO OVR_OnBoardSensorReferenceSamplesGetMemoryRequirements - Allocating reference samples memory for channel, maxImageSize=65.
    2017-11-06 11:19:58 INFO OVR_OnBoardSensorReferenceSamplesGetMemoryRequirements - OnBoardSensorReferenceSamples requires 1626994 memory
    2017-11-06 11:19:58 INFO OVR_CalibrationSnapshots_GetMaxSnapshotsPerView - Maximum calibration snapshots per view calculated as 5
    2017-11-06 11:19:58 INFO OVR_CalibrationSnapshotsGetMemoryRequirements - Allocating memory for 5 calibration snapshots per view
    2017-11-06 11:19:58 INFO OVR_DeviceConfigRetrieveStorageData - Loading device configuration data from storage
    2017-11-06 11:19:58 INFO OVR_DeviceConfigRetrieveStorageData - OVR_DeviceConfiguration retrieval from storage completed
    2017-11-06 11:19:58 INFO OVRApplication_InitializeModule - OVReady Application initialized. Scratch memory pool size is 2097152.
    2017-11-06 11:19:58 INFO EventHandler_DistributionTask - Distribution Task (Td) is up and running.
    2017-11-06 11:19:58 INFO EventHandler_InitializeModule - EventHandler module initialized.
    2017-11-06 11:19:58 WARN OnBoardSensor_LoadChannel - Channel (0) ID already exists and can not be overwritten.
    2017-11-06 11:19:58 INFO EventHandler_EventSenderTask - Event Sender Task is up and running.
    2017-11-06 11:19:59 INFO OnBoardSensor_AllocateHeapMemoryWithLicense - OV_GetHeapSize: Heap size required=46373776.
    2017-11-06 11:19:59 INFO OnBoardSensor_InitializeModule - OnBoardSensor module initialized.
    2017-11-06 11:19:59 INFO OVR_GetAllViews - There is no currently active view ID (-10)
    Caught SIGSEGV
    2017-11-06 11:19:59 INFO HouseKeeper_BackupTask - Backup Task (Tb) is up and running.
    2017-11-06 11:19:59 INFO HouseKeeper_InitializeModule - HouseKeeper module initialized.
    2017-11-06 11:19:59 WARN StorageMgr_SaveContext - Context does not need to be updated.
    exec gdb failed: No such file or directory
    Spinning. Please run 'gdb gst-launch-1.0 1208' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
    2017-11-06 11:19:59 ERROR OVR_HTTPDSocketHandlerThread - HTTP client disconnect, receive timeout, or socket error
    2017-11-06 11:20:00 ERROR OVR_HTTPDSocketHandlerThread - HTTP client disconnect, receive timeout, or socket error
    2017-11-06 11:20:00 ERROR OVR_HTTPDSocketHandlerThread - HTTP client disconnect, receive timeout, or socket error
    2017-11-06 11:20:00 ERROR OVR_HTTPDSocketHandlerThread - HTTP client disconnect, receive timeout, or socket error
    ^C2017-11-06 11:20:01 INFO VirtualFileSystem_DisposeModule - VFS module disposed of.

    gstreamer get crashed.

    Regards,
    Prerak

  • Hello,

    Gstreamer point of view I have not seen such errors before.

    Is it working, if your plugin is not connected?
    In this case do you see the correct video on display?

    BR
    Margarita
  • What happens when you don't use videocrop? The issue seems to be with videocrop and vpe buffer expectations.

    Please try using latest PLSDK 4.1. Some of the buffer restrictions by vpe plugin has been taken care in recent release.
  • Hi Manisha,

    video crop if mandatory parameter of my pipeline as my input resolution to vpe is very high.(1824x1824).

    By using videocrop i crop image and send to vpe of resolution 912x912.

    If i use videoscale instead of vpe for scaling, pipeline works perfectly.

    Without using videocrop my pipeline works fine but it(videocrop) is necessory.

    Regards,

    Prerak

  • Hello,

    I have tested this pipeline on my side :
    root@am57xx-evm:~# gst-launch-1.0 -v filesrc location=1.mov ! qtdemux ! jpegparse ! ducatijpegdec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    is seems working but it was tested on PSDK4.0.

    As Manisha said, please try with the latest PSDK release and let us know the results.

    BR
    Margarita

  • Hello,

    I created a video file with resolution 1824x1824:
    gst-launch-1.0 videotestsrc num-buffers=100 ! 'video/x-raw,format=(string)NV12,width=1824,height=1824' ! jpegenc ! qtmux ! filesink location=2.mov

    It seems to work also, I see the video on the display:
    root@am57xx-evm:~# gst-launch-1.0 filesrc location=2.mov ! qtdemux ! jpegparse ! ducatijpegdec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)1824, height=(int)1824' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink
    Setting pipeline to PAUSED ...[ 306.257040] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1

    Pipeline is PREROLLING ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Got EOS from element "pipeline0".
    Execution ended after 0:00:03.358926926
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...
    root@am57xx-evm:~#

    BR
    Margarita

  • Hi,

    Have you tested this on PSDK4.0?

    I need some time to move on PSDK4.0. I will test it and let you know.

    Regards,
    Prerak
  • Hello,

    I would recommend you to try with the latest PSDK which is version 4.1.
    I would recommend you also to give a try on your side by using ducatijpegdec ! vpe ! ...

    BR
    Margarita

  • Hi,

    Sure, i will try and share results with you.

    Regards,
    Prerak
  • Hello,

    Here is example with  ...ducatijpegdec ! vpe... which is the recommended usage:

    gst-launch-1.0  filesrc location=2.mov ! qtdemux ! jpegparse ! ducatijpegdec !  vpe  ! 'video/x-raw, format=(string)NV12, width=(int)1824, height=(int)1824' ! videocrop left = 0 right=912 top=0 bottom = 912 ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)320, height=(int)240' ! kmssink

    Setting pipeline to PAUSED ...[  154.253327] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1

    Pipeline is PREROLLING ...

    Pipeline is PREROLLED ...

    Setting pipeline to PLAYING ...

    New clock: GstSystemClock

    Got EOS from element "pipeline0".

    Execution ended after 0:00:03.358534738

    Setting pipeline to PAUSED ...

    Setting pipeline to READY ...

    Setting pipeline to NULL ...

    Freeing pipeline ...

    root@am57xx-evm:~#

    Please test this pipeline with/wihtout  your custom plugin.

    BR
    Margarita

  • By the way, vpe plugin supports cropping feature but the cropping parameter configuration is not enabled through gst-launch as the parameters are not exported as part of element properties. So if you develop gstreamer application, vpe plugin can be used both for scaling and cropping together, both these operations are clubbed together by vpe and happens on the fly as single operation .
  • Hi Manisha,

    Thanks for your useful information.

    If you provide any example application code in which vpe does scaling and croping both functionality then it would be great.

    Regards,

    Prerak

  • Hello Prerak,

    I would recommend you to check vpe guide:
    processors.wiki.ti.com/.../Linux_Core_VPE_User's_Guide
    and testvpem2m example.

    Hope this helps.

    BR
    Margarita
  • Hi Prerak,

    As mentioned earlier, vpe gstreamer plugin doesn't expose the cropping feature through element properties and hence the vpe plugin can't be configured at the gstremaer application layer for cropping need (sorry about my incorrect statement before) . We have ducati decoder plugins, that provide the cropping parameters through the buffer meta data. 

    I am exploring internally options to enable the cropping parameters through vpe plugin element properties. That might take 1Q or 2Q to get implemented. 

    Another option for you is to modify the source plugin  of your application to provide the cropping information through meta-data in the lines of ducati decoder plugins -

  • Hi Manisha,

    Thanks for your updated statement, i had already started do the modification in my application as per your suggestion. we are using v4l2src as our source plugin. So, as per your suggestion we need to pass cropping meta to ducatijpegdec from v4l2src.

    let me correct if i misunderstand.

    Regards,
    Prerak