Patchwork [V2] gstreamer: gst-ffmpeg: fix build issues for libav

login
register
mail settings
Submitter Yao Zhao
Date Aug. 8, 2012, 6:49 p.m.
Message ID <1344451780-5914-1-git-send-email-yao.zhao@windriver.com>
Download mbox | patch
Permalink /patch/34097/
State Accepted
Commit a6384b2bd1d608506557ce151135edffa4cb5e0b
Headers show

Comments

Yao Zhao - Aug. 8, 2012, 6:49 p.m.
1.The included libav configure is not generated by autotools
  modify recipe to use correct toolchain wrapper with configure

2.add bzip2 dependency explicitly.
  or configure will detect whether libbz2 is installed, if bzip2
is triggered earlier then it will be detected, if not then won't

3.backport libav_e500mc.patch from upstream to patch configure to
disable-altivec if it is e500mc.

4.move the GSTREAMER_DEBUG to libav's configure, it is not the
option for the main configure.

Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
 .../gst-ffmpeg-0.10.13/libav_e500mc.patch          |   21 ++++++++++++++++++++
 .../gstreamer/gst-ffmpeg_0.10.13.bb                |   16 ++++++++++++---
 2 files changed, 34 insertions(+), 3 deletions(-)
 create mode 100644 meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
Derek Buitenhuis - Aug. 9, 2012, 2:52 p.m.
On 08/08/2012 2:49 PM, Yao Zhao wrote:
> 1.The included libav configure is not generated by autotools
>   modify recipe to use correct toolchain wrapper with configure

configure options you may or may not be missing:
    --enable-cross-compile
    --cross-prefix (probably not needed, since you set all the tools manually)
    --cpu
    --arch
    --sysroot

> 3.backport libav_e500mc.patch from upstream to patch configure to
> disable-altivec if it is e500mc.

Don't you need to pass --cpu and --arch?

Just as a side note, do we handle all of the autodetect deps?

$ ./configure --help | grep autodetect
  --enable-vaapi           enable VAAPI code [autodetect]
  --enable-vda             enable VDA code   [autodetect]
  --enable-vdpau           enable VDPAU code [autodetect]
  --enable-bzlib           enable bzlib [autodetect]
  --enable-zlib            enable zlib [autodetect]

- Derek
Saul Wold - Aug. 16, 2012, 6:22 p.m.
On 08/08/2012 11:49 AM, Yao Zhao wrote:
> 1.The included libav configure is not generated by autotools
>    modify recipe to use correct toolchain wrapper with configure
>
> 2.add bzip2 dependency explicitly.
>    or configure will detect whether libbz2 is installed, if bzip2
> is triggered earlier then it will be detected, if not then won't
>
> 3.backport libav_e500mc.patch from upstream to patch configure to
> disable-altivec if it is e500mc.
>
> 4.move the GSTREAMER_DEBUG to libav's configure, it is not the
> option for the main configure.
>
> Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> ---
>   .../gst-ffmpeg-0.10.13/libav_e500mc.patch          |   21 ++++++++++++++++++++
>   .../gstreamer/gst-ffmpeg_0.10.13.bb                |   16 ++++++++++++---
>   2 files changed, 34 insertions(+), 3 deletions(-)
>   create mode 100644 meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
> new file mode 100644
> index 0000000..eba4988
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
> @@ -0,0 +1,21 @@
> +diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
> +index 8473069..4f74952 100755
> +--- a/gst-libs/ext/libav/configure
> ++++ b/gst-libs/ext/libav/configure
> +Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080)
> +
> +Upstream-Status: Backport
> +
> +Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
> +
> +@@ -2210,6 +2210,10 @@ elif enabled ppc; then
> +             cpuflags="-mcpu=cell"
> +             enable ldbrx
> +         ;;
> ++        e500mc)
> ++            cpuflags="-mcpu=e500mc"
> ++            disable altivec
> ++        ;;
> +         e500v2)
> +             cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
> +             disable altivecsgw@linux.intel.com
> diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
> index a166290..efab2cf 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
> +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
> @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
>                       file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
>                       file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
>   HOMEPAGE = "http://www.gstreamer.net/"
> -DEPENDS = "gstreamer gst-plugins-base zlib"
> +DEPENDS = "gstreamer gst-plugins-base zlib bzip2"
>
>   inherit autotools pkgconfig
>
> @@ -19,15 +19,25 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
>              file://lower-rank.diff \
>              file://configure-fix.patch \
>              file://h264_qpel_mmx.patch \
> +           file://libav_e500mc.patch \
>   "
>
>   SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
>   SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
>
> -PR = "r3"
> +PR = "r4"
>
>   GSTREAMER_DEBUG ?= "--disable-debug"
> -EXTRA_OECONF = "--with-ffmpeg-extra-configure=\"--target-os=linux\" ${GSTREAMER_DEBUG}"
> +
> +FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure"
> +FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
> +  --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
> +  --ranlib='${RANLIB}' \
> +  ${GSTREAMER_DEBUG}"
> +FFMPEG_EXTRA_CONFIGURE_COMMON = \
> +'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"'
> +
> +EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
>
>   # yasm not found, use --disable-yasm for a crippled build for libav
>   EXTRA_OECONF_append_x86-64 = " --disable-yasm "
>

Merged into OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
new file mode 100644
index 0000000..eba4988
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
@@ -0,0 +1,21 @@ 
+diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
+index 8473069..4f74952 100755
+--- a/gst-libs/ext/libav/configure
++++ b/gst-libs/ext/libav/configure
+Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080)
+
+Upstream-Status: Backport
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+
+@@ -2210,6 +2210,10 @@ elif enabled ppc; then
+             cpuflags="-mcpu=cell"
+             enable ldbrx
+         ;;
++        e500mc)
++            cpuflags="-mcpu=e500mc"
++            disable altivec
++        ;;
+         e500v2)
+             cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
+             disable altivec
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
index a166290..efab2cf 100644
--- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
@@ -11,7 +11,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
                     file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 HOMEPAGE = "http://www.gstreamer.net/"
-DEPENDS = "gstreamer gst-plugins-base zlib"
+DEPENDS = "gstreamer gst-plugins-base zlib bzip2"
 
 inherit autotools pkgconfig
 
@@ -19,15 +19,25 @@  SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://lower-rank.diff \
            file://configure-fix.patch \
            file://h264_qpel_mmx.patch \
+           file://libav_e500mc.patch \
 "
 
 SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
 SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
 
-PR = "r3"
+PR = "r4"
 
 GSTREAMER_DEBUG ?= "--disable-debug"
-EXTRA_OECONF = "--with-ffmpeg-extra-configure=\"--target-os=linux\" ${GSTREAMER_DEBUG}"
+
+FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure"
+FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
+  --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
+  --ranlib='${RANLIB}' \
+  ${GSTREAMER_DEBUG}"
+FFMPEG_EXTRA_CONFIGURE_COMMON = \
+'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"'
+
+EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
 
 # yasm not found, use --disable-yasm for a crippled build for libav
 EXTRA_OECONF_append_x86-64 = " --disable-yasm "