summaryrefslogtreecommitdiff
path: root/community-staging/gnash
diff options
context:
space:
mode:
Diffstat (limited to 'community-staging/gnash')
-rw-r--r--community-staging/gnash/PKGBUILD79
-rw-r--r--community-staging/gnash/gentoo-ffmpeg-0.8.patch204
-rw-r--r--community-staging/gnash/gnash-gtk.install12
3 files changed, 295 insertions, 0 deletions
diff --git a/community-staging/gnash/PKGBUILD b/community-staging/gnash/PKGBUILD
new file mode 100644
index 000000000..68f826412
--- /dev/null
+++ b/community-staging/gnash/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 82896 2010-06-18 18:30:20Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgbase=gnash
+pkgname=(gnash-common gnash-gtk)
+pkgver=0.8.9
+pkgrel=5
+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)
+md5sums=('5b2be6b04a1bcc5fb404cc377034499e'
+ '98dec9a5c1b1084245a3f46b4022a6e2')
+
+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"
+ ./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<boost::uint8_t**>(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<unsigned int>(_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
+}