summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2012-03-15 18:49:17 +0000
committerTomas Chvatal <scarabeus@gentoo.org>2012-03-15 18:49:17 +0000
commit227684549aa5fd8eb39109cb557c9a9d6434c733 (patch)
tree4f4f2b2dd28252a4b0b566366a0c6103a8769d73 /media-tv/xbmc
parentMove xv.png to mirrors wrt #370905 by Matt Turner (diff)
downloadhistorical-227684549aa5fd8eb39109cb557c9a9d6434c733.tar.gz
historical-227684549aa5fd8eb39109cb557c9a9d6434c733.tar.bz2
historical-227684549aa5fd8eb39109cb557c9a9d6434c733.zip
Make the eden build againts new ffmpeg api in libav. This should be included in trunk based on github.
Package-Manager: portage-2.2.0_alpha90/cvs/Linux x86_64
Diffstat (limited to 'media-tv/xbmc')
-rw-r--r--media-tv/xbmc/ChangeLog7
-rw-r--r--media-tv/xbmc/Manifest31
-rw-r--r--media-tv/xbmc/files/xbmc-11.0-libav-0.8.patch150
-rw-r--r--media-tv/xbmc/xbmc-11.0_rc2.ebuild3
4 files changed, 174 insertions, 17 deletions
diff --git a/media-tv/xbmc/ChangeLog b/media-tv/xbmc/ChangeLog
index 1797123fa47d..8fc1151821dc 100644
--- a/media-tv/xbmc/ChangeLog
+++ b/media-tv/xbmc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for media-tv/xbmc
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/ChangeLog,v 1.119 2012/03/15 18:31:12 scarabeus Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/ChangeLog,v 1.120 2012/03/15 18:49:17 scarabeus Exp $
+
+ 15 Mar 2012; Tomáš Chvátal <scarabeus@gentoo.org>
+ +files/xbmc-11.0-libav-0.8.patch, xbmc-11.0_rc2.ebuild:
+ Make the eden build againts new ffmpeg api in libav. This should be included
+ in trunk based on github.
*xbmc-11.0_rc2 (15 Mar 2012)
diff --git a/media-tv/xbmc/Manifest b/media-tv/xbmc/Manifest
index e5b1ce6605a0..1f99836a3e22 100644
--- a/media-tv/xbmc/Manifest
+++ b/media-tv/xbmc/Manifest
@@ -5,6 +5,7 @@ AUX xbmc-10.0-python-2.7.patch 30308 RMD160 15f01d93b0db903eadb5deb94d5092b0a4b6
AUX xbmc-10.1-gcc-4.6.patch 4295 RMD160 4aee4c91f9d2f9e947d37cd39f2700fc0eaec353 SHA1 5ae755b20e06560aaf1508b80c1f7661ef36802f SHA256 cef1154bc3352b215bfece1a749d901d43ec7aa0c6d050921ae8745c553e84c9
AUX xbmc-10.1-headers.patch 294 RMD160 74536be4a5e3b939c6360bbc715f30e08226af46 SHA1 2435642148ec291d10bded3036592a6104f5ff03 SHA256 8b8e86cf7edef227e8267c52d60545b753eea11261f078131ee30f9eac8bb002
AUX xbmc-10.1-libpng-1.5.patch 19253 RMD160 1488504816e668fceb1c3f762738864ea81fa940 SHA1 06e90834bc665eabc3f4e587d551b93af87c1ba5 SHA256 1a0985b91ee9862a538a43689d005dc88d49bf5a70d917896fb69ee416369ff7
+AUX xbmc-11.0-libav-0.8.patch 7270 RMD160 113fe71b2be268521d643518d556f7cda8e399bc SHA1 52a9ef20eb2d3fb28ae7941505323797e9a32332 SHA256 b8831ec575963cc6b38709d4a772e8bb4fd920c722212019a19a96eaa050152f
AUX xbmc-11.0-libpng-1.5.patch 18833 RMD160 023626a75b96fbae4d662ff875f1647113d53bad SHA1 463ff9dda04707fc71db3d431eded9f396698aa9 SHA256 83b49d44b7855dcb2f7d34e2e9628f4c1f8e06ae8f9e94ac06a6036620705daa
AUX xbmc-9999-no-arm-flags.patch 542 RMD160 108586f2956cc27cc9f3c582565bd4e2f22fede0 SHA1 e6dc2f2b63e208fccb0c1ecb50322d6a9c9fda88 SHA256 72164a8b91f3209cff06ea1a103580f827135951a7a798eefabc04ee1a6d3e84
AUX xbmc-9999-no-exec-stack.patch 782 RMD160 d1d9c9ea4d92254776f4cc431228ff39180430d4 SHA1 308e1c765ddc46c45b974a203bbb17ea13858fba SHA256 0d3085458ff9c8c22f4dd406ee611d74909bb1dc2de4788b67e30cb5967c819f
@@ -12,24 +13,24 @@ AUX xbmc-9999-nomythtv.patch 6190 RMD160 829dff4b58098ee0935aed6fcda345e06abdb7b
DIST xbmc-10.1.tar.gz 130187822 RMD160 a4ddb06b396b8ae437bf30bea5b44396b54ebc5b SHA1 7a9f4e2c18a23d687ecfc744f2e051e4f88ef01a SHA256 3403195b7eb1d076523f2394793b7f050df00743892b031f6fea86b998559d8a
DIST xbmc-11.0-Eden_rc2.tar.gz 59257824 RMD160 e0efe3c69de4e990ca52f994c242f5a232843f72 SHA1 ff3b02d56d9a7ec356fa7064087062721d183773 SHA256 7a52850243e85ca51043c9163104ceda14d42d2ab682255dd4d4cecd05c1d802
EBUILD xbmc-10.1.ebuild 5390 RMD160 ccb062b93f485e70ffba8d108aae662d10533c12 SHA1 99bcc61eed8b3086085caeaa476e1c646e24bdd1 SHA256 df2669bfd06df9b2cbdb12ba25a5ad2858827f8613f495b2267109a1158a5d35
-EBUILD xbmc-11.0_rc2.ebuild 5844 RMD160 43955174b62863e9c8b1d4e8f803a5b94200492b SHA1 f03e536212b2b621fda49be4a239fbc38df0396e SHA256 2dbe22e227b9ad665277f714e0b22d3bb42677db261062dc17ad195cbebfb7b1
+EBUILD xbmc-11.0_rc2.ebuild 5893 RMD160 13bd625faec8a9c716f35bf39cdf7ff4d0b549f1 SHA1 22b1a9966ff178f5ee9656bdbc931152c6f34f54 SHA256 7051b76e29e75742b5256516506052b9f999c921347f4d7255619f73b339c85d
EBUILD xbmc-9999.ebuild 5749 RMD160 865a8b3591e82f8e878c2579129db6fc7c3aaa2e SHA1 8bb2225393452597211f888deffb887b2a6d7951 SHA256 e03217e951701f0fa4602fbec4b0d508c9b54e0bfee8bbf6e93658ef144b3695
-MISC ChangeLog 18837 RMD160 906fea4ce28984d03d91b85fdc0e1b62972152f1 SHA1 86837c485a38539458caad4834ec9af7049460f2 SHA256 39e6415f8022ea68798e9fcc4b36c74392fe944bcf1ea29d1eb672aac307f35c
+MISC ChangeLog 19058 RMD160 1e93cc5fd2fa4691a18b8cda6e0d9746e751a941 SHA1 d044b81a03636479294792dbff906745867d0936 SHA256 bb9b6a8af8411a8106e1ff964e2c3c4ad816150170b77182d3c0bdcd259d189e
MISC metadata.xml 932 RMD160 fbedc1d562949001f2195a49f375d2e4a1fdc7ff SHA1 c102da84b6cd9160308943fc7cc7801aff691a46 SHA256 2f82a971dfec33d4958ee8977011928976c4aab5f4e03139be6a6245bf3eb62d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
-iQIcBAEBAgAGBQJPYjV2AAoJEOSiRoyO7jvonCIQAJc/unQ6Bu5PPHTrQwhI0LiT
-8KWjwgxa+jsws5gGMfcOQ34QPJGVnKoLk6U+r2EC7/Gp7zE6+XAoAiOQIv9u20sV
-dSsa1xR6OAPwZTn89V7gt2F9/ZLaPnJgRSFGuLoIsd89jia+GlzfiaduldIrUYQ7
-uERZaqIpruUO3BfEndV9BfNrtWGLRJ1XWjRZm860Dd5pRX7bTd2mknfWCZYWYcc0
-oi2kC9M7qdALlKX9SpELM+rBzkCjEdYUE3rnK4pcQIh/CGByWMtYZ7GGb04ujN3s
-AtVtgCFsFgqJkz+3LPr9J5lG4G+3wZ8NMBKX7pYQmwGYoxL/vsIoFA9CpIJCkg32
-x31qrL5MpkRQETRfOqaTr/zrTWax8itoJYKdGXgr+RrHlsAnQ6I5C4EiQwxUODkK
-gD/k2SN9Yk/3oA7OGsHlyIn5qxkmLzqYQ5B0p1wB9zUrKKWhyF0G64Oih4rrLEwM
-c7HQLnJTno0kGL/NHjWuPhAe9UWVFRjSSDvu2kDYGzEqVpWmIyIYzBVq+GA/WhI1
-dTCHtS7EwIRn0bT6xY9B1FI9HsnZtCDHHXJt38C4y9xqCpG8FLA5AS7UD+wpRKGE
-NYa27YB0Lz8WuMR5ci+vycgCb4BX1wbGNSu4aGtax01KXQk6oa4iFSMK1MuUiXmc
-KwoU+lr0jcKCm5rtWuLa
-=q1I+
+iQIcBAEBAgAGBQJPYjmzAAoJEOSiRoyO7jvoLHYQAKV7EcrjZntRTkedGDYgVvfx
+pSgmpEd+nqJMB0TA8vEbtTu1jINes8gvKPbKdIO0Eo5AoEqivXKFh7VinyEQKR+Z
+PurlP6aBLsdagMHO4xZm1G2aZyUT/IRsweG8snMEO3hH6HNdKUNAphVoO9D0DG8k
+hj6R6rNzRkaDQxdx/DCVnhg/8WmXLJWjNYzMh1HT3vdvPXQc013KGn1vrtFWQOP+
+eyGOmIUwz5bGZsLa6DnLp66ayRrkQOo+Zof4WHt5E7CpQNy9qajhaGz2gO8esIXf
+Mrsx4yg5ZjhXQfx3/Yn2NyKl4t6odY73m17xwn5jwT7iHMN7mZBWXxMZUvmkZpRX
++1k5kYNFTQurDp1rBqes3mgc6nwoVFj2Mld/O4e1HT7zpwvwVTuI1EWiR2vZNiSn
+hp2ZKhe+BysnwpXajTSZroG6MxjJIBZlB9gt1rCRmkLqyb2io4Xi+6g2Vy3/0TEC
+0zwfL0UTAn+xRNOsX/n8xhj1mZjPrRvlPH9LL4FYA6UtODhSzyBbswvQDDozB1t7
+sqX4B2PFPiwH66fX+D969RcgBURxTlvInF+eZA3SSlY6Pyblwu0QQbNr2/TfqyNJ
+1jCzT+GIlPl+h9TEd2HVpdqxhdEDh0pRyK01zc99TSm+Trs/BbYB6H7e8uvdRFVB
+0VRN76Gysp+KzkT+/Njv
+=Fh3p
-----END PGP SIGNATURE-----
diff --git a/media-tv/xbmc/files/xbmc-11.0-libav-0.8.patch b/media-tv/xbmc/files/xbmc-11.0-libav-0.8.patch
new file mode 100644
index 000000000000..6735b2ded59b
--- /dev/null
+++ b/media-tv/xbmc/files/xbmc-11.0-libav-0.8.patch
@@ -0,0 +1,150 @@
+diff --git a/configure.in b/configure.in
+index bca9239..27297b8 100755
+--- a/configure.in
++++ b/configure.in
+@@ -1248,7 +1248,11 @@ if test "$use_external_ffmpeg" = "yes"; then
+ AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
+
+ # Disable vdpau support if external libavcodec doesn't have it
+- AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
++ AC_RUN_IFELSE(
++ AC_LANG_PROGRAM([[#include <libavcodec/avcodec.h>]],
++ [[avcodec_register_all();
++ AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau");
++ return (codec) ? 0 : 1;]]),,
+ [if test "x$use_vdpau" = "xyes"; then
+ AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
+ else
+@@ -1256,6 +1260,23 @@ if test "$use_external_ffmpeg" = "yes"; then
+ AC_MSG_RESULT($ffmpeg_vdpau_not_supported)
+ fi])
+
++ # Other headers to include if available.
++ AC_CHECK_HEADERS([libavutil/mathematics.h],,)
++
++ # Check if <libavfilter/vsrc_buffer.h> exists and defines old
++ # av_vsrc_buffer_add_frame() from SoC. This avoids multiple declarations of
++ # av_vsrc_buffer_add_frame().
++ AC_COMPILE_IFELSE(
++ AC_LANG_SOURCE([[
++ #include <libavfilter/vsrc_buffer.h>
++ void foo(void)
++ {
++ AVRational a;
++ av_vsrc_buffer_add_frame(NULL, NULL, 0, a);
++ }
++ ]]), AC_DEFINE([USE_OLD_AV_VSRC_BUFFER_ADD_FRAME],
++ [1], [Check if SoC av_vsrc_buffer_add_frame() is defined in libavfilter/vsrc_buffer.h.]),)
++
+ # Check for 'PIX_FMT_VDPAU_MPEG4' from libavutil
+ if test "x$use_vdpau" != "xno"; then
+ AC_LANG_PUSH([C++])
+diff --git a/lib/DllAvFilter.h b/lib/DllAvFilter.h
+index 302e35c..a421225 100644
+--- a/lib/DllAvFilter.h
++++ b/lib/DllAvFilter.h
+@@ -47,17 +47,21 @@
+ #include <ffmpeg/avfiltergraph.h>
+ #endif
+ /* for av_vsrc_buffer_add_frame */
+- #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,8,0)
+- #include <libavfilter/avcodec.h>
+- #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+- int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
+- AVFrame *frame);
+- #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53,3,0)
+- int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
+- AVFrame *frame, int64_t pts);
++ #if (defined USE_OLD_AV_VSRC_BUFFER_ADD_FRAME)
++ #include <libavfilter/vsrc_buffer.h>
+ #else
+- int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
+- AVFrame *frame, int64_t pts, AVRational pixel_aspect);
++ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,8,0)
++ #include <libavfilter/avcodec.h>
++ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
++ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
++ AVFrame *frame);
++ #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53,3,0)
++ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
++ AVFrame *frame, int64_t pts);
++ #else
++ int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter,
++ AVFrame *frame, int64_t pts, AVRational pixel_aspect);
++ #endif
+ #endif
+ #else
+ #include "libavfilter/avfiltergraph.h"
+@@ -82,6 +86,9 @@ class DllAvFilterInterface
+ virtual int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)=0;
+ virtual int avfilter_poll_frame(AVFilterLink *link)=0;
+ virtual int avfilter_request_frame(AVFilterLink *link)=0;
++#if (defined USE_OLD_AV_VSRC_BUFFER_ADD_FRAME)
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect)=0;
++#else
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags)=0;
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+@@ -91,6 +98,7 @@ class DllAvFilterInterface
+ #else
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect)=0;
+ #endif
++#endif
+ virtual AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h)=0;
+ virtual void avfilter_unref_buffer(AVFilterBufferRef *ref)=0;
+ virtual int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)=0;
+@@ -171,6 +179,9 @@ class DllAvFilter : public DllDynamic, DllAvFilterInterface
+ }
+ virtual int avfilter_poll_frame(AVFilterLink *link) { return ::avfilter_poll_frame(link); }
+ virtual int avfilter_request_frame(AVFilterLink *link) { return ::avfilter_request_frame(link); }
++#if (defined USE_OLD_AV_VSRC_BUFFER_ADD_FRAME)
++ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, pts, pixel_aspect); }
++#else
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, flags); }
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+@@ -180,6 +191,7 @@ class DllAvFilter : public DllDynamic, DllAvFilterInterface
+ #else
+ virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int64_t pts, AVRational pixel_aspect) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, pts, pixel_aspect); }
+ #endif
++#endif
+ virtual AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h) { return ::avfilter_get_video_buffer(link, perms, w, h); }
+ virtual void avfilter_unref_buffer(AVFilterBufferRef *ref) { ::avfilter_unref_buffer(ref); }
+ virtual int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad) { return ::avfilter_link(src, srcpad, dst, dstpad); }
+diff --git a/lib/DllAvUtil.h b/lib/DllAvUtil.h
+index e882cac..b8bb2d6 100644
+--- a/lib/DllAvUtil.h
++++ b/lib/DllAvUtil.h
+@@ -59,6 +59,10 @@
+ #else
+ #include <ffmpeg/mem.h>
+ #endif
++ /* For AVRounding */
++ #if (defined HAVE_LIBAVUTIL_MATHEMATICS_H)
++ #include <libavutil/mathematics.h>
++ #endif
+ #else
+ #include "libavutil/avutil.h"
+ #include "libavutil/crc.h"
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+index c79ead4..c59130f 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -787,6 +787,9 @@ int CDVDVideoCodecFFmpeg::FilterProcess(AVFrame* frame)
+
+ if (frame)
+ {
++#if (defined USE_OLD_AV_VSRC_BUFFER_ADD_FRAME)
++ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, frame->pts, m_pCodecContext->sample_aspect_ratio);
++#else
+ #if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,13,0)
+ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, 0);
+ #elif LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(2,7,0)
+@@ -796,6 +799,7 @@ int CDVDVideoCodecFFmpeg::FilterProcess(AVFrame* frame)
+ #else
+ result = m_dllAvFilter.av_vsrc_buffer_add_frame(m_pFilterIn, frame, frame->pts, m_pCodecContext->sample_aspect_ratio);
+ #endif
++#endif
+
+ if (result < 0)
+ {
diff --git a/media-tv/xbmc/xbmc-11.0_rc2.ebuild b/media-tv/xbmc/xbmc-11.0_rc2.ebuild
index 9d484febad26..2b0c673847f4 100644
--- a/media-tv/xbmc/xbmc-11.0_rc2.ebuild
+++ b/media-tv/xbmc/xbmc-11.0_rc2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-11.0_rc2.ebuild,v 1.1 2012/03/15 18:31:12 scarabeus Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-11.0_rc2.ebuild,v 1.2 2012/03/15 18:49:17 scarabeus Exp $
EAPI="4"
@@ -124,6 +124,7 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
epatch "${FILESDIR}"/${PN}-9999-no-exec-stack.patch
+ epatch "${FILESDIR}"/${PN}-11.0-libav-0.8.patch
# The mythtv patch touches configure.ac, so force a regen
rm -f configure