From 495674534c45d86d3ad9149cdba75ca0bbbe1a0e Mon Sep 17 00:00:00 2001 From: root Date: Sun, 27 Nov 2011 23:14:57 +0000 Subject: Sun Nov 27 23:14:57 UTC 2011 --- community-staging/gnash/PKGBUILD | 83 ++++++++++ community-staging/gnash/gentoo-ffmpeg-0.8.patch | 204 ++++++++++++++++++++++++ community-staging/gnash/gnash-gtk.install | 12 ++ community-staging/gnash/xul8.patch | 44 +++++ 4 files changed, 343 insertions(+) create mode 100644 community-staging/gnash/PKGBUILD create mode 100644 community-staging/gnash/gentoo-ffmpeg-0.8.patch create mode 100644 community-staging/gnash/gnash-gtk.install create mode 100644 community-staging/gnash/xul8.patch (limited to 'community-staging/gnash') diff --git a/community-staging/gnash/PKGBUILD b/community-staging/gnash/PKGBUILD new file mode 100644 index 000000000..8b5849e88 --- /dev/null +++ b/community-staging/gnash/PKGBUILD @@ -0,0 +1,83 @@ +# $Id: PKGBUILD 82896 2010-06-18 18:30:20Z ibiru $ +# Maintainer: Jan "heftig" Steffens + +pkgbase=gnash +pkgname=(gnash-common gnash-gtk) +pkgver=0.8.9 +pkgrel=7 +arch=(i686 x86_64) +url="http://www.gnu.org/software/gnash/" +license=(GPL3) +makedepends=(curl giflib libldap sdl agg libjpeg libpng libtool + speex fontconfig libva ffmpeg libxinerama + gstreamer0.10-base gstreamer0.10-ffmpeg + 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 + gentoo-ffmpeg-0.8.patch xul8.patch) +md5sums=('5b2be6b04a1bcc5fb404cc377034499e' + '98dec9a5c1b1084245a3f46b4022a6e2' + '9b77325d0b8b9d4150c4097771482d26') + +build() { + cd "$srcdir/gnash-$pkgver" + + # Consolidated gentoo patches for ffmpeg compatibility + # as of 2011-10-31 + patch -Np1 -i "$srcdir/gentoo-ffmpeg-0.8.patch" + + # Patch for compatibility with newer xulrunner headers + patch -Np1 -i "$srcdir/xul8.patch" + + ./autogen.sh + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-plugins-install=system \ + --with-npapi-plugindir=/usr/lib/mozilla/plugins \ + --enable-gui=sdl,gtk \ + --enable-renderer=agg \ + --enable-media=gst,ffmpeg \ + --enable-hwaccel=vaapi + + make +} + +package_gnash-common() { + pkgdesc="A GNU Flash movie player" + depends=(curl giflib libldap sdl agg libjpeg libpng libtool + speex fontconfig libva ffmpeg libxinerama + gstreamer0.10-base gstreamer0.10-ffmpeg + boost-libs) + backup=(etc/gnashrc) + + cd "$srcdir/gnash-$pkgver" + + make DESTDIR="$pkgdir" install + + # Split gnash-gtk + mkdir -p "$srcdir"/gtk/{bin,man1,share} + mv "$pkgdir"/usr/bin/{gtk-gnash,gnash-gtk-launcher} "$srcdir/gtk/bin/" + mv "$pkgdir"/usr/share/man/man1/{gtk-gnash,gnash-gtk-launcher}.1 "$srcdir/gtk/man1/" + mv "$pkgdir"/usr/share/{applications,icons} "$srcdir/gtk/share/" + mv "$pkgdir/etc/gnashpluginrc" "$srcdir/gtk/" +} + +package_gnash-gtk() { + pkgdesc="A GNU Flash movie player" + depends=("gnash-common=$pkgver" + gtk2 libldap hicolor-icon-theme desktop-file-utils) + install=gnash-gtk.install + backup=(etc/gnashpluginrc) + + cd "$srcdir/gnash-$pkgver" + + make DESTDIR="$pkgdir" install-plugin + + install -d "$pkgdir"/{etc,usr/{bin,share/man/man1}} + mv "$srcdir"/gtk/bin/* "$pkgdir/usr/bin/" + mv "$srcdir"/gtk/man1/* "$pkgdir/usr/share/man/man1/" + mv "$srcdir"/gtk/share/* "$pkgdir/usr/share/" + mv "$srcdir/gtk/gnashpluginrc" "$pkgdir/etc/" +} diff --git a/community-staging/gnash/gentoo-ffmpeg-0.8.patch b/community-staging/gnash/gentoo-ffmpeg-0.8.patch new file mode 100644 index 000000000..d74bcc8e0 --- /dev/null +++ b/community-staging/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 + diff --git a/community-staging/gnash/gnash-gtk.install b/community-staging/gnash/gnash-gtk.install new file mode 100644 index 000000000..c317fbaca --- /dev/null +++ b/community-staging/gnash/gnash-gtk.install @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community-staging/gnash/xul8.patch b/community-staging/gnash/xul8.patch new file mode 100644 index 000000000..7bd708b2d --- /dev/null +++ b/community-staging/gnash/xul8.patch @@ -0,0 +1,44 @@ +diff -u -r gnash-0.8.9/plugin/npapi/mozilla-sdk/np_entry.cpp gnash-0.8.9-xul/plugin/npapi/mozilla-sdk/np_entry.cpp +--- gnash-0.8.9/plugin/npapi/mozilla-sdk/np_entry.cpp 2011-03-13 17:47:36.000000000 +0100 ++++ gnash-0.8.9-xul/plugin/npapi/mozilla-sdk/np_entry.cpp 2011-11-18 16:25:55.198007371 +0100 +@@ -238,7 +238,7 @@ + return NS_PluginInitialize(); + } + +-char * ++const char * + NP_GetMIMEDescription(void) + { + return NPP_GetMIMEDescription(); +diff -u -r gnash-0.8.9/plugin/npapi/plugin.cpp gnash-0.8.9-xul/plugin/npapi/plugin.cpp +--- gnash-0.8.9/plugin/npapi/plugin.cpp 2011-03-18 14:44:30.000000000 +0100 ++++ gnash-0.8.9-xul/plugin/npapi/plugin.cpp 2011-11-18 16:35:42.496794816 +0100 +@@ -128,10 +128,10 @@ + } + + /// \brief Return the MIME Type description for this plugin. +-char* ++const char* + NPP_GetMIMEDescription(void) + { +- return const_cast(MIME_TYPES_DESCRIPTION); ++ return MIME_TYPES_DESCRIPTION; + } + + static bool waitforgdb = false; +diff -u -r gnash-0.8.9/plugin/npapi/test.cpp gnash-0.8.9-xul/plugin/npapi/test.cpp +--- gnash-0.8.9/plugin/npapi/test.cpp 2011-03-13 17:47:36.000000000 +0100 ++++ gnash-0.8.9-xul/plugin/npapi/test.cpp 2011-11-18 16:37:06.997539299 +0100 +@@ -408,10 +408,10 @@ + { + } + +-char* ++const char* + NPP_GetMIMEDescription(void) + { +- char *x = 0; ++ const char *x = 0; + return x; + } + -- cgit v1.2.3-54-g00ecf