[meta-ti] [PATCH] omapfbplay: import from OE classic
Koen Kooi
koen at dominion.thruhere.net
Thu May 10 07:09:36 PDT 2012
Op 10 mei 2012, om 15:42 heeft Monk, Roger het volgende geschreven:
> Hi Koen,
>
> Think we've still got some API incompatibility here. I needed to roll back to an earlier omapfbplay commit (34293052c5a2ae328eac6903512e6b4ce19b5639) and patch CODEC_TYPE :-
>
> - if (afc->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO && !st)
> + if (afc->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO && !st)
>
> to get this working on beagleboard-xm, so I suspect there may have been an API change after Aug11, or d03f042ecac0a231bedeadc7a6c67f0102d5505a was rebased against 0.8 branch? I guess we should ask Mans...
We still use libav 0.7.4 in meta-oe, I suspect Mans updated to 0.8.x or even newer. I only build tested it, so I'm open for fixes that make it run :) Upgrading libav might be an option as well, but I'm not sure of that will get accepted for the meta-oe release branch.
regards,
Koen
>
> ~rog
>
>
> Texas Instruments Limited, 800 Pavilion Drive, Northampton, NN4 7YL. Registered in England & Wales under company number 00574102
>
> -----Original Message-----
> From: meta-ti-bounces at yoctoproject.org [mailto:meta-ti-bounces at yoctoproject.org] On Behalf Of Koen Kooi
> Sent: 10 May 2012 13:04
> To: meta-ti at yoctoproject.org
> Cc: Dmytriyenko, Denys
> Subject: [meta-ti] [PATCH] omapfbplay: import from OE classic
>
> Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> ---
> .../files/0001-rollback-to-libav-0.7.4-API.patch | 26 +++++++++++++++
> .../files/omapfbplay-errorhandling.patch | 34 ++++++++++++++++++++
> recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb | 16 +++++++++
> recipes-graphics/omapfbplay/omapfbplay-dce_git.bb | 7 ++++
> recipes-graphics/omapfbplay/omapfbplay-xv_git.bb | 3 ++
> recipes-graphics/omapfbplay/omapfbplay.inc | 33 +++++++++++++++++++
> recipes-graphics/omapfbplay/omapfbplay_git.bb | 3 ++
> 7 files changed, 122 insertions(+)
> create mode 100644 recipes-graphics/omapfbplay/files/0001-rollback-to-libav-0.7.4-API.patch
> create mode 100644 recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch
> create mode 100644 recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb
> create mode 100644 recipes-graphics/omapfbplay/omapfbplay-dce_git.bb
> create mode 100644 recipes-graphics/omapfbplay/omapfbplay-xv_git.bb
> create mode 100644 recipes-graphics/omapfbplay/omapfbplay.inc
> create mode 100644 recipes-graphics/omapfbplay/omapfbplay_git.bb
>
> diff --git a/recipes-graphics/omapfbplay/files/0001-rollback-to-libav-0.7.4-API.patch b/recipes-graphics/omapfbplay/files/0001-rollback-to-libav-0.7.4-API.patch
> new file mode 100644
> index 0000000..9095fe5
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/files/0001-rollback-to-libav-0.7.4-API.patch
> @@ -0,0 +1,26 @@
> +From dca631cfa22b1f903c943a9e03597aa6f9ae10d4 Mon Sep 17 00:00:00 2001
> +From: Koen Kooi <koen at dominion.thruhere.net>
> +Date: Thu, 10 May 2012 14:01:27 +0200
> +Subject: [PATCH] rollback to libav 0.7.4 API
> +
> +Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
> +---
> + omapfbplay.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/omapfbplay.c b/omapfbplay.c
> +index 6a6fc96..1e5a29c 100644
> +--- a/omapfbplay.c
> ++++ b/omapfbplay.c
> +@@ -674,7 +674,7 @@ main(int argc, char **argv)
> + pthread_join(dispt, NULL);
> +
> + out:
> +- if (afc) avformat_close_input(&afc);
> ++ if (afc) av_close_input_file(&afc);
> +
> + if (codec) codec->close();
> + if (timer) timer->close();
> +--
> +1.7.10
> +
> diff --git a/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch b/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch
> new file mode 100644
> index 0000000..7dd544f
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/files/omapfbplay-errorhandling.patch
> @@ -0,0 +1,34 @@
> +From e321ae7df57ada9ecc8c155fa4e5511c96ef5db3 Mon Sep 17 00:00:00 2001
> +From: Rob Clark <rob at ti.com>
> +Date: Fri, 18 Mar 2011 12:40:51 -0500
> +Subject: [PATCH] dce: differentiate between fatal and non-fatal errors
> +
> +For streams with errors, the codec will throw back an error. But not
> +all errors are fatal.
> +---
> + dce.c | 10 ++++++++--
> + 1 files changed, 8 insertions(+), 2 deletions(-)
> +
> +diff --git a/dce.c b/dce.c
> +index ab7ad0a..88f175e 100644
> +--- a/dce.c
> ++++ b/dce.c
> +@@ -270,8 +270,14 @@ static int dce_decode(AVPacket *p)
> +
> + err = VIDDEC3_process(codec, inbufs, outbufs, in_args, out_args);
> + if (err) {
> +- fprintf(stderr, "VIDDEC3_process() error %d\n", err);
> +- return -1;
> ++ fprintf(stderr, "VIDDEC3_process() error %d %08x\n", err,
> ++ out_args->extendedError);
> ++ /* for non-fatal errors, keep going.. a non-fatal error could
> ++ * just indicate an error in the input stream which the codec
> ++ * was able to conceal
> ++ */
> ++ if (XDM_ISFATALERROR(out_args->extendedError))
> ++ return -1;
> + }
> +
> + for (i = 0; i < out_args->outputID[i]; i++) {
> +--
> +1.7.1
> diff --git a/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb b/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb
> new file mode 100644
> index 0000000..a0392f6
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/omapfbplay-cmem_git.bb
> @@ -0,0 +1,16 @@
> +require omapfbplay.inc
> +
> +DEPENDS += "ti-linuxutils"
> +
> +require recipes-ti/includes/ti-paths.inc
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +SDMA_CFLAGS = " -I${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/sdma/include/"
> +CMEM_CFLAGS = " -I${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/cmem/include/"
> +CFLAGS += " -I. -I${STAGING_KERNEL_DIR}/include ${SDMA_CFLAGS} ${CMEM_CFLAGS}"
> +
> +export SDMA_LIBS = "-L${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/sdma/lib -l:sdma.a470MV"
> +export CMEM_LIBS = "-L${LINUXUTILS_INSTALL_DIR}/packages/ti/sdo/linuxutils/cmem/lib -l:cmem.a470MV"
> +
> +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y CMEM=y SDMA=y"
> diff --git a/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb b/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb
> new file mode 100644
> index 0000000..e70ac72
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/omapfbplay-dce_git.bb
> @@ -0,0 +1,7 @@
> +require omapfbplay.inc
> +
> +DEPENDS += "libdce"
> +
> +CFLAGS += " -I. -I${STAGING_INCDIR}/dce -I${STAGING_KERNEL_DIR}/include "
> +
> +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y DCE=y"
> diff --git a/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb b/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb
> new file mode 100644
> index 0000000..cadf6d8
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/omapfbplay-xv_git.bb
> @@ -0,0 +1,3 @@
> +require omapfbplay.inc
> +
> +OMAPFBPLAYOPTS = "V4L2=y NETSYNC=y XV=y"
> diff --git a/recipes-graphics/omapfbplay/omapfbplay.inc b/recipes-graphics/omapfbplay/omapfbplay.inc
> new file mode 100644
> index 0000000..88de77b
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/omapfbplay.inc
> @@ -0,0 +1,33 @@
> +DESCRIPTION = "Simple libav-based player that uses the omapfb overlays"
> +DEPENDS = "bzip2 lame libav virtual/kernel"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://omapfbplay.c;beginline=2;endline=22;md5=05d3789ab362e6f4a9682e98100ea0fa"
> +
> +PV = "0.0+${PR}+gitr${SRCREV}"
> +
> +SRCREV = "d03f042ecac0a231bedeadc7a6c67f0102d5505a"
> +SRC_URI = "git://git.mansr.com/omapfbplay;protocol=git \
> + file://omapfbplay-errorhandling.patch \
> + file://0001-rollback-to-libav-0.7.4-API.patch \
> + "
> +
> +S = "${WORKDIR}/git"
> +
> +# We want a kernel header for armv7a, but we don't want to make mplayer machine specific for that
> +STAGING_KERNEL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/kernel"
> +CFLAGS += " -I. -I${STAGING_KERNEL_DIR}/include "
> +
> +OMAPFBPLAYVARIANT ?= "${PN}"
> +OMAPFBPLAYOPTS ?= "V4L2=y NETSYNC=y"
> +
> +do_compile() {
> + cp ${STAGING_KERNEL_DIR}/arch/arm/plat-omap/include/mach/omapfb.h ${S} || true
> + cp ${STAGING_KERNEL_DIR}/include/asm-arm/arch-omap/omapfb.h ${S} || true
> + cp ${STAGING_KERNEL_DIR}/include/linux/omapfb.h ${S} || true
> + oe_runmake ${TARGET_ARCH}=y ${OMAPFBPLAYOPTS} -e
> +}
> +
> +do_install() {
> + install -d ${D}/${bindir}
> + install -m 0755 ${S}/omapfbplay ${D}/${bindir}/${OMAPFBPLAYVARIANT}
> +}
> diff --git a/recipes-graphics/omapfbplay/omapfbplay_git.bb b/recipes-graphics/omapfbplay/omapfbplay_git.bb
> new file mode 100644
> index 0000000..0d3956f
> --- /dev/null
> +++ b/recipes-graphics/omapfbplay/omapfbplay_git.bb
> @@ -0,0 +1,3 @@
> +require omapfbplay.inc
> +
> +OMAPFBPLAYOPTS = "V4L2=y OMAPFB=y NETSYNC=y"
> --
> 1.7.10
>
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti
>
More information about the meta-ti
mailing list