From 600d5378dadf22b8517d52ac19500594bce4b66d Mon Sep 17 00:00:00 2001 From: root Date: Sun, 13 Nov 2011 23:14:59 +0000 Subject: Sun Nov 13 23:14:59 UTC 2011 --- community/gnash/PKGBUILD | 13 +- community/gnash/gentoo-ffmpeg-0.8.patch | 204 ++++++++++++++++++++++++++++++++ 2 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 community/gnash/gentoo-ffmpeg-0.8.patch (limited to 'community/gnash') diff --git a/community/gnash/PKGBUILD b/community/gnash/PKGBUILD index dbb756e2c..68f826412 100644 --- a/community/gnash/PKGBUILD +++ b/community/gnash/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=gnash pkgname=(gnash-common gnash-gtk) pkgver=0.8.9 -pkgrel=4 +pkgrel=5 arch=(i686 x86_64) url="http://www.gnu.org/software/gnash/" license=(GPL3) @@ -14,14 +14,17 @@ makedepends=(curl giflib libldap sdl agg libjpeg libpng libtool gtk2 libldap xulrunner hicolor-icon-theme desktop-file-utils pkgconfig boost) options=(!libtool !emptydirs) -source=(http://ftp.gnu.org/gnu/gnash/${pkgver}/gnash-${pkgver}.tar.bz2) -md5sums=('5b2be6b04a1bcc5fb404cc377034499e') +source=(http://ftp.gnu.org/gnu/gnash/${pkgver}/gnash-${pkgver}.tar.bz2 + gentoo-ffmpeg-0.8.patch) +md5sums=('5b2be6b04a1bcc5fb404cc377034499e' + '98dec9a5c1b1084245a3f46b4022a6e2') build() { cd "$srcdir/gnash-$pkgver" - # Version is now in version.h - sed -i 's/avcodec\.h/version.h/' macros/ffmpeg.m4 + # Consolidated gentoo patches for ffmpeg compatibility + # as of 2011-10-31 + patch -Np1 -i "$srcdir/gentoo-ffmpeg-0.8.patch" ./autogen.sh ./configure \ diff --git a/community/gnash/gentoo-ffmpeg-0.8.patch b/community/gnash/gentoo-ffmpeg-0.8.patch new file mode 100644 index 000000000..d74bcc8e0 --- /dev/null +++ b/community/gnash/gentoo-ffmpeg-0.8.patch @@ -0,0 +1,204 @@ +diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp +--- gnash-0.8.9/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp 2011-02-26 19:11:08.000000000 +0100 ++++ gnash-0.8.9-ff/libmedia/ffmpeg/AudioDecoderFfmpeg.cpp 2011-10-31 17:25:56.057379760 +0100 +@@ -29,7 +29,7 @@ + + //#define GNASH_DEBUG_AUDIO_DECODING + +-#define AVCODEC_DECODE_AUDIO avcodec_decode_audio2 ++#define AVCODEC_DECODE_AUDIO avcodec_decode_audio3 + + namespace gnash { + namespace media { +@@ -549,8 +549,12 @@ + #endif + + // older ffmpeg versions didn't accept a const input.. ++ AVPacket pkt; ++ av_init_packet(&pkt); ++ pkt.data = (uint8_t*) input; ++ pkt.size = inputSize; + int tmp = AVCODEC_DECODE_AUDIO(_audioCodecCtx, outPtr, &outSize, +- input, inputSize); ++ &pkt); + + #ifdef GNASH_DEBUG_AUDIO_DECODING + log_debug(" avcodec_decode_audio[2](ctx, bufptr, %d, input, %d) " +@@ -658,13 +662,13 @@ + { + if ( _needsParsing ) + { +- return av_parser_parse(_parser, _audioCodecCtx, ++ return av_parser_parse2(_parser, _audioCodecCtx, + // as of 2008-10-28 SVN, ffmpeg doesn't + // accept a pointer to pointer to const.. + const_cast(outFrame), + outFrameSize, + input, inputSize, +- 0, 0); // pts & dts ++ 0, 0, AV_NOPTS_VALUE); // pts & dts + } + else + { +diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp +--- gnash-0.8.9/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp 2011-02-26 19:11:08.000000000 +0100 ++++ gnash-0.8.9-ff/libmedia/ffmpeg/AudioResamplerFfmpeg.cpp 2011-10-31 17:25:51.210668136 +0100 +@@ -46,8 +46,10 @@ + { + if ( (ctx->sample_rate != 44100) || (ctx->channels != 2) ) { + if ( ! _context ) { +- _context = audio_resample_init( +- 2, ctx->channels, 44100, ctx->sample_rate ++ _context = av_audio_resample_init( ++ 2, ctx->channels, 44100, ctx->sample_rate, ++ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16, ++ 16, 10, 0, 0.8 + ); + } + +diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/MediaParserFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/MediaParserFfmpeg.cpp +--- gnash-0.8.9/libmedia/ffmpeg/MediaParserFfmpeg.cpp 2011-03-13 17:47:36.000000000 +0100 ++++ gnash-0.8.9-ff/libmedia/ffmpeg/MediaParserFfmpeg.cpp 2011-10-31 17:25:57.720728522 +0100 +@@ -387,7 +387,7 @@ + + log_debug("Parsing FFMPEG media file: format:%s; nstreams:%d", + _inputFmt->name, _formatCtx->nb_streams); +- ++ /* + if ( _formatCtx->title[0] ) + log_debug(_(" Title:'%s'"), _formatCtx->title); + if ( _formatCtx->author[0] ) +@@ -398,7 +398,7 @@ + log_debug(_(" Comment:'%s'"), _formatCtx->comment); + if ( _formatCtx->album[0] ) + log_debug(_(" Album:'%s'"), _formatCtx->album); +- ++ */ + // Find first audio and video stream + for (unsigned int i = 0; i < static_cast(_formatCtx->nb_streams); i++) + { +@@ -415,7 +415,7 @@ + } + + switch (enc->codec_type) { +- case CODEC_TYPE_AUDIO: ++ case AVMEDIA_TYPE_AUDIO: + if (_audioStreamIndex < 0) { + _audioStreamIndex = i; + _audioStream = _formatCtx->streams[i]; +@@ -425,7 +425,7 @@ + } + break; + +- case CODEC_TYPE_VIDEO: ++ case AVMEDIA_TYPE_VIDEO: + if (_videoStreamIndex < 0) { + _videoStreamIndex = i; + _videoStream = _formatCtx->streams[i]; +diff -u -Nr gnash-0.8.9/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp gnash-0.8.9-ff/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp +--- gnash-0.8.9/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp 2011-03-13 17:47:36.000000000 +0100 ++++ gnash-0.8.9-ff/libmedia/ffmpeg/VideoDecoderFfmpeg.cpp 2011-10-31 17:25:54.590699488 +0100 +@@ -356,8 +356,12 @@ + + int bytes = 0; + // no idea why avcodec_decode_video wants a non-const input... +- avcodec_decode_video(_videoCodecCtx->getContext(), frame, &bytes, +- input, input_size); ++ AVPacket pkt; ++ av_init_packet(&pkt); ++ pkt.data = (uint8_t*) input; ++ pkt.size = input_size; ++ avcodec_decode_video2(_videoCodecCtx->getContext(), frame, &bytes, ++ &pkt); + + if (!bytes) { + log_error("Decoding of a video frame failed"); +diff -u -Nr gnash-0.8.9/macros/ffmpeg.m4 gnash-0.8.9-ff/macros/ffmpeg.m4 +--- gnash-0.8.9/macros/ffmpeg.m4 2011-02-26 19:11:08.000000000 +0100 ++++ gnash-0.8.9-ff/macros/ffmpeg.m4 2011-10-31 17:25:49.700654130 +0100 +@@ -22,6 +22,7 @@ + backupLIBS="$LIBS" + backupCFLAGS="$CFLAGS" + avcodec_h="" ++ avcodec_version_h="" + ffmpeg_top_incl="" + + dnl If the user specify an path to include headers from, we assume it's the full +@@ -46,6 +47,9 @@ + else + AC_MSG_ERROR([${with_ffmpeg_incl} directory does not contain the avcodec.h header]) + fi ++ if test -f ${with_ffmpeg_incl}/version.h; then ++ avcodec_version_h=${with_ffmpeg_incl}/version.h ++ fi + fi + ]) + +@@ -66,6 +70,9 @@ + if test -f ${ffmpeg_top_incl}/${i}/avcodec.h; then + ac_cv_path_ffmpeg_incl="-I`(cd ${ffmpeg_top_incl}; pwd)`" + avcodec_h="${ffmpeg_top_incl}/${i}/avcodec.h" ++ if test -f ${ffmpeg_top_incl}/${i}/version.h; then ++ avcodec_version_h=${ffmpeg_top_incl}/${i}/version.h ++ fi + break + fi + done +@@ -83,6 +90,9 @@ + if test -f ${ffmpeg_top_incl}/${i}/avcodec.h; then + ac_cv_path_ffmpeg_incl="-I`(cd ${ffmpeg_top_incl}/${i}; pwd)`" + avcodec_h=${ffmpeg_top_incl}/${i}/avcodec.h ++ if test -f ${ffmpeg_top_incl}/${i}/version.h; then ++ avcodec_version_h=${ffmpeg_top_incl}/${i}/version.h ++ fi + break + fi + done +@@ -182,14 +192,24 @@ + dnl a modified form of grepping may be better, making sure all old kinds of + dnl version numbering fail gracefully. + ++ versionfile="" ++ + dnl Check avcodec version number, if it was found +- if test x"${avcodec_h}" != x; then ++ if test x"${avcodec_version_h}" != x; then ++ versionfile=${avcodec_version_h} ++ else ++ if test x"${avcodec_h}" != x; then ++ versionfile=${avcodec_h} ++ fi ++ fi ++ ++ if test x"${versionfile}" != x; then + + AC_MSG_CHECKING([ffmpeg version]) + +- ffmpeg_major_version=`$EGREP "define LIBAVCODEC_VERSION_MAJOR " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"` +- ffmpeg_minor_version=`$EGREP "define LIBAVCODEC_VERSION_MINOR " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"` +- ffmpeg_micro_version=`$EGREP "define LIBAVCODEC_VERSION_MICRO " ${avcodec_h} | sed -e "s%[[^0-9]]%%g"` ++ ffmpeg_major_version=`$EGREP "define LIBAVCODEC_VERSION_MAJOR " ${versionfile} | sed -e "s%[[^0-9]]%%g"` ++ ffmpeg_minor_version=`$EGREP "define LIBAVCODEC_VERSION_MINOR " ${versionfile} | sed -e "s%[[^0-9]]%%g"` ++ ffmpeg_micro_version=`$EGREP "define LIBAVCODEC_VERSION_MICRO " ${versionfile} | sed -e "s%[[^0-9]]%%g"` + + if test x"${ffmpeg_major_version}" != x ; then + +@@ -198,15 +218,15 @@ + else + + dnl #define LIBAVCODEC_VERSION_TRIPLET 51,50,1 +- ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION_TRIPLET " ${avcodec_h} | awk '{print $'3'}' | sed -e "s%,%.%g"` ++ ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION_TRIPLET " ${versionfile} | awk '{print $'3'}' | sed -e "s%,%.%g"` + + if test x"${ffmpeg_version}" = x ; then + + dnl NOTE: the [0-9]*d. pattern discards deb-heads rubbish prefix +- ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION " ${avcodec_h} | awk '{print $'3'}' | sed -e "s%^[[0-9]]d\.%%"` ++ ffmpeg_version=`$EGREP "define LIBAVCODEC_VERSION " ${versionfile} | awk '{print $'3'}' | sed -e "s%^[[0-9]]d\.%%"` + + if test x"${ffmpeg_version}" = x ; then +- ffmpeg_version=`$EGREP "define LIBAVCODEC_BUILD " ${avcodec_h} | awk '{print $'3'}'` ++ ffmpeg_version=`$EGREP "define LIBAVCODEC_BUILD " ${versionfile} | awk '{print $'3'}'` + fi + fi + -- cgit v1.2.3-54-g00ecf