[Bug 747297] gl: live rpicamsrc/omxh264dec/glimagesink pipeline fails
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Jan 6 01:31:49 PST 2016
https://bugzilla.gnome.org/show_bug.cgi?id=747297
--- Comment #20 from Florent Thiéry <florent.thiery at ubicast.eu> ---
> It rings some bells, I remember that it required to set 256 mb for the gpu.
> The default (128) was not working for 1080p but I have been always surprised
> of this.
Default is 64 (http://elinux.org/RPiconfig#Memory)
> (In reply to Florent Thiéry from comment #16)
> > gst-launch-1.0 videotestsrc pattern=2 ! video/x-raw\,\
> > format\=\(string\)YUY2\,\ width\=\(int\)1920\,\ height\=\(int\)1080\,\
> > framerate\=\(fraction\)30/1 ! fakesink sync=false silent=false -v
> >
> > Well, it does work, quite slowly at 1080p (~3.2 fps), but it does. What do
> > you mean by "working" ? ;)
>
> You get 3 fps with this above pipeline ? That's due do videotestsrc not
> using SIMD through orc since by default it is disabled on arm, see
> http://cgit.freedesktop.org/gstreamer/orc/tree/configure.ac#n169
Oh, i thought i checked that videotestsrc pattern=2 was not the bottleneck, but
you're right. I did the tests again and here's my approach, please let me know
if it sounds valid :
- timing the buffer generation alone using gst-launch-1.0 videotestsrc
num-buffers=100 pattern=2 ! video/x-raw\,\ format\=\(string\)I420\,\
width\=\(int\)1920\,\ height\=\(int\)1080 ! fakesink sync=false i measure 2.57
fps
- because of that i dump into a gdp file: gst-launch-1.0 videotestsrc
num-buffers=30 pattern=2 ! video/x-raw\,\ format\=\(string\)I420\,\
width\=\(int\)1920\,\ height\=\(int\)1080 ! gdppay ! filesink
location=/tmp/30buf.gdp (takes 12.4s)
- i ensure the file is loaded in the fs cache gst-launch-1.0 filesrc
location=/tmp/30buf.gdp ! fakesink sync=false gives out 2.5s execution time
- last, i run gst-launch-1.0 filesrc location=/tmp/30buf.gdp ! gdpdepay !
fpsdisplaysink text-overlay=false sync=false -v, which took 5.2s and gives 5.58
average fps
Here are my results (with gpu_mem=64 -- i checked that changing gpu_mem does
not impact performance at all), what am i missing here (i'm pretty far from 25
fps) ?
NB: this is a pi B+, not a pi 2
Resolution Colorspace Average fps
640x480 I420 24,31
640x480 YUY2 23,7
640x480 RGBA 16,82
1280x720 I420 9,87
1280x720 YUY2 8,72
1280x720 RGBA 5,79
1920x1080 I420 5,58
1920x1080 YUY2 4,58
1920x1080 RGBA 2,65
> The distro you are using would have to enable it manually. (It was enabled there
> https://git.collabora.com/cgit/raspberry-pi/ sometime ago but I could not
> find it anymore)
> I remember I could have +25fps with videotestsrc ! ximagesink for 720p when
> liborc is enabled on arm. Same with omxh264dec ! ximagesink with 720p with
> gst-omx from https://git.collabora.com/cgit/raspberry-pi/gst-omx.git/.
Ok. Do you think my approach with working from a gdp dump is a good way of
benchmarking (and doesn't rely on videotestsrc performance) ?
> omxh264dec will also use a lot of gpu mem since this mem is used by the HW
> decoder.
> How much gpu mem is used if you only do omxh264dec ! .. ! ximagesink (no gl)
> with 1080p ?
During gst-launch-1.0 filesrc location=/tmp/30buf.gdp ! gdpdepay ! omxh264enc !
fakesink i get 24 MB of used GPU memory (using sudo LD_LIBRARY_PATH=/opt/vc/lib
/opt/vc/bin/vcdbg reloc | grep 'free')
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list