diff options
author | Tomas Chvatal <scarabeus@gentoo.org> | 2012-03-15 18:49:17 +0000 |
---|---|---|
committer | Tomas Chvatal <scarabeus@gentoo.org> | 2012-03-15 18:49:17 +0000 |
commit | 227684549aa5fd8eb39109cb557c9a9d6434c733 (patch) | |
tree | 4f4f2b2dd28252a4b0b566366a0c6103a8769d73 /media-tv/xbmc | |
parent | Move xv.png to mirrors wrt #370905 by Matt Turner (diff) | |
download | historical-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/ChangeLog | 7 | ||||
-rw-r--r-- | media-tv/xbmc/Manifest | 31 | ||||
-rw-r--r-- | media-tv/xbmc/files/xbmc-11.0-libav-0.8.patch | 150 | ||||
-rw-r--r-- | media-tv/xbmc/xbmc-11.0_rc2.ebuild | 3 |
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 |