<div dir="ltr"><div>My input to videoconvert is from a v4l2 camera which always output UYVY format and I want to convert it into I420 format. I found that the videoconvert takes up to 200ms to convert it on my Nvidia TK1 4 core ARM CPU. </div><div><br></div><div>gst-launch-1.0 -v v4l2src num-buffers=1 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1'  ! videoparse format=uyvy  width=1920 height=1080 framerate=30/1 ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=30/1 ! filesink location=test1.yuv </div><div><br></div><div>However, if I write the UYVY into a file and then connect it to videoconvert, it only takes about 7ms to process one frame. </div><div><br></div><div>gst-launch-1.0 -v filesrc location=test1_uyvy.yuv blocksize=4147200 ! videoparse format=uyvy width=1920 height=1080 framerate=60/1 ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! fakesink </div><div><br></div><div><br></div><div>I have debugged it for two days, both pipeline are using the same function 'video_orc_convert_UYVY_I420()' (with 'DISABLE_ORC' on ARM) but why the performance could be so different?</div><div><br></div><div><br></div><div>I did some optimization on this function and bring down the processing time for v4l2src uyvy format to 136ms but still 20x slower than filesrc with the same data. </div><div><br></div><div>Any idea from gstreamer experts?</div><div><br></div><div>Thanks in advance.</div><div><br></div><div>Jake</div></div>