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.

frame rate problem on AM5728 Processor SDK v2.0.0.0

Genius 5785 points

Hello,

I see a strange phenomenon about frame rate when some applications of PSDKv2.0.0.0 run on AM5728-EVM. I run the following applications after I connect EVM and HDMI and boot Linux from SD card. I think you can see these applications on a HDMI monitor and see weston on a LCD. You may not see the phenomenon if some different combinations are run.

/etc/init.d/matrix-gui-2.0 stop
/usr/bin/weston-simple-egl &
gst-launch-1.0 -v filesrc location=sample.mp4 ! qtdemux ! h264parse ! ducatih264dec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)960, height=(int)540' ! waylandsink &
/usr/share/qt5/examples/opengl/2dpainting/2dpainting &
/usr/share/qt5/examples/opengl/2dpainting/2dpainting &

The sample.mp4 is below. You'll delete a 4 of mp44 in a file name.
distribution.bbb3d.renderfarming.net/.../bbb_sunflower_1080p_30fps_normal.mp44

The weston-simple-egl outputs each frame rate per 5 seconds. After several tens of seconds, the frame rate will be decreased even though cpu utilization is low. Then the frame rate looks fixed as 15.000000 fps. I don't see the phenomenon in the latest PSDKv2.0.2.11. But my software is being developed based on PSDKv2.0.0.0. So I want to solve this problem on PSDKv2.0.0.0. Please give me some advice.

am57xx-evm login: root
root@am57xx-evm:~# /etc/init.d/matrix-gui-2.0 stop
Stopping Matrix GUI application.
root@am57xx-evm:~# /usr/bin/weston-simple-egl &
[1] 1108
root@am57xx-evm:~# PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
302 frames in 5 seconds: 60.400002 fps
300 frames in 5 seconds: 60.000000 fps
300 frames in 5 seconds: 60.000000 fps

root@am57xx-evm:~# gst-launch-1.0 -v filesrc location=sample.mp4 ! qtdemux ! h264parse ! ducatih264dec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)960, height=(int)540' ! waylandsink &
[2] 1110
root@am57xx-evm:~# Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)4.1, profile=(string)high, codec_data=(buffer)01640029ffe1001b67640029acca501e0089f970110000030001000003003c8f18319601000568e93b2c8b, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4.1, profile=(string)high, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)2048, height=(int)1184, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstWaylandSink:waylandsink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)2048, height=(int)1184, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4.1, profile=(string)high, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstDucatiH264Dec:ducatih264dec0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)2048, height=(int)1184, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, max-ref-frames=(int)9
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)2048, height=(int)1184, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, max-ref-frames=(int)9
/GstPipeline:pipeline0/GstVpe:vpe0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
300 frames in 5 seconds: 60.000000 fps
300 frames in 5 seconds: 60.000000 fps
301 frames in 5 seconds: 60.200001 fps

root@am57xx-evm:~# /usr/share/qt5/examples/opengl/2dpainting/2dpainting &
[3] 1116
root@am57xx-evm:~# No such plugin for spec  "Auto"
Using Wayland-EGL
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
300 frames in 5 seconds: 60.000000 fps
300 frames in 5 seconds: 60.000000 fps
300 frames in 5 seconds: 60.000000 fps

root@am57xx-evm:~# /usr/share/qt5/examples/opengl/2dpainting/2dpainting &
[4] 1118
root@am57xx-evm:~# No such plugin for spec  "Auto"
Using Wayland-EGL
PVR:(Warning): LoadWSModule: Window system module libpvrws_KMS.so did not validate native display [98, /generic_ws.c]
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]
291 frames in 5 seconds: 58.200001 fps
286 frames in 5 seconds: 57.200001 fps
289 frames in 5 seconds: 57.799999 fps
279 frames in 5 seconds: 55.799999 fps
282 frames in 5 seconds: 56.400002 fps
284 frames in 5 seconds: 56.799999 fps
140 frames in 5 seconds: 28.000000 fps
75 frames in 5 seconds: 15.000000 fps
75 frames in 5 seconds: 15.000000 fps
75 frames in 5 seconds: 15.000000 fps

Regards,
Kazu