summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2009-02-22 07:42:51 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2009-02-22 07:42:51 +0800
commita3b39fb2251626b5e1f6cebca23e1b97703f995d (patch)
tree7041baa560933c4ce7bf7a4a845f5320837bccaa
parentd6ed228463d9df960e61436f19013c8f5950a1d5 (diff)
downloadmarcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar.gz
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar.bz2
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar.lz
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar.xz
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.tar.zst
marcuscom-ports-a3b39fb2251626b5e1f6cebca23e1b97703f995d.zip
Update to 0.9.2.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@11901 df743ca5-7f9a-e211-a948-0013205c9059
-rw-r--r--graphics/swfdec/Makefile48
-rw-r--r--graphics/swfdec/distinfo3
-rw-r--r--graphics/swfdec/files/patch-configure24
-rw-r--r--graphics/swfdec/files/patch-swfdec-gtk_Makefile.in10
-rw-r--r--graphics/swfdec/files/swfdec_playback_oss.c265
-rw-r--r--graphics/swfdec/pkg-descr6
-rw-r--r--graphics/swfdec/pkg-plist88
-rw-r--r--www/swfdec-plugin/Makefile31
-rw-r--r--www/swfdec-plugin/distinfo3
-rw-r--r--www/swfdec-plugin/pkg-descr8
-rw-r--r--www/swfdec-plugin/pkg-plist10
11 files changed, 496 insertions, 0 deletions
diff --git a/graphics/swfdec/Makefile b/graphics/swfdec/Makefile
new file mode 100644
index 000000000..c2adccc8b
--- /dev/null
+++ b/graphics/swfdec/Makefile
@@ -0,0 +1,48 @@
+# ex:ts=8
+# Ports collection makefile for: swfdec
+# Date created: Apr 5, 2003
+# Whom: ijliao
+#
+# $FreeBSD$
+# $MCom$
+
+PORTNAME= swfdec
+PORTVERSION= 0.9.2
+CATEGORIES= graphics
+MASTER_SITES= http://swfdec.freedesktop.org/download/swfdec/${PORTVERSION:R}/
+
+MAINTAINER= kwm@FreeBSD.org
+COMMENT= Flash Rendering Library
+
+LIB_DEPENDS= oil-0.3.0:${PORTSDIR}/devel/liboil \
+ soup-2.4.1:${PORTSDIR}/devel/libsoup
+
+USE_LDCONFIG= yes
+USE_GNOME= gnomehack gtk20 ltverhack
+USE_GSTREAMER= core good mp3 ffmpeg
+USE_AUTOTOOLS= libtool:15
+CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-Wl,-Bsymbolic -L${LOCALBASE}/lib"
+
+PLIST_SUB= VERSION=${PORTVERSION:R}
+
+OPTIONS= PULSEAUDIO "Enable the PulseAudio sound module" off
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_PULSEAUDIO)
+LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio
+CONFIGURE_ARGS+= --with-audio=pulse
+.else
+CONFIGURE_ARGS+= --with-audio=oss
+.endif
+
+post-extract:
+ @${CP} ${FILESDIR}/swfdec_playback_oss.c \
+ ${WRKSRC}/swfdec-gtk
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|-Wmissing-include-dirs||g' \
+ ${WRKSRC}/configure
+
+.include <bsd.port.post.mk>
diff --git a/graphics/swfdec/distinfo b/graphics/swfdec/distinfo
new file mode 100644
index 000000000..2af4511f2
--- /dev/null
+++ b/graphics/swfdec/distinfo
@@ -0,0 +1,3 @@
+MD5 (swfdec-0.9.2.tar.gz) = 7be5e39236e2d6efa61a18e83e5ab73d
+SHA256 (swfdec-0.9.2.tar.gz) = 7d56a3044c19e7ca4b492f3739d9aa6f6bdb6e51ecf4daa5d29c035ae430f1ef
+SIZE (swfdec-0.9.2.tar.gz) = 10016751
diff --git a/graphics/swfdec/files/patch-configure b/graphics/swfdec/files/patch-configure
new file mode 100644
index 000000000..4f14187ab
--- /dev/null
+++ b/graphics/swfdec/files/patch-configure
@@ -0,0 +1,24 @@
+--- configure.orig 2008-08-14 12:43:55.000000000 -0400
++++ configure 2008-08-14 12:45:51.000000000 -0400
+@@ -1563,7 +1563,7 @@ Optional Packages:
+ both]
+ --with-tags[=TAGS] include additional configurations [automatic]
+ --with-pkg-config-path colon-separated list of pkg-config(1) dirs
+- --with-audio=[auto/pulse/none]
++ --with-audio=[auto/pulse/oss/none]
+ audio backend to use
+ --with-html-dir=PATH path to installed docs
+
+@@ -22752,6 +22752,12 @@ echo "$as_me: WARNING: no alsa audio sup
+ fi
+ fi
+
++if test "$with_audio" = "oss"; then
++ AUDIO_TYPE=oss
++ AUDIO_CFLAGS=
++ AUDIO_LIBS=
++fi
++
+ if test "$with_audio" = "pulse"; then
+
+ pkg_failed=no
diff --git a/graphics/swfdec/files/patch-swfdec-gtk_Makefile.in b/graphics/swfdec/files/patch-swfdec-gtk_Makefile.in
new file mode 100644
index 000000000..ddd87704a
--- /dev/null
+++ b/graphics/swfdec/files/patch-swfdec-gtk_Makefile.in
@@ -0,0 +1,10 @@
+--- swfdec-gtk/Makefile.in.orig 2008-08-14 12:41:05.000000000 -0400
++++ swfdec-gtk/Makefile.in 2008-08-14 12:45:58.000000000 -0400
+@@ -281,6 +282,7 @@ libswfdec_@SWFDEC_MAJORMINOR@include_HEA
+
+ EXTRA_DIST = \
+ swfdec_playback_alsa.c \
++ swfdec_playback_oss.c \
+ swfdec_playback_pulse.c \
+ swfdec_playback_none.c
+
diff --git a/graphics/swfdec/files/swfdec_playback_oss.c b/graphics/swfdec/files/swfdec_playback_oss.c
new file mode 100644
index 000000000..160f26db9
--- /dev/null
+++ b/graphics/swfdec/files/swfdec_playback_oss.c
@@ -0,0 +1,265 @@
+/* Swfdec
+ * Copyright © 2006 Benjamin Otte <otte@gnome.org>
+ * Copyright © 2007 Eric Anholt <eric@anholt.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/ioctl.h>
+#include <sys/soundcard.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "swfdec_playback.h"
+
+/** @file Implements swfdec audio playback by opening /dev/dsp per stream
+ * and playing out through that.
+ *
+ * Allowing multiple access to /dev/dsp is not required by the OSS API spec,
+ * but FreeBSD's sound system lets you, which is what this file was written
+ * for.
+ */
+
+/*** DEFINITIONS ***/
+
+struct _SwfdecPlayback {
+ SwfdecPlayer * player;
+ GList * streams; /* all Stream objects */
+ GMainContext * context; /* context we work in */
+};
+
+typedef struct {
+ SwfdecPlayback * sound; /* reference to sound object */
+ SwfdecAudio * audio; /* the audio we play back */
+ int dsp_fd;
+ int fragsize; /* Audio fragment size */
+ GSource * source; /* source for writing data */
+ guint offset; /* offset into sound */
+} Stream;
+
+/* Size of one of our audio samples, in bytes */
+#define SAMPLESIZE 2
+#define CHANNELS 2
+
+/*** STREAMS ***/
+
+static gboolean
+handle_stream (GIOChannel *source, GIOCondition cond, gpointer data)
+{
+ Stream *stream = data;
+ char *frag = malloc(stream->fragsize);
+
+ if (frag == NULL) {
+ g_printerr ("Failed to allocate fragment of size %d\n",
+ stream->fragsize);
+ return FALSE;
+ }
+
+ while (TRUE) {
+ int ret;
+ audio_buf_info spaceinfo;
+
+ ret = ioctl(stream->dsp_fd, SNDCTL_DSP_GETOSPACE, &spaceinfo);
+ if (ret == -1) {
+ g_printerr ("Failed to get output buffer availability\n");
+ free(frag);
+ return FALSE;
+ }
+
+ if (spaceinfo.fragments == 0)
+ break;
+
+ memset (frag, 0, stream->fragsize);
+ swfdec_audio_render (stream->audio, (gint16 *)frag, stream->offset,
+ stream->fragsize / SAMPLESIZE / CHANNELS);
+
+ ret = write (stream->dsp_fd, frag, stream->fragsize);
+ if (ret != stream->fragsize) {
+ g_printerr ("Failed to write fragment\n");
+ free(frag);
+ return FALSE;
+ }
+
+ stream->offset += stream->fragsize / SAMPLESIZE / CHANNELS;
+ }
+
+ free(frag);
+
+ return TRUE;
+}
+
+static void
+swfdec_playback_stream_open (SwfdecPlayback *sound, SwfdecAudio *audio)
+{
+ GIOChannel *channel;
+ Stream *stream;
+ guint rate;
+ int dsp_fd, ret, format, channels, fragsize;
+
+ dsp_fd = open("/dev/dsp", O_WRONLY);
+ if (dsp_fd == -1) {
+ g_printerr ("Failed to open /dev/dsp\n");
+ return;
+ }
+
+ format = AFMT_S16_LE;
+ ret = ioctl(dsp_fd, SNDCTL_DSP_SETFMT, &format);
+ if (ret == -1) {
+ g_printerr ("Failed to set sound format\n");
+ close(dsp_fd);
+ return;
+ }
+
+ channels = 2;
+ ret = ioctl(dsp_fd, SNDCTL_DSP_CHANNELS, &channels);
+ if (ret == -1) {
+ g_printerr ("Failed to set stereo\n");
+ close(dsp_fd);
+ return;
+ }
+
+ rate = 44100;
+ ret = ioctl(dsp_fd, SNDCTL_DSP_SPEED, &rate);
+ if (ret == -1) {
+ g_printerr ("Failed to set rate\n");
+ close(dsp_fd);
+ return;
+ }
+
+ ret = ioctl(dsp_fd, SNDCTL_DSP_GETBLKSIZE, &fragsize);
+ if (ret == -1) {
+ g_printerr ("Failed to get fragment size\n");
+ close(dsp_fd);
+ return;
+ }
+
+ stream = g_new0 (Stream, 1);
+ stream->sound = sound;
+ stream->audio = g_object_ref (audio);
+ stream->dsp_fd = dsp_fd;
+ stream->fragsize = fragsize;
+ sound->streams = g_list_prepend (sound->streams, stream);
+
+ channel = g_io_channel_unix_new (stream->dsp_fd);
+ stream->source = g_io_create_watch (channel, G_IO_OUT);
+ g_source_set_priority (stream->source, G_PRIORITY_HIGH);
+ g_source_set_callback (stream->source, (GSourceFunc) handle_stream, stream,
+ NULL);
+ g_io_channel_unref (channel);
+ g_source_attach (stream->source, stream->sound->context);
+
+ return;
+}
+
+static void
+swfdec_playback_stream_close (Stream *stream)
+{
+ close (stream->dsp_fd);
+ g_source_destroy (stream->source);
+ g_source_unref (stream->source);
+ stream->sound->streams = g_list_remove (stream->sound->streams, stream);
+ g_object_unref (stream->audio);
+ g_free (stream);
+}
+
+/*** SOUND ***/
+
+static void
+advance_before (SwfdecPlayer *player, guint msecs, guint audio_samples, gpointer data)
+{
+ SwfdecPlayback *sound = data;
+ GList *walk;
+
+ for (walk = sound->streams; walk; walk = walk->next) {
+ Stream *stream = walk->data;
+ if (audio_samples >= stream->offset) {
+ stream->offset = 0;
+ } else {
+ stream->offset -= audio_samples;
+ }
+ }
+}
+
+static void
+audio_added (SwfdecPlayer *player, SwfdecAudio *audio, SwfdecPlayback *sound)
+{
+ swfdec_playback_stream_open (sound, audio);
+}
+
+static void
+audio_removed (SwfdecPlayer *player, SwfdecAudio *audio, SwfdecPlayback *sound)
+{
+ GList *walk;
+
+ for (walk = sound->streams; walk; walk = walk->next) {
+ Stream *stream = walk->data;
+ if (stream->audio == audio) {
+ swfdec_playback_stream_close (stream);
+ return;
+ }
+ }
+ g_assert_not_reached ();
+}
+
+SwfdecPlayback *
+swfdec_playback_open (SwfdecPlayer *player, GMainContext *context)
+{
+ SwfdecPlayback *sound;
+ const GList *walk;
+
+ g_return_val_if_fail (SWFDEC_IS_PLAYER (player), NULL);
+ g_return_val_if_fail (context != NULL, NULL);
+
+ sound = g_new0 (SwfdecPlayback, 1);
+ sound->player = player;
+ g_signal_connect (player, "advance", G_CALLBACK (advance_before), sound);
+ g_signal_connect (player, "audio-added", G_CALLBACK (audio_added), sound);
+ g_signal_connect (player, "audio-removed", G_CALLBACK (audio_removed), sound);
+ for (walk = swfdec_player_get_audio (player); walk; walk = walk->next) {
+ swfdec_playback_stream_open (sound, walk->data);
+ }
+ g_main_context_ref (context);
+ sound->context = context;
+ return sound;
+}
+
+void
+swfdec_playback_close (SwfdecPlayback *sound)
+{
+#define REMOVE_HANDLER_FULL(obj,func,data,count) G_STMT_START {\
+ if (g_signal_handlers_disconnect_by_func ((obj), \
+ G_CALLBACK (func), (data)) != (count)) { \
+ g_assert_not_reached (); \
+ } \
+} G_STMT_END
+#define REMOVE_HANDLER(obj,func,data) REMOVE_HANDLER_FULL (obj, func, data, 1)
+
+ while (sound->streams)
+ swfdec_playback_stream_close (sound->streams->data);
+ REMOVE_HANDLER (sound->player, advance_before, sound);
+ REMOVE_HANDLER (sound->player, audio_added, sound);
+ REMOVE_HANDLER (sound->player, audio_removed, sound);
+ g_main_context_unref (sound->context);
+ g_free (sound);
+}
+
+
diff --git a/graphics/swfdec/pkg-descr b/graphics/swfdec/pkg-descr
new file mode 100644
index 000000000..7e094c545
--- /dev/null
+++ b/graphics/swfdec/pkg-descr
@@ -0,0 +1,6 @@
+Swfdec is a library for rendering Flash animations and games. It was
+originally designed as a basis library for creating Flash plugins for
+GStreamer, but it is a fully standalone library which only use the
+libart library for drawing.
+
+WWW: http://www.schleef.org/swfdec/
diff --git a/graphics/swfdec/pkg-plist b/graphics/swfdec/pkg-plist
new file mode 100644
index 000000000..139848184
--- /dev/null
+++ b/graphics/swfdec/pkg-plist
@@ -0,0 +1,88 @@
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec-gtk.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_keys.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_loader.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_player.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_socket.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_system.h
+include/swfdec-%%VERSION%%/swfdec-gtk/swfdec_gtk_widget.h
+include/swfdec-%%VERSION%%/swfdec/swfdec.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_array.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_context.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_debugger.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_frame.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_function.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_native_function.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_object.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_relay.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_string_value.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_as_types.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_audio.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_buffer.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_enums.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_file_loader.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_gc_object.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_keys.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_loader.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_player.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_player_scripting.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_rectangle.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_renderer.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_script.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_socket.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_stream.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_system.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_url.h
+include/swfdec-%%VERSION%%/swfdec/swfdec_version.h
+lib/libswfdec-%%VERSION%%.a
+lib/libswfdec-%%VERSION%%.la
+lib/libswfdec-%%VERSION%%.so
+lib/libswfdec-%%VERSION%%.so.2
+lib/libswfdec-gtk-%%VERSION%%.a
+lib/libswfdec-gtk-%%VERSION%%.la
+lib/libswfdec-gtk-%%VERSION%%.so
+lib/libswfdec-gtk-%%VERSION%%.so.2
+libdata/pkgconfig/swfdec-%%VERSION%%.pc
+libdata/pkgconfig/swfdec-gtk-%%VERSION%%.pc
+share/gtk-doc/html/swfdec/SwfdecAsContext.html
+share/gtk-doc/html/swfdec/SwfdecAsDebugger.html
+share/gtk-doc/html/swfdec/SwfdecAsFunction.html
+share/gtk-doc/html/swfdec/SwfdecAsRelay.html
+share/gtk-doc/html/swfdec/SwfdecAudio.html
+share/gtk-doc/html/swfdec/SwfdecGtkPlayer.html
+share/gtk-doc/html/swfdec/SwfdecGtkWidget.html
+share/gtk-doc/html/swfdec/SwfdecLoader.html
+share/gtk-doc/html/swfdec/SwfdecPlayer.html
+share/gtk-doc/html/swfdec/SwfdecPlayerScripting.html
+share/gtk-doc/html/swfdec/SwfdecRenderer.html
+share/gtk-doc/html/swfdec/SwfdecSocket.html
+share/gtk-doc/html/swfdec/SwfdecStream.html
+share/gtk-doc/html/swfdec/SwfdecSystem.html
+share/gtk-doc/html/swfdec/ch01.html
+share/gtk-doc/html/swfdec/ch02.html
+share/gtk-doc/html/swfdec/ch03.html
+share/gtk-doc/html/swfdec/ch04.html
+share/gtk-doc/html/swfdec/home.png
+share/gtk-doc/html/swfdec/index.html
+share/gtk-doc/html/swfdec/index.sgml
+share/gtk-doc/html/swfdec/ix01.html
+share/gtk-doc/html/swfdec/left.png
+share/gtk-doc/html/swfdec/right.png
+share/gtk-doc/html/swfdec/style.css
+share/gtk-doc/html/swfdec/swfdec-Arrays.html
+share/gtk-doc/html/swfdec/swfdec-Enumerations-and-Types.html
+share/gtk-doc/html/swfdec/swfdec-Gtk-extension-objects.html
+share/gtk-doc/html/swfdec/swfdec-Internals.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecAsFrame.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecAsObject.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecAsValue.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecBuffer.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecRectangle.html
+share/gtk-doc/html/swfdec/swfdec-SwfdecURL.html
+share/gtk-doc/html/swfdec/swfdec-Version-Information.html
+share/gtk-doc/html/swfdec/swfdec.devhelp
+share/gtk-doc/html/swfdec/swfdec.devhelp2
+share/gtk-doc/html/swfdec/up.png
+@dirrm share/gtk-doc/html/swfdec
+@dirrm include/swfdec-%%VERSION%%/swfdec-gtk
+@dirrm include/swfdec-%%VERSION%%/swfdec
+@dirrm include/swfdec-%%VERSION%%
diff --git a/www/swfdec-plugin/Makefile b/www/swfdec-plugin/Makefile
new file mode 100644
index 000000000..072545cfe
--- /dev/null
+++ b/www/swfdec-plugin/Makefile
@@ -0,0 +1,31 @@
+# Ports collection makefile for: swfdec-plugin
+# Date created: Jun 14, 2005
+# Whom: anholt
+#
+# $FreeBSD$
+#
+
+PORTNAME= swfdec-plugin
+PORTVERSION= 0.9.2
+CATEGORIES= www
+MASTER_SITES= http://swfdec.freedesktop.org/download/swfdec-mozilla/${PORTVERSION:R}/
+DISTNAME= swfdec-mozilla-${PORTVERSION}
+
+MAINTAINER= kwm@FreeBSD.org
+COMMENT= Flash rendering plugin
+
+LIB_DEPENDS= swfdec-0.9:${PORTSDIR}/graphics/swfdec
+
+USE_AUTOTOOLS= libtool:15
+INSTALLS_ICONS= yes
+USE_GNOME= gtk20
+CONFIGURE_ARGS= --with-plugin-dir="${WEBPLUGINS_DIR}"
+
+USE_LDCONFIG= yes
+
+USE_WEBPLUGINS= gecko*
+WEBPLUGINS_FILES=libswfdecmozilla.so
+
+.include <bsd.port.pre.mk>
+.include "${PORTSDIR}/www/firefox/Makefile.webplugins"
+.include <bsd.port.post.mk>
diff --git a/www/swfdec-plugin/distinfo b/www/swfdec-plugin/distinfo
new file mode 100644
index 000000000..b185f126e
--- /dev/null
+++ b/www/swfdec-plugin/distinfo
@@ -0,0 +1,3 @@
+MD5 (swfdec-mozilla-0.9.2.tar.gz) = 5e19c365d02f1ece2e7caec13c2b23d4
+SHA256 (swfdec-mozilla-0.9.2.tar.gz) = 8c8cfb52b47efabefab90577fb118ab2699c803cebbc82891700f8e2d712343b
+SIZE (swfdec-mozilla-0.9.2.tar.gz) = 381189
diff --git a/www/swfdec-plugin/pkg-descr b/www/swfdec-plugin/pkg-descr
new file mode 100644
index 000000000..c217ddea0
--- /dev/null
+++ b/www/swfdec-plugin/pkg-descr
@@ -0,0 +1,8 @@
+swfdec-plugin is a Mozilla plugin for rendering flash (.swf) animations using
+the gstreamer framework and the swfdec library. It should currently play Flash
+4 files, and Flash 5 support is under development.
+
+WWW: http://www.schleef.org/swfdec/
+
+- Eric Anholt
+anholt@FreeBSD.org
diff --git a/www/swfdec-plugin/pkg-plist b/www/swfdec-plugin/pkg-plist
new file mode 100644
index 000000000..02ca9225c
--- /dev/null
+++ b/www/swfdec-plugin/pkg-plist
@@ -0,0 +1,10 @@
+%%WEBPLUGINS_DIR%%/libswfdecmozilla.a
+%%WEBPLUGINS_DIR%%/libswfdecmozilla.la
+%%WEBPLUGINS_DIR%%/libswfdecmozilla.so
+share/icons/hicolor/16x16/apps/swfdec-mozilla.png
+share/icons/hicolor/22x22/apps/swfdec-mozilla.png
+share/icons/hicolor/24x24/apps/swfdec-mozilla.png
+share/icons/hicolor/32x32/apps/swfdec-mozilla.png
+share/icons/hicolor/48x48/apps/swfdec-mozilla.png
+share/icons/hicolor/scalable/apps/swfdec-mozilla.svg
+@dirrmtry %%WEBPLUGINS_DIR%%