AnsweredAssumed Answered

Frame drop at decoding video and scaling

Question asked by Kenji Teranishi on Jun 13, 2016
Latest reply on Jul 4, 2016 by Kenji Teranishi

Hi all,


I am trying a decoding of H.264 video on i.MX6Q Sabre board using Freescale Yocto Project BSP code (imx-3.14.52-1.1.0_ga).

But, some of the frames are dropped when I try decoding and scaling.



> gst-launch-1.0 filesrc location=test_640x480.avi typefind=true ! video/x-msvideo ! aiurdemux ! vpudec ! videoscale method=1 ! video/x-raw,width=800,height=480 ! overlaysink


[Error Message]

> WARNING: from element /GstPipeline:pipeline0/GstOverlaySink:overlaysink0: A lot of buffers are being dropped.

> Additional debug info:

build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c(2794): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstOverlaySink:overlaysink0:

> There may be a timestamping problem, or this computer is too slow.



When I try only the decoding and only the scaling, there are not dropped frame.

I think that "vpudec" is hardware-based process and "videoscale" is software-based process.

Therefore, I think that the decoding and the scaling can be parallel processing.

Why some of the frame is dropped?


As additional information, I measure the processing time.


  With decoding     : Scaling time is  61ms / frame

  Only Scaling (*)   : Scaling time is   8ms / frame


  (*) YUV showing (No decoding)

  Command : gst-launch-1.0 filesrc location=test_640x480.yuv ! videoparse format=2 width=640 height=480 framerate=15 ! videoscale method=1 ! video/x-raw,width=800,height=480 ! overlaysink


Why the scaling time is long when decoding and scaling has been processed at the same time?


Best Regards,