[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