diff mbox

[v5] kodi: allow enablement of libamcodec as codec if selected

Message ID 20161104154727.19939-1-daggs@gmx.com
State Superseded
Headers show

Commit Message

Dagg Stompler Nov. 4, 2016, 3:47 p.m. UTC
allow usage of amcodec if kodi is built and libamcodec is selected

Signed-off-by: Dagg Stompler <daggs@gmx.com>
---

v4 -> v5:
 - add description and signed off to the kodi patch. (Thomas Petazzoni).

v3 -> v4:
 - properly define the includes for amcodec when cross compiling.

v2 -> v3:
 - fix change after kodi.mk was changed.

v1 -> v2:
 - fixed mail title and comment

 .../0012-support_libamcodec_cross_compile.patch    | 24 ++++++++++++++++++++++
 package/kodi/kodi.mk                               |  4 ++++
 2 files changed, 28 insertions(+)
 create mode 100644 package/kodi/0012-support_libamcodec_cross_compile.patch

Comments

Thomas Petazzoni Nov. 5, 2016, 12:16 p.m. UTC | #1
Hello,

On Fri,  4 Nov 2016 17:47:27 +0200, Dagg Stompler wrote:
> allow usage of amcodec if kodi is built and libamcodec is selected
> 
> Signed-off-by: Dagg Stompler <daggs@gmx.com>

Thanks for the new iteration. However, I believe there's a
better/simpler way to achieve this.

> diff --git a/package/kodi/0012-support_libamcodec_cross_compile.patch b/package/kodi/0012-support_libamcodec_cross_compile.patch
> new file mode 100644
> index 0000000..97feb8c
> --- /dev/null
> +++ b/package/kodi/0012-support_libamcodec_cross_compile.patch
> @@ -0,0 +1,24 @@
> +kodi: fix amcodec includes for cross compilation.
> +
> +when building kodi over buildroot with amcodec set, the include paths differs from
> +native installation. this occurs because the prefix is not set.
> +so by supplying the LIBAMCODEC_INCLUDE_PATH upon compilation, this issue is resolved.
> +
> +Signed-off-by: Dagg Stompler <daggs@gmx.com>
> +
> +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:46:19.000000000 +0200
> ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:47:13.000000000 +0200
> +@@ -26,8 +26,11 @@ endif
> + ifeq (@USE_LIBAMCODEC@,1)
> + SRCS += AMLCodec.cpp
> + SRCS += DVDVideoCodecAmlogic.cpp
> +-INCLUDES += -I$(prefix)/include/amcodec
> +-INCLUDES += -I$(prefix)/include/amplayer
> ++ifeq (${LIBAMCODEC_INCLUDE_PATH},)
> ++LIBAMCODEC_INCLUDE_PATH=$(prefix)
> ++endif
> ++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amcodec
> ++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amplayer
> + endif

Just have a patch that deletes those two lines:

> +-INCLUDES += -I$(prefix)/include/amcodec
> +-INCLUDES += -I$(prefix)/include/amplayer

> +else ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
> +KODI_DEPENDENCIES += libamcodec
> +KODI_CONF_OPTS += --enable-codec=amcodec
> +KODI_MAKE_OPTS += LIBAMCODEC_INCLUDE_PATH=${STAGING_DIR}/usr

And, then, something like this (it includes reworking existing RPi
related code):

ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
KODI_DEPENDENCIES += rpi-userland
KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
KODI_INCLUDES += \
	-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
	-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux
KODI_LIBS += -lvcos -lvchostif
endif

...
else ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
KODI_DEPENDENCIES += libamcodec
KODI_CONF_OPTS += --enable-codec=amcodec
KODI_INCLUDES += \
	$(STAGING_DIR)/usr/include/amcodec \
	$(STAGING_DIR)/usr/include/amplayer
endif

KODI_CONF_ENV += \
	INCLUDES="$(KODI_INCLUDES)" \
	LIBS="$(KODI_LIBS)"

Thanks!

Thomas
Dagg Stompler Nov. 5, 2016, 2:32 p.m. UTC | #2
Greetings Thomas,

