gst-omx on Tegra 3
Erwin Rol
mailinglists at erwinrol.com
Tue Feb 25 10:45:43 PST 2014
Hey all,
I have some problems getting gst-omx for Tegra 3 to work acceptably fast.
With the following pipeline I tested the speed;
gst-launch-1.0 filesrc
location=/ads/data/current/movies/sintel_trailer-720p.mp4 ! qtdemux !
h264parse ! omxh264dec ! progressreport ! fakesink
This results in the following progress report;
progressreport0 (00:00:10): 4 / 52 seconds ( 7.7 %)
progressreport0 (00:00:20): 9 / 52 seconds (17.3 %)
progressreport0 (00:00:30): 14 / 52 seconds (26.9 %)
progressreport0 (00:00:40): 18 / 52 seconds (34.6 %)
progressreport0 (00:00:50): 23 / 52 seconds (44.2 %)
progressreport0 (00:01:00): 28 / 52 seconds (53.8 %)
progressreport0 (00:01:10): 32 / 52 seconds (61.5 %)
progressreport0 (00:01:20): 37 / 52 seconds (71.2 %)
progressreport0 (00:01:30): 42 / 52 seconds (80.8 %)
progressreport0 (00:01:40): 47 / 52 seconds (90.4 %)
progressreport0 (00:01:50): 52 / 52 seconds (100.0 %)
As you can see it is about half the speed it should be.
The same pipeline with the 480p video seems to be the max that works;
progressreport0 (00:00:10): 9 / 52 seconds (17.3 %)
progressreport0 (00:00:20): 20 / 52 seconds (38.5 %)
progressreport0 (00:00:30): 30 / 52 seconds (57.7 %)
progressreport0 (00:00:40): 41 / 52 seconds (78.8 %)
progressreport0 (00:00:50): 51 / 52 seconds (98.1 %)
The CPU load seems to be really high for some unidentified thread;
for 480p;
2309 root 20 0 105M 10412 4140 S 102. 0.5 0:16.67 | `-
gst-launch-1.0 filesrc
location=/ads/data/current/movies/sintel_trailer-480p.mp4 ! qtdemux !
h264parse ! omxh264dec ! fakesink
2315 root 20 0 105M 10412 4140 S 5.8 0.5 0:00.92 | `-
omxh264dec-omxh
2314 root 20 0 105M 10412 4140 S 0.0 0.5 0:00.01 | `-
gst-launch-1.0
2313 root 20 0 105M 10412 4140 S 2.6 0.5 0:00.51 | `-
gst-launch-1.0
2312 root 20 0 105M 10412 4140 S 0.0 0.5 0:00.00 | `-
gmain
2311 root 20 0 105M 10412 4140 S 1.3 0.5 0:00.25 | `-
qtdemux0:sink
2310 root 20 0 105M 10412 4140 R 93.5 0.5 0:14.80 | `-
gst-launch-1.0
for 720p;
2299 root 20 0 112M 14808 4132 S 107. 0.7 0:14.56 | `-
gst-launch-1.0 filesrc
location=/ads/data/current/movies/sintel_trailer-720p.mp4 ! qtdemux !
h264parse ! omxh264dec ! fakesink
2305 root 20 0 112M 14808 4132 S 7.1 0.7 0:00.87 | `-
omxh264dec-omxh
2304 root 20 0 112M 14808 4132 S 0.0 0.7 0:00.00 | `-
gst-launch-1.0
2303 root 20 0 112M 14808 4132 S 1.3 0.7 0:00.68 | `-
gst-launch-1.0
2302 root 20 0 112M 14808 4132 S 0.0 0.7 0:00.00 | `-
gmain
2301 root 20 0 112M 14808 4132 S 1.3 0.7 0:00.12 | `-
qtdemux0:sink
2300 root 20 0 112M 14808 4132 R 97.4 0.7 0:12.67 | `-
gst-launch-1.0
There only seems to be a few % difference in CPU load for 480p and 720p.
Any idea what I am doing wrong? The decoding really seems to be done in
hardware since apart from the omx h264 decoder there is no other h264
decoder on this system. So I am a bit surprised by the high CPU load,
and the poor performance.
BTW when really showing the output on screen the effect is the same, the
720p version takes about twice as long.
Anny info and help is really appreciated,
Erwin
More information about the gstreamer-openmax
mailing list