From: Charles Clément Date: Sat, 12 Apr 2008 09:33:03 +0000 (+0000) Subject: media-libs/libinstrudeo: Version bump, fix ffmpeg export X-Git-Url: http://pileus.org/git/?p=~andy%2Fsunrise;a=commitdiff_plain;h=b16cfc9999781eedd527d151f8f184eb6af48d70 media-libs/libinstrudeo: Version bump, fix ffmpeg export svn path=/sunrise/; revision=6028 --- diff --git a/media-libs/libinstrudeo/ChangeLog b/media-libs/libinstrudeo/ChangeLog index 75dc75d63..fb13740b2 100644 --- a/media-libs/libinstrudeo/ChangeLog +++ b/media-libs/libinstrudeo/ChangeLog @@ -1,7 +1,12 @@ # ChangeLog for media-libs/libinstrudeo -# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ + 12 Apr 2008; Charles Clément + -libinstrudeo-0.1.3.ebuild, +libinstrudeo-0.1.4.ebuild, + +files/img_convert_to_sws_scale.patch: + Version bump, fix ffmpeg export + 16 Oct 2007; Jakub Moc libinstrudeo-0.1.3.ebuild: libdts is deprecated, use libdca by default diff --git a/media-libs/libinstrudeo/Manifest b/media-libs/libinstrudeo/Manifest index 38971e7f6..a49a81255 100644 --- a/media-libs/libinstrudeo/Manifest +++ b/media-libs/libinstrudeo/Manifest @@ -1,4 +1,5 @@ -DIST libinstrudeo-0.1.3.tar.gz 790204 RMD160 de6f8742bff89d405bc7ef63a824d4ad631a9856 SHA1 24040e3afd1430b10b25e932d2c7b3502b1442a5 SHA256 906442f01ed55f89106d43c30536385899abfdf8929b5bc532fa853fe345d6f5 -EBUILD libinstrudeo-0.1.3.ebuild 1186 RMD160 a8abdd877e5a142ee1b2fffb551c05fa8430ee4b SHA1 f9fbf3a64f187339dfea1afcef8371d89dd02c8c SHA256 f4b6e48eb8de458e7e19e8779e1f0cff82699bed65174f1b4fec4515044d3e11 -MISC ChangeLog 1080 RMD160 c4244b7edfab4343074133a1e1bc0486bb74ba12 SHA1 a68c311583003a1d6a413fa3e59c978aaa67d901 SHA256 97d676237d966e940edede5bcdcc588fe4da0e15f57d29fab4c1e0162830db7d +AUX img_convert_to_sws_scale.patch 3909 RMD160 d83d755f0d7096ac757da0fcb7a02564714431ae SHA1 f584c9db088250813fa6f87d83d8e9a685fb899d SHA256 8fb30c614089c3ed000a98da46ddd9dbefb183409d11fb3f423a907c9a420a77 +DIST libinstrudeo-0.1.4.tar.gz 791506 RMD160 43503ba0e4164abddbd8291cd7381cb6216c6d37 SHA1 49ca4a084edc61d84c04899dde26206ed6f0def7 SHA256 6e9fd562ce138d3e27d06ebadc2200afee6ac5c00e9f13793cb18af7ea24671e +EBUILD libinstrudeo-0.1.4.ebuild 1098 RMD160 068e794684db1bf4df68155c191c1763ba5b482f SHA1 b0fa4c5a9bc9ecae3c7cf3e4ac13ca153d1bf1b7 SHA256 55766de219f722d33333ddf16c45063963916bd69138a8fbbec9e6d5068c3013 +MISC ChangeLog 1267 RMD160 7e1e19a000985facac47be6094b9b4ea4dce4a2b SHA1 0993730f49fb4b6095d1bee7d9b12c9eaaa4b935 SHA256 319468dfc3fbd1cdf56aacb67996f88d36dc7ce9e092e92bd8a57e8ea38e5c1d MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42 diff --git a/media-libs/libinstrudeo/files/img_convert_to_sws_scale.patch b/media-libs/libinstrudeo/files/img_convert_to_sws_scale.patch new file mode 100644 index 000000000..881ecd159 --- /dev/null +++ b/media-libs/libinstrudeo/files/img_convert_to_sws_scale.patch @@ -0,0 +1,79 @@ +Index: libinstrudeo-0.1.4/configure.ac +=================================================================== +--- libinstrudeo-0.1.4.orig/configure.ac ++++ libinstrudeo-0.1.4/configure.ac +@@ -92,6 +92,7 @@ AC_CHECK_LIB([vorbisenc], [vorbis_encode + AC_CHECK_LIB([theora], [theora_info_init], , AC_MSG_ERROR([*** theora missing - please install libtheora development package ***])) + AC_CHECK_LIB([avcodec], [avcodec_init], , AC_MSG_ERROR([*** avcodec missing - please install avcodec development package ***]), [-lavutil]) + AC_CHECK_LIB([avformat], [av_open_input_stream], , AC_MSG_ERROR([*** avformat missing - please install avformat development package ***]), [-lavutil]) ++AC_CHECK_LIB([swscale], [sws_scale], , AC_MSG_ERROR([*** swscale missing - please install swscale development package ***]), [-lswscale]) + dnl This should pass, since we successfully linked in the two previous checks + dnl This step add the necessary -lavutil to the LIBS variable + dnl Note: specifying a method caused troubles, so I switched to main +@@ -144,4 +145,4 @@ AC_FUNC_STRTOD + AC_CHECK_FUNCS([ftime gethostbyname gettimeofday localtime_r memset munmap select setlocale socket sqrt strchr strdup strerror strrchr strstr strtoull]) + + AC_CONFIG_FILES(Makefile src/Makefile src/libinstrudeo/webservice/Makefile src/libinstrudeo/Makefile src/isdexport/Makefile data/Makefile data/commentboxes/Makefile data/fonts/Makefile) +-AC_OUTPUT +\ Pas de fin de ligne à la fin du fichier. ++AC_OUTPUT +Index: libinstrudeo-0.1.4/src/libinstrudeo/isdffmpegexporter.cpp +=================================================================== +--- libinstrudeo-0.1.4.orig/src/libinstrudeo/isdffmpegexporter.cpp ++++ libinstrudeo-0.1.4/src/libinstrudeo/isdffmpegexporter.cpp +@@ -79,6 +79,7 @@ ISDFFmpegExporter::~ISDFFmpegExporter() + ISDObject::ISDErrorCode ISDFFmpegExporter::doExport(char* pixelBuffer) + { + char* grabBuffer; ++ struct SwsContext *toYUV_convert_ctx; + + if (!initOK) { + LOG_WARNING("Export routine called without initializing the encoder."); +@@ -96,6 +97,10 @@ ISDObject::ISDErrorCode ISDFFmpegExporte + grabBuffer = (char*)malloc(bufSize); + } + ++ toYUV_convert_ctx = sws_getContext(codecContext->width, codecContext->height, inputPixFmt, ++ outputContext->streams[0]->codec->width, outputContext->streams[0]->codec->height, ++ FFMPEG_STREAM_PIX_FMT, SWS_BICUBIC, NULL, NULL, NULL); ++ + /* + * Note: video time is in milliseconds, so if we have a framerate + * of 25, we must increment the loop with 1000/25 milliseconds +@@ -126,13 +131,13 @@ ISDObject::ISDErrorCode ISDFFmpegExporte + } + + //convert input pic to yuv420p +- if (img_convert(&yuvInputPicture, FFMPEG_STREAM_PIX_FMT, &inputPicture, +- inputPixFmt, codecContext->width, codecContext->height) < 0) +- { +- LOG_WARNING("Pixel format conversion not handled while exporting."); +- RETURN_ERROR(ISD_EXPORT_FORMAT_ERROR); +- } +- ++ if (sws_scale(toYUV_convert_ctx, inputPicture.data, inputPicture.linesize, 0, codecContext->height, ++ yuvInputPicture.data, yuvInputPicture.linesize) < 0) ++ { ++ LOG_WARNING("Pixel format conversion not handled while exporting."); ++ RETURN_ERROR(ISD_EXPORT_FORMAT_ERROR); ++ } ++ + outSize = avcodec_encode_video(codecContext, outputBuf, outputBufSize, inputFrame); + //if zero size, it means the image was buffered + if (outSize > 0) { +Index: libinstrudeo-0.1.4/src/libinstrudeo/isdffmpegexporter.h +=================================================================== +--- libinstrudeo-0.1.4.orig/src/libinstrudeo/isdffmpegexporter.h ++++ libinstrudeo-0.1.4/src/libinstrudeo/isdffmpegexporter.h +@@ -47,8 +47,11 @@ + + #include + ++extern "C" { + #include + #include ++#include ++} + + using namespace std; + diff --git a/media-libs/libinstrudeo/libinstrudeo-0.1.3.ebuild b/media-libs/libinstrudeo/libinstrudeo-0.1.4.ebuild similarity index 83% rename from media-libs/libinstrudeo/libinstrudeo-0.1.3.ebuild rename to media-libs/libinstrudeo/libinstrudeo-0.1.4.ebuild index 5c5be3ed5..433243482 100644 --- a/media-libs/libinstrudeo/libinstrudeo-0.1.3.ebuild +++ b/media-libs/libinstrudeo/libinstrudeo-0.1.4.ebuild @@ -2,6 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: $ +inherit eutils autotools + DESCRIPTION="Provides the necessary logic to capture screen recordings and to process them" HOMEPAGE="http://libinstrudeo.sourceforge.net/" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" @@ -28,21 +30,17 @@ DEPEND=">=dev-cpp/libxmlpp-2.10.0 virtual/glut" RDEPEND="${DEPEND}" -src_unpack() { +src_unpack(){ unpack ${A} cd "${S}" - sed -i \ - -e 's#/etc/instrudeo#/usr/share/instrudeo#g' \ - data/commentboxes/Makefile.in \ - data/fonts/Makefile.in \ - src/libinstrudeo/isdcommentbox.h \ - || die "sed failed" + + epatch "${FILESDIR}/img_convert_to_sws_scale.patch" + eautoreconf } src_compile() { CXXFLAGS="${CXXFLAGS} -D__STDC_CONSTANT_MACROS" econf || die "econf failed" emake || die "emake failed" - } src_install() {