> Sent: Saturday, November 05, 2016 at 2:16 PM
> From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> To: "Dagg Stompler" <daggs@gmx.com>
> Cc: buildroot@buildroot.org
> Subject: Re: [Buildroot] [PATCH v5] kodi: allow enablement of libamcodec as codec if selected
>
> Hello,
> 
> On Fri,  4 Nov 2016 17:47:27 +0200, Dagg Stompler wrote:
> > allow usage of amcodec if kodi is built and libamcodec is selected
> > 
> > Signed-off-by: Dagg Stompler <daggs@gmx.com>
> 
> Thanks for the new iteration. However, I believe there's a
> better/simpler way to achieve this.
> 
> > diff --git a/package/kodi/0012-support_libamcodec_cross_compile.patch b/package/kodi/0012-support_libamcodec_cross_compile.patch
> > new file mode 100644
> > index 0000000..97feb8c
> > --- /dev/null
> > +++ b/package/kodi/0012-support_libamcodec_cross_compile.patch
> > @@ -0,0 +1,24 @@
> > +kodi: fix amcodec includes for cross compilation.
> > +
> > +when building kodi over buildroot with amcodec set, the include paths differs from
> > +native installation. this occurs because the prefix is not set.
> > +so by supplying the LIBAMCODEC_INCLUDE_PATH upon compilation, this issue is resolved.
> > +
> > +Signed-off-by: Dagg Stompler <daggs@gmx.com>
> > +
> > +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:46:19.000000000 +0200
> > ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:47:13.000000000 +0200
> > +@@ -26,8 +26,11 @@ endif
> > + ifeq (@USE_LIBAMCODEC@,1)
> > + SRCS += AMLCodec.cpp
> > + SRCS += DVDVideoCodecAmlogic.cpp
> > +-INCLUDES += -I$(prefix)/include/amcodec
> > +-INCLUDES += -I$(prefix)/include/amplayer
> > ++ifeq (${LIBAMCODEC_INCLUDE_PATH},)
> > ++LIBAMCODEC_INCLUDE_PATH=$(prefix)
> > ++endif
> > ++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amcodec
> > ++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amplayer
> > + endif
> 
> Just have a patch that deletes those two lines:
> 
> > +-INCLUDES += -I$(prefix)/include/amcodec
> > +-INCLUDES += -I$(prefix)/include/amplayer
> 
> > +else ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
> > +KODI_DEPENDENCIES += libamcodec
> > +KODI_CONF_OPTS += --enable-codec=amcodec
> > +KODI_MAKE_OPTS += LIBAMCODEC_INCLUDE_PATH=${STAGING_DIR}/usr
> 
> And, then, something like this (it includes reworking existing RPi
> related code):
> 
> ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
> KODI_DEPENDENCIES += rpi-userland
> KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
> KODI_INCLUDES += \
> 	-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
> 	-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux
> KODI_LIBS += -lvcos -lvchostif
> endif
> 
> ...
> else ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
> KODI_DEPENDENCIES += libamcodec
> KODI_CONF_OPTS += --enable-codec=amcodec
> KODI_INCLUDES += \
> 	$(STAGING_DIR)/usr/include/amcodec \
> 	$(STAGING_DIR)/usr/include/amplayer
> endif
> 
> KODI_CONF_ENV += \
> 	INCLUDES="$(KODI_INCLUDES)" \
> 	LIBS="$(KODI_LIBS)"
> 
imho, this might be the simpler way but isn't the right way for kodi 16 as there is an existing code for it.
that said, in kodi 17 the code has changed and the submitted patch isn't relevant anymore.
I'll try the kodi 17 fix on the current latest git, if it works I'll submit it to the list.

Dagg.

> Thanks!
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
>
diff mbox

Patch

diff --git a/package/kodi/0012-support_libamcodec_cross_compile.patch b/package/kodi/0012-support_libamcodec_cross_compile.patch
new file mode 100644
index 0000000..97feb8c
--- /dev/null
+++ b/package/kodi/0012-support_libamcodec_cross_compile.patch
@@ -0,0 +1,24 @@ 
+kodi: fix amcodec includes for cross compilation.
+
+when building kodi over buildroot with amcodec set, the include paths differs from
+native installation. this occurs because the prefix is not set.
+so by supplying the LIBAMCODEC_INCLUDE_PATH upon compilation, this issue is resolved.
+
+Signed-off-by: Dagg Stompler <daggs@gmx.com>
+
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:46:19.000000000 +0200
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in	2016-11-04 11:47:13.000000000 +0200
+@@ -26,8 +26,11 @@ endif
+ ifeq (@USE_LIBAMCODEC@,1)
+ SRCS += AMLCodec.cpp
+ SRCS += DVDVideoCodecAmlogic.cpp
+-INCLUDES += -I$(prefix)/include/amcodec
+-INCLUDES += -I$(prefix)/include/amplayer
++ifeq (${LIBAMCODEC_INCLUDE_PATH},)
++LIBAMCODEC_INCLUDE_PATH=$(prefix)
++endif
++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amcodec
++INCLUDES += -I${LIBAMCODEC_INCLUDE_PATH}/include/amplayer
+ endif
+
+ ifeq (@USE_ANDROID@,1)
diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index e0361da..66aa017 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -111,6 +111,10 @@  endif
 ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y)
 KODI_DEPENDENCIES += imx-vpuwrap
 KODI_CONF_OPTS += --enable-codec=imxvpu
+else ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
+KODI_DEPENDENCIES += libamcodec
+KODI_CONF_OPTS += --enable-codec=amcodec
+KODI_MAKE_OPTS += LIBAMCODEC_INCLUDE_PATH=${STAGING_DIR}/usr
 endif
 
 ifeq ($(BR2_PACKAGE_LIBCAP),y)