[Buildroot] [PATCHv2] package/omxplayer: new package
Peter Korsgaard
peter at korsgaard.com
Thu May 5 06:28:07 UTC 2016
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> OMXplayer uses openMAX on the RPi to play videos with hardware
> acceleration.
> Compared to using a gstreamer pipe, OMXplayer uses a complete
> "tunnel-mode", in which the video is piped (after demuxing) into the
> hardware, all the way down to the display, whereas gstreamer composes
> the video using the eglgles sink, which uses mem-to-mem copies.
> So, when playing a locally-stored 1080p video, OMXplayer averages 20%
> (with peaks up to ~30%, depending on the complexity of the video) CPU,
> while gstreamer bursts up to 40+% when playing 720p and totally chokes
> on a 1080p video; all on an non-overclocked RPi-1.
> Note that we have to depend on rpi-userland. rpi-userland is a GLES/EGL
> provider, so it can't be selected (as all providers of a virtual package
> can't).
Is this specific to the RPI or could it conceptually work with other OMX
implementations? If it is specific, then perhaps we should call it
rpi-omxplayer instead?
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> Changes v1 -> v2:
> - change $(shell ...) to `...` (Thomas)
> - don't select rpi-userland
> - update to the latest git master; drop parts of our patch
> - add hash file
> - typoes in patch' commit log
> ---
> package/Config.in | 1 +
> .../0001-Makefiles-clean-up-the-cruft.patch | 67 ++++++++++++++++++++++
> package/omxplayer/Config.in | 38 ++++++++++++
> package/omxplayer/omxplayer.hash | 3 +
> package/omxplayer/omxplayer.mk | 46 +++++++++++++++
> 5 files changed, 155 insertions(+)
> create mode 100644 package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch
> create mode 100644 package/omxplayer/Config.in
> create mode 100644 package/omxplayer/omxplayer.hash
> create mode 100644 package/omxplayer/omxplayer.mk
> diff --git a/package/Config.in b/package/Config.in
> index 9d668bf..b12806d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -33,6 +33,7 @@ menu "Audio and video applications"
> source "package/multicat/Config.in"
> source "package/musepack/Config.in"
> source "package/ncmpc/Config.in"
> + source "package/omxplayer/Config.in"
> source "package/on2-8170-libs/Config.in"
> source "package/opus-tools/Config.in"
> source "package/pulseaudio/Config.in"
> diff --git a/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch b/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch
> new file mode 100644
> index 0000000..2dc6166
> --- /dev/null
> +++ b/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch
> @@ -0,0 +1,67 @@
> +From 563dafc1129848419482b540d149d0b8687cac1e Mon Sep 17 00:00:00 2001
> +From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> +Date: Sun, 10 Apr 2016 16:22:53 +0200
> +Subject: [PATCH] Makefiles: clean up the cruft
> +
> +Most of the variables that Makefile.include tries (but fails) to set,
> +are already available from Buildroot's variables:
> + - AR, AS, CC, CXX, OBJDUMP...
> + - CFLAGS, CXXFLAGS, CPPFLAGS...
> +
> +This leaves us with a few select variables that define include and
> +library paths local to the omxplayer package, plus a few optimisations.
> +
> +Finally, also remove hard-coded, absolute paths pointing to the host
> +system (won't work for cross-compilation, so our paranoid wrapper would
> +catch those paths).
Is this likely to get accepted upstream? If not, perhaps just overriding
these variables on the make command line would be easier to maintain?
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list