1080p on rpi2 - omxvideodec: Frame is too late, dropping

Sergey Anuchin sergunich at gmail.com
Sat Nov 21 04:06:00 PST 2015


##Hardware resouces##
READ and WRITE speed of SD card
""""
#write speed
[alarm at alarmpi ~]$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

[alarm at alarmpi ~]$ dd if=/dev/zero of=/home/alarm/output bs=8k count=10k
10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 0.803581 s, 104 MB/s

#read speed
[alarm at alarmpi ~]$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
[alarm at alarmpi ~]$ dd if=/home/alarm/output of=/dev/null bs=8k count=10k
10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 4.79864 s, 17.5 MB/s
""""
Is 17.5 MB/s enough for smooth playback?


##omxplayer##
If I install omxplayer on rpi2 it plays smoothly sample video, so there
shouldn't be any problems with hardware.
After installation of omxplayer I can't use glimagesink any more:
"""
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Got context from element 'sink': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
ERROR: from element
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink:
glGetString not defined or returned invalid value
Additional debug info:
gstglimagesink.c(819): _ensure_gl_setup ():
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink
"""
I think this is because of omxplayer has dependency on mesa-lib. When I
install omxplayer - mesa-lib installed as dependency. Maybe there is
conflict between mesa libEGL,libGLESv2 and libs in /opt/vc/lib? Is it
normal or mesa should work fine in parallel with /opt/vc/lib?


##Common gotchas##
Are there common gotchas when working with gstreamer on rpi2?
Should I change something in config? Install some lib?
Should I install ORC lib and compile gstreamer packages with --enable-orc?
As i know ORC doesn't support arm. Or does?
Maybe I need activate some plugins when compile gstreamer?
Do I need ffmpeg? I didn't installed it because it has dependency on mesa
and disabled all plugins than need ffmpeg.


I will appreciate any hints! Thanks.


On Fri, Nov 20, 2015 at 7:19 PM, Sergey Anuchin <sergunich at gmail.com> wrote:

> Hi!
>
> I have problem with playback of 1080p on rpi2(archlinuxarm).
>
> ##Prelude - how I compiled gstreamer##
> I compiled gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad
> version 1.6.1 from tarbals from here:
> http://gstreamer.freedesktop.org/src/.
> Here is build scripts that I use:
> https://gist.github.com/sergunich/1010791aaf59c97a9a23
> Main part is build() functions, where I call configure and disable a lot
> redundant plugins.
>
> I got gst-omx version 1.2.0 from precompiled archlinluxarm packages, here
> is building script:
> https://github.com/archlinuxarm/PKGBUILDs/blob/master/alarm/gst-omx-rpi/PKGBUILD
>
> All compiles successfully and passes tests.
>
> ##Main part##
> I use this video for testing:
> http://download.openbricks.org/sample/H264/big_buck_bunny_1080p_H264_AAC_25fps_7200K_short.MP4
> Here is result of gst-discoverer-1.0 for this video:
> https://gist.github.com/sergunich/ba10bb832b4996c31fad
>
> I use this command to launch playback:
> gst-launch-1.0 -ve filesrc
> location=./big_buck_bunny_1080p_H264_AAC_25fps_7200K_short.MP4 ! queue
> name=demux ! qtdemux ! queue name=parse ! h264parse ! queue name=decode !
> omxh264dec ! queue name=sink ! glimagesink
>
> Playback is laggish. Output to console:
> https://gist.github.com/sergunich/8aa410ee527d642ddcba
> Main message from this output:
> """"
> WARNING: from element
> /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink:
> A lot of buffers are being dropped.
> Additional debug info:
> gstbasesink.c(2846): gst_base_sink_is_too_late ():
> /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink:
> There may be a timestamping problem, or this computer is too slow.
> """""
>
> Here is full debug log with GST_DEBUG=6:
> https://copy.com/PzLQ4jQlLRhGCoQE/gst.log?download=1
> And here most relevant parts(as seems to me):
> https://gist.github.com/sergunich/94990944f46fe5aa0a68
>
> ##Hardware resources##
> Here is 'top' snapshots of processes with threads during playback:
> https://gist.github.com/sergunich/e13889e33bf05a43156d
> In /boot/config.txt: gpu_mem=512
>
>
> ##Questions##
> So... any idea why playback is laggish?)
> How can I investigate this problem further?
>
>
> ##P.S.##
> If I set glimagesink sync=false - playback is like slowmotion.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151121/a19e6d89/attachment.html>


More information about the gstreamer-devel mailing list