summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2007-08-07 23:31:21 +0000
committerLuca Barbato <lu_zero@gentoo.org>2007-08-07 23:31:21 +0000
commit087d8b7374f1eac6987f6b07cd3cd4bd0393dd43 (patch)
tree3b2031556c6a9f35d56ee2869b65ffd3e68f1410 /media-gfx
parentMarked ppc stable. (diff)
downloadgentoo-2-087d8b7374f1eac6987f6b07cd3cd4bd0393dd43.tar.gz
gentoo-2-087d8b7374f1eac6987f6b07cd3cd4bd0393dd43.tar.bz2
gentoo-2-087d8b7374f1eac6987f6b07cd3cd4bd0393dd43.zip
Make blender use swscale
(Portage version: 2.1.3.3)
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/blender/ChangeLog6
-rw-r--r--media-gfx/blender/blender-2.44.ebuild4
-rw-r--r--media-gfx/blender/files/blender-2.44-swscale.patch41
3 files changed, 48 insertions, 3 deletions
diff --git a/media-gfx/blender/ChangeLog b/media-gfx/blender/ChangeLog
index e14d2ea82009..f1fef7a8ecd1 100644
--- a/media-gfx/blender/ChangeLog
+++ b/media-gfx/blender/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for media-gfx/blender
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.118 2007/07/22 10:04:27 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/ChangeLog,v 1.119 2007/08/07 23:31:21 lu_zero Exp $
+
+ 07 Aug 2007; Luca Barbato <lu_zero@gentoo.org>
+ +files/blender-2.44-swscale.patch, blender-2.44.ebuild:
+ make blender use swscale
22 Jul 2007; Donnie Berkholz <dberkholz@gentoo.org>;
blender-2.41-r1.ebuild, blender-2.42.ebuild, blender-2.42a-r1.ebuild,
diff --git a/media-gfx/blender/blender-2.44.ebuild b/media-gfx/blender/blender-2.44.ebuild
index 44605b822653..8ac326dfb4b3 100644
--- a/media-gfx/blender/blender-2.44.ebuild
+++ b/media-gfx/blender/blender-2.44.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/blender-2.44.ebuild,v 1.4 2007/07/22 10:04:27 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/blender/blender-2.44.ebuild,v 1.5 2007/08/07 23:31:21 lu_zero Exp $
inherit multilib flag-o-matic eutils python
@@ -54,12 +54,12 @@ src_unpack() {
unpack ${A}
cd ${S}/release/plugins
chmod 755 bmake
- rmdir include
cp -pPR ${S}/source/blender/blenpluginapi include
cd ${S}
epatch ${FILESDIR}/blender-2.37-dirs.patch
epatch ${FILESDIR}/blender-2.44-scriptsdir.patch
+ epatch ${FILESDIR}/blender-2.44-swscale.patch
if use ffmpeg ; then
cd ${S}/extern
diff --git a/media-gfx/blender/files/blender-2.44-swscale.patch b/media-gfx/blender/files/blender-2.44-swscale.patch
new file mode 100644
index 000000000000..08bdb65bae98
--- /dev/null
+++ b/media-gfx/blender/files/blender-2.44-swscale.patch
@@ -0,0 +1,41 @@
+Index: writeffmpeg.c
+===================================================================
+--- blender.orig/source/blender/blenkernel/intern/writeffmpeg.c (revision 11354)
++++ blender/source/blender/blenkernel/intern/writeffmpeg.c (working copy)
+@@ -32,6 +32,7 @@
+ #include <ffmpeg/avformat.h>
+ #include <ffmpeg/avcodec.h>
+ #include <ffmpeg/rational.h>
++#include <ffmpeg/swscale.h>
+
+ #if LIBAVFORMAT_VERSION_INT < (49 << 16)
+ #define FFMPEG_OLD_FRAME_RATE 1
+@@ -258,6 +259,7 @@
+ static AVFrame* generate_video_frame(uint8_t* pixels)
+ {
+ uint8_t* rendered_frame;
++ static struct SwsContext *img_convert_ctx;
+
+ AVCodecContext* c = get_codec_from_stream(video_stream);
+ int width = c->width;
+@@ -317,8 +319,18 @@
+ }
+
+ if (c->pix_fmt != PIX_FMT_RGBA32) {
+- img_convert((AVPicture*)current_frame, c->pix_fmt,
+- (AVPicture*)rgb_frame, PIX_FMT_RGBA32, width, height);
++ if (img_convert_ctx == NULL)
++ img_convert_ctx = sws_getContext(c->width, c->height,
++ PIX_FMT_RGBA32,
++ c->width, c->height,
++ c->pix_fmt,
++ SWS_BICUBIC,
++ NULL, NULL, NULL);
++ sws_scale(img_convert_ctx, rgb_frame->data,
++ rgb_frame->linesize, 0, c->height,
++ current_frame->data, current_frame->linesize);
++// img_convert((AVPicture*)current_frame, c->pix_fmt,
++// (AVPicture*)rgb_frame, PIX_FMT_RGBA32, width, height);
+ delete_picture(rgb_frame);
+ }
+ return current_frame;