aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia/gstreamer-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/gstreamer-plugins')
-rw-r--r--multimedia/gstreamer-plugins/Makefile14
-rw-r--r--multimedia/gstreamer-plugins/Makefile.common45
-rw-r--r--multimedia/gstreamer-plugins/distinfo24
-rw-r--r--multimedia/gstreamer-plugins/files/patch-sys_v4l_gstv4lelement.h11
-rw-r--r--multimedia/gstreamer-plugins/files/patch-sys_v4l_v4lsrc_calls.c261
-rw-r--r--multimedia/gstreamer-plugins/pkg-plist20
6 files changed, 351 insertions, 24 deletions
diff --git a/multimedia/gstreamer-plugins/Makefile b/multimedia/gstreamer-plugins/Makefile
index b054ca3600c..2b19734025d 100644
--- a/multimedia/gstreamer-plugins/Makefile
+++ b/multimedia/gstreamer-plugins/Makefile
@@ -3,7 +3,7 @@
# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports-stable/multimedia/gstreamer-plugins/Makefile,v 1.1 2007/12/02 17:08:48 ahze Exp $
+# $MCom: ports/multimedia/gstreamer-plugins/Makefile,v 1.111 2008/03/21 04:01:30 ahze Exp $
#
PORTNAME= gstreamer
@@ -27,20 +27,20 @@ COMMENT?= GStreamer written collection of plugins handling several media types
BUILD_DEPENDS+= v4l_compat>=1.0.20060801:${PORTSDIR}/multimedia/v4l_compat
LIB_DEPENDS+= gstreamer-0.10.0:${PORTSDIR}/multimedia/gstreamer \
popt.0:${PORTSDIR}/devel/popt \
- oil-0.3.1:${PORTSDIR}/devel/liboil
+ oil-0.3.0:${PORTSDIR}/devel/liboil
CFLAGS:= ${CFLAGS} -O2
-BASE_PORTVERSION= 0.10.15
+BASE_PORTVERSION= 0.10.18
BASE_DISTNAME= gst-plugins-base-${BASE_PORTVERSION}
BASE_DISTFILE= ${BASE_DISTNAME}${EXTRACT_SUFX}
-BAD_PORTVERSION= 0.10.5
+BAD_PORTVERSION= 0.10.6
BAD_DISTNAME= gst-plugins-bad-${BAD_PORTVERSION}
BAD_DISTFILE= ${BAD_DISTNAME}${EXTRACT_SUFX}
-GOOD_PORTVERSION= 0.10.6
+GOOD_PORTVERSION= 0.10.7
GOOD_DISTNAME= gst-plugins-good-${GOOD_PORTVERSION}
GOOD_DISTFILE= ${GOOD_DISTNAME}${EXTRACT_SUFX}
-UGLY_PORTVERSION= 0.10.6
+UGLY_PORTVERSION= 0.10.7
UGLY_DISTNAME= gst-plugins-ugly-${UGLY_PORTVERSION}
UGLY_DISTFILE= ${UGLY_DISTNAME}${EXTRACT_SUFX}
DIST?= good
@@ -51,7 +51,7 @@ VERSION= ${GST_VERSION}
WANT_GSTREAMER= yes
USE_BZIP2= yes
USE_GMAKE= yes
-USE_GNOME+= gnomehack gnometarget pkgconfig ltverhack
+USE_GNOME+= gnomehack gnometarget pkgconfig ltverhack ltasneededhack
USE_AUTOTOOLS= libtool:15
GST_PLUGIN?= base
diff --git a/multimedia/gstreamer-plugins/Makefile.common b/multimedia/gstreamer-plugins/Makefile.common
index 2a6dcb0c9fc..14937ec39de 100644
--- a/multimedia/gstreamer-plugins/Makefile.common
+++ b/multimedia/gstreamer-plugins/Makefile.common
@@ -1,9 +1,10 @@
# $FreeBSD$
-# $MCom: ports-stable/multimedia/gstreamer-plugins/Makefile.common,v 1.1 2007/12/02 17:08:48 ahze Exp $
+# $MCom: ports/multimedia/gstreamer-plugins/Makefile.common,v 1.68 2008/03/21 04:14:19 ahze Exp $
# base
BASE_GST_ALL_PLUGINS= \
alsa \
cdparanoia \
+ gio \
gnomevfs \
libvisual \
ogg \
@@ -12,19 +13,21 @@ BASE_GST_ALL_PLUGINS= \
vorbis
# bad
BAD_GST_ALL_PLUGINS+= \
- alsaspdif \
+ alsa \
amrwb \
bz2 \
cdaudio \
directfb \
divx \
dts \
+ dvb \
faac \
faad \
gsm \
ivorbis \
jack \
libmms \
+ metadata \
mpeg2enc \
musepack \
musicbrainz \
@@ -34,9 +37,11 @@ BAD_GST_ALL_PLUGINS+= \
sdl \
sndfile \
soundtouch \
+ soup \
spc \
swfdec \
timidity \
+ wildmidi \
x264 \
xvid
# ladspa \
@@ -58,6 +63,7 @@ GOOD_GST_ALL_PLUGINS+= \
ladspa \
libcaca \
libpng \
+ taglib \
raw1394 \
shout2 \
speex \
@@ -93,6 +99,7 @@ CONFIGURE_ARGS+= --enable-${GST_PLUGIN}
CONFIGURE_ARGS+=--disable-tests \
--disable-examples \
+ --disable-1394 \
--disable-amrnb \
--disable-alsa \
--disable-http \
@@ -103,6 +110,9 @@ CONFIGURE_ARGS+=--disable-tests \
--enable-oss \
--disable-osx_audio \
--disable-osx_video \
+ --disable-directdrawsink \
+ --disable-directsoundsink \
+ --disable-v4l2src \
--disable-tarkin \
--enable-static \
--disable-sunaudio \
@@ -134,6 +144,7 @@ gst_aalib_PLIST_FILES= ${GST_LIB_DIR}/libgstaasink.so \
${GST_LIB_DIR}/libgstaasink.la
# annodex
+gst_annodex_LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
# bz2
gst_bz2_DIST= bad
@@ -150,6 +161,9 @@ gst_cdparanoia_LIB_DEPENDS+= cdda_interface.0:${PORTSDIR}/audio/cdparanoia
gst_cdparanoia_EXTRA_LIBS+= -lgstcdda-${VERSION}
gst_cdparanoia_DIST= base
+# cdio
+gst_cdio_LIB_DEPENDS+= cdio.7:${PORTSDIR}/sysutils/libcdio
+
# dts
gst_dts_LIB_DEPENDS+= dca.0:${PORTSDIR}/multimedia/libdca
gst_dts_PLIST_FILES= ${GST_LIB_DIR}/libgstdtsdec.a \
@@ -206,6 +220,16 @@ gst_gconf_PLIST_FILES= ${GST_LIB_DIR}/libgstgconfelements.so \
${GST_LIB_DIR}/libgstgconfelements.a \
${GST_LIB_DIR}/libgstgconfelements.la
+# gdk_pixbuf
+gst_gdk_pixbuf_USE_GNOME+= gtk20
+gst_gdk_pixbuf_GST_PLUGIN_DIR= ext/gdk_pixbuf
+gst_gdk_pixbuf_PLIST_FILES= ${GST_LIB_DIR}/libgstgdkpixbuf.a \
+ ${GST_LIB_DIR}/libgstgdkpixbuf.la \
+ ${GST_LIB_DIR}/libgstgdkpixbuf.so
+# gio
+gst_gio_USE_GNOME+= glib20
+gst_gio_DIST= base
+
# gnomevfs
gst_gnomevfs_USE_GNOME+= gnomevfs2
gst_gnomevfs_CONFIGURE_ARGS+=--enable-gnome_vfs
@@ -224,6 +248,7 @@ gst_hal_LIB_DEPENDS+= hal.1:${PORTSDIR}/sysutils/hal
gst_hal_PLIST_FILES= ${GST_LIB_DIR}/libgsthalelements.a \
${GST_LIB_DIR}/libgsthalelements.la \
${GST_LIB_DIR}/libgsthalelements.so
+
# jack
gst_jack_LIB_DEPENDS+= jack.0:${PORTSDIR}/audio/jack
gst_jack_DIST= bad
@@ -328,6 +353,18 @@ gst_sidplay_DIST= ugly
gst_sndfile_LIB_DEPENDS+= sndfile.1:${PORTSDIR}/audio/libsndfile
gst_sndfile_DIST= bad
+# soundtouch
+gst_soundtouch_LIB_DEPENDS+= SoundTouch.0:${PORTSDIR}/audio/soundtouch
+gst_soundtouch_DIST= bad
+
+# souphttpsrc
+gst_soup_LIB_DEPENDS+= soup-2.4.1:${PORTSDIR}/devel/libsoup
+gst_soup_GST_PLUGIN_DIR=ext/soup
+gst_soup_PLIST_FILES= ${GST_LIB_DIR}/libgstsouphttpsrc.a \
+ ${GST_LIB_DIR}/libgstsouphttpsrc.la \
+ ${GST_LIB_DIR}/libgstsouphttpsrc.so
+gst_soup_DIST= bad
+
# spc
gst_spc_LIB_DEPENDS+= OpenSPC.3:${PORTSDIR}/audio/openspc
gst_spc_DIST= bad
@@ -338,6 +375,10 @@ gst_speex_LIB_DEPENDS+= speex.1:${PORTSDIR}/audio/speex
# swfdec
gst_swfdec_LIB_DEPENDS+=swfdec-0.4.1:${PORTSDIR}/graphics/swfdec
gst_swfdec_DIST= bad
+
+# taglib
+gst_taglib_LIB_DEPENDS+= tag.5:${PORTSDIR}audio/taglib
+
# theora
gst_theora_LIB_DEPENDS+= theora.0:${PORTSDIR}/multimedia/libtheora
gst_theora_DIST= base
diff --git a/multimedia/gstreamer-plugins/distinfo b/multimedia/gstreamer-plugins/distinfo
index f2349f2eb0e..b2538abda85 100644
--- a/multimedia/gstreamer-plugins/distinfo
+++ b/multimedia/gstreamer-plugins/distinfo
@@ -1,12 +1,12 @@
-MD5 (gst-plugins-base-0.10.15.tar.bz2) = 8449359b465074433fec626778bcf36f
-SHA256 (gst-plugins-base-0.10.15.tar.bz2) = 143a0fa2c0afffdca6b4707af8cf4cac15b405656272fd1e37db19fdc408fd16
-SIZE (gst-plugins-base-0.10.15.tar.bz2) = 1783866
-MD5 (gst-plugins-bad-0.10.5.tar.bz2) = 395f3ed705928e77e5620cccf11a8cff
-SHA256 (gst-plugins-bad-0.10.5.tar.bz2) = 9ac7eb27c9975d4cd24cd3da9b457e69790e4a8cbec75077f0f42fc8b0060eed
-SIZE (gst-plugins-bad-0.10.5.tar.bz2) = 1402345
-MD5 (gst-plugins-ugly-0.10.6.tar.bz2) = f1016148ecbfba968c0ef1773066988b
-SHA256 (gst-plugins-ugly-0.10.6.tar.bz2) = 9c514d4002fb2a2efc5c60e009c330be2ee05c28649d73de3aa45530161c2c62
-SIZE (gst-plugins-ugly-0.10.6.tar.bz2) = 773777
-MD5 (gst-plugins-good-0.10.6.tar.bz2) = 25f111360c2930705b91b4fcf93ae5c5
-SHA256 (gst-plugins-good-0.10.6.tar.bz2) = 9e9cd6a5e134c29400b9dc302e523684dca55d0f7f11eb4b06535b24e5032d66
-SIZE (gst-plugins-good-0.10.6.tar.bz2) = 1576121
+MD5 (gst-plugins-base-0.10.18.tar.bz2) = 422e654b049dedef6fdbf4456f2259d1
+SHA256 (gst-plugins-base-0.10.18.tar.bz2) = 72298b2d2ecd989c273f3952d534139b018beb1a4d2ce15c74cbdfe48ed15757
+SIZE (gst-plugins-base-0.10.18.tar.bz2) = 1911898
+MD5 (gst-plugins-bad-0.10.6.tar.bz2) = fb47838aa0ccef52683cea5d89364053
+SHA256 (gst-plugins-bad-0.10.6.tar.bz2) = c702dab34d3b330ec06d915a91a937dadb0a93ace25bbe8e337223ddb834efe6
+SIZE (gst-plugins-bad-0.10.6.tar.bz2) = 1776962
+MD5 (gst-plugins-ugly-0.10.7.tar.bz2) = cff4f55138d12152cf580a3ee71c2519
+SHA256 (gst-plugins-ugly-0.10.7.tar.bz2) = 556ba24072bdb32ee568adc682d69add1241d77936bc9563e50cdb953097be35
+SIZE (gst-plugins-ugly-0.10.7.tar.bz2) = 868172
+MD5 (gst-plugins-good-0.10.7.tar.bz2) = e02d729b22451f75414a27456ae5c16a
+SHA256 (gst-plugins-good-0.10.7.tar.bz2) = 9e12c58a794e61c0124b7d239eae731d4ac4863a4fc28147202d3811c3bce39d
+SIZE (gst-plugins-good-0.10.7.tar.bz2) = 1746120
diff --git a/multimedia/gstreamer-plugins/files/patch-sys_v4l_gstv4lelement.h b/multimedia/gstreamer-plugins/files/patch-sys_v4l_gstv4lelement.h
new file mode 100644
index 00000000000..d2f6ac43690
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-sys_v4l_gstv4lelement.h
@@ -0,0 +1,11 @@
+--- sys/v4l/gstv4lelement.h.orig 2008-02-23 15:31:39.000000000 -0500
++++ sys/v4l/gstv4lelement.h 2008-02-23 15:32:00.000000000 -0500
+@@ -91,6 +91,8 @@ struct _GstV4lElement {
+ /* X-overlay */
+ GstV4lXv *xv;
+ gulong xwindow_id;
++
++ gboolean use_read;
+ };
+
+ struct _GstV4lElementClass {
diff --git a/multimedia/gstreamer-plugins/files/patch-sys_v4l_v4lsrc_calls.c b/multimedia/gstreamer-plugins/files/patch-sys_v4l_v4lsrc_calls.c
new file mode 100644
index 00000000000..24088dc9fee
--- /dev/null
+++ b/multimedia/gstreamer-plugins/files/patch-sys_v4l_v4lsrc_calls.c
@@ -0,0 +1,261 @@
+--- sys/v4l/v4lsrc_calls.c.orig 2008-03-03 17:29:52.000000000 -0500
++++ sys/v4l/v4lsrc_calls.c 2008-03-20 23:50:39.000000000 -0400
+@@ -26,12 +26,14 @@
+
+ #include <stdlib.h>
+ #include <sys/types.h>
++#include <sys/uio.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <string.h>
+ #include <errno.h>
++#include <unistd.h>
+ #include "v4lsrc_calls.h"
+ #include <sys/time.h>
+
+@@ -87,6 +89,51 @@
+ return FALSE;
+ }
+
++ if (GST_V4LELEMENT (v4lsrc)->use_read) {
++ struct video_picture vp;
++ struct video_window vw;
++
++
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGPICT, &vp) == -1) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, WRITE, (NULL),
++ ("Error getting current picture info for frame (%d): %s", num, g_strerror (errno)));
++ return FALSE;
++ }
++
++ vp.palette = v4lsrc->mmap.format;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSPICT, &vp) == -1) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, WRITE, (NULL),
++ ("Error setting picture info for frame (%d): %s", num, g_strerror (errno)));
++ return FALSE;
++ }
++
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGWIN, &vw) == -1) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, WRITE, (NULL),
++ ("Error getting current window properties for frame (%d): %s", num, g_strerror (errno)));
++ return FALSE;
++ }
++
++ vw.width = v4lsrc->mmap.width;
++ vw.height = v4lsrc->mmap.height;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSWIN, &vw) == -1) {
++ vw.flags &= (0x3F00 - 1);
++ vw.flags |= 15 << 16;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSWIN, &vw) == -1) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, WRITE, (NULL),
++ ("Error setting window properties for frame (%d): %s", num, g_strerror (errno)));
++ return FALSE;
++ }
++ }
++
++
++ if (read(GST_V4LELEMENT (v4lsrc)->video_fd, GST_V4LELEMENT (v4lsrc)->buffer + (1024 * 768 * 3 * num), v4lsrc->mmap.width * v4lsrc->mmap.height * 3/2) < 0) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, WRITE, (NULL),
++ ("Error queueing a buffer (%d): %s", num, g_strerror (errno)));
++ return FALSE;
++ }
++ goto done;
++ }
++
+ /* instruct the driver to prepare capture using buffer frame num */
+ v4lsrc->mmap.frame = num;
+ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd,
+@@ -95,6 +142,7 @@
+ ("Error queueing a buffer (%d): %s", num, g_strerror (errno)));
+ return FALSE;
+ }
++done:
+
+ v4lsrc->frame_queue_state[num] = QUEUE_STATE_QUEUED;
+ v4lsrc->num_queued++;
+@@ -117,6 +165,10 @@
+ return FALSE;
+ }
+
++ if (GST_V4LELEMENT (v4lsrc)->use_read) {
++ goto done;
++ }
++
+ while (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSYNC, &num) < 0) {
+ /* if the sync() got interrupted, we can retry */
+ if (errno != EINTR) {
+@@ -126,6 +178,7 @@
+ }
+ GST_DEBUG_OBJECT (v4lsrc, "Sync got interrupted");
+ }
++done:
+ GST_LOG_OBJECT (v4lsrc, "VIOIOCSYNC on frame %d done", num);
+
+ v4lsrc->frame_queue_state[num] = QUEUE_STATE_SYNCED;
+@@ -168,13 +221,28 @@
+ GST_V4L_CHECK_OPEN (GST_V4LELEMENT (v4lsrc));
+ GST_V4L_CHECK_NOT_ACTIVE (GST_V4LELEMENT (v4lsrc));
+
++ GST_V4LELEMENT (v4lsrc)->use_read = FALSE;
++
+ /* request the mmap buffer info:
+ * total size of mmap buffer, number of frames, offsets of frames */
+ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGMBUF,
+ &(v4lsrc->mbuf)) < 0) {
+- GST_ELEMENT_ERROR (v4lsrc, RESOURCE, READ, (NULL),
+- ("Error getting buffer information: %s", g_strerror (errno)));
+- return FALSE;
++ int i;
++
++ GST_V4LELEMENT (v4lsrc)->buffer = (guint8 *) g_malloc0 (sizeof (guint8) * 1024 * 768 * 3 * MIN_BUFFERS_QUEUED);
++ GST_V4LELEMENT (v4lsrc)->use_read = TRUE;
++
++ v4lsrc->frame_queue_state = (gint8 *) g_malloc (sizeof (gint8) * MIN_BUFFERS_QUEUED);
++
++ v4lsrc->mbuf.frames = MIN_BUFFERS_QUEUED;
++ for (i = 0; i < MIN_BUFFERS_QUEUED; i++) {
++ v4lsrc->mbuf.offsets[i] = (1024 * 768 * 3 * i);
++ }
++
++ /* lock for the frame_state */
++ v4lsrc->mutex_queue_state = g_mutex_new ();
++ v4lsrc->cond_queue_state = g_cond_new ();
++ goto done;
+ }
+
+ if (v4lsrc->mbuf.frames < MIN_BUFFERS_QUEUED) {
+@@ -205,6 +273,7 @@
+ GST_V4LELEMENT (v4lsrc)->buffer = NULL;
+ return FALSE;
+ }
++done:
+
+ return TRUE;
+ }
+@@ -413,10 +482,14 @@
+ v4lsrc->frame_queue_state = NULL;
+
+ /* unmap the buffer */
+- if (munmap (GST_V4LELEMENT (v4lsrc)->buffer, v4lsrc->mbuf.size) == -1) {
+- GST_ELEMENT_ERROR (v4lsrc, RESOURCE, CLOSE, (NULL),
+- ("error munmap'ing capture buffer: %s", g_strerror (errno)));
+- return FALSE;
++ if (GST_V4LELEMENT (v4lsrc)->use_read) {
++ g_free (GST_V4LELEMENT (v4lsrc)->buffer);
++ } else {
++ if (munmap (GST_V4LELEMENT (v4lsrc)->buffer, v4lsrc->mbuf.size) == -1) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, CLOSE, (NULL),
++ ("error munmap'ing capture buffer: %s", g_strerror (errno)));
++ return FALSE;
++ }
+ }
+ GST_V4LELEMENT (v4lsrc)->buffer = NULL;
+
+@@ -446,6 +519,7 @@
+ /* so, we need a buffer and some more stuff */
+ int frame = 0;
+ guint8 *buffer;
++ gboolean use_read = FALSE;
+ struct video_mbuf vmbuf;
+ struct video_mmap vmmap;
+
+@@ -456,24 +530,72 @@
+
+ /* let's start by requesting a buffer and mmap()'ing it */
+ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGMBUF, &vmbuf) < 0) {
+- GST_ELEMENT_ERROR (v4lsrc, RESOURCE, READ, (NULL),
+- ("Error getting buffer information: %s", g_strerror (errno)));
+- return FALSE;
+- }
+- /* Map the buffers */
+- buffer = mmap (NULL, vmbuf.size, PROT_READ | PROT_WRITE,
+- MAP_SHARED, GST_V4LELEMENT (v4lsrc)->video_fd, 0);
+- if (buffer == MAP_FAILED) {
+- GST_ELEMENT_ERROR (v4lsrc, RESOURCE, OPEN_READ_WRITE, (NULL),
+- ("Error mapping our try-out buffer: %s", g_strerror (errno)));
+- return FALSE;
+- }
++ buffer = (gint8 *) g_malloc0 (sizeof (gint8) * 1024 * 768 * 3);
++ use_read = TRUE;
++ } else {
++ /* Map the buffers */
++ buffer = mmap (0, vmbuf.size, PROT_READ | PROT_WRITE,
++ MAP_SHARED, GST_V4LELEMENT (v4lsrc)->video_fd, 0);
++ if (buffer == MAP_FAILED) {
++ GST_ELEMENT_ERROR (v4lsrc, RESOURCE, OPEN_READ_WRITE, (NULL),
++ ("Error mapping our try-out buffer: %s", g_strerror (errno)));
++ return FALSE;
++ }
++ }
+
+ /* now that we have a buffer, let's try out our format */
+ vmmap.width = width;
+ vmmap.height = height;
+ vmmap.format = palette;
+ vmmap.frame = frame;
++ if (use_read) {
++ struct video_picture vp;
++ struct video_window vw;
++
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGWIN, &vw) == -1) {
++ GST_ERROR_OBJECT (v4lsrc,
++ "Error getting current window properties: %s", g_strerror (errno));
++ g_free (buffer);
++ return FALSE;
++ }
++
++ vw.width = width;
++ vw.height = height;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSWIN, &vw) == -1) {
++ vw.flags &= (0x3F00 - 1);
++ vw.flags |= 15 << 16;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSWIN, &vw) == -1) {
++ GST_ERROR_OBJECT (v4lsrc,
++ "Error setting window properties: %s", g_strerror (errno));
++ g_free (buffer);
++ return FALSE;
++ }
++ }
++
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCGPICT, &vp) == -1) {
++ GST_ERROR_OBJECT (v4lsrc,
++ "Error getting current picture info: %s", g_strerror (errno));
++ g_free (buffer);
++ return FALSE;
++ }
++
++ vp.palette = palette;
++ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCSPICT, &vp) == -1) {
++ GST_ERROR_OBJECT (v4lsrc,
++ "Error setting picture info: %s", g_strerror (errno));
++ g_free (buffer);
++ return FALSE;
++ }
++
++
++ if (read (GST_V4LELEMENT (v4lsrc)->video_fd, buffer, width * height * 3/2) < 0) {
++ GST_ERROR_OBJECT (v4lsrc,
++ "Error reading into our try-out buffer: %s", g_strerror (errno));
++ g_free (buffer);
++ return FALSE;
++ }
++ goto done;
++ }
+ if (ioctl (GST_V4LELEMENT (v4lsrc)->video_fd, VIDIOCMCAPTURE, &vmmap) < 0) {
+ if (errno != EINVAL) /* our format failed! */
+ GST_ERROR_OBJECT (v4lsrc,
+@@ -488,7 +610,11 @@
+ return FALSE;
+ }
+
+- munmap (buffer, vmbuf.size);
++done:
++ if (use_read)
++ g_free (buffer);
++ else
++ munmap (buffer, vmbuf.size);
+
+ /* if we got here, it worked! woohoo, the format is supported! */
+ return TRUE;
diff --git a/multimedia/gstreamer-plugins/pkg-plist b/multimedia/gstreamer-plugins/pkg-plist
index 9604abee98f..4d856ec048c 100644
--- a/multimedia/gstreamer-plugins/pkg-plist
+++ b/multimedia/gstreamer-plugins/pkg-plist
@@ -34,6 +34,7 @@ include/gstreamer-%%VERSION%%/gst/netbuffer/gstnetbuffer.h
include/gstreamer-%%VERSION%%/gst/pbutils/descriptions.h
include/gstreamer-%%VERSION%%/gst/pbutils/install-plugins.h
include/gstreamer-%%VERSION%%/gst/pbutils/missing-plugins.h
+include/gstreamer-%%VERSION%%/gst/pbutils/pbutils-enumtypes.h
include/gstreamer-%%VERSION%%/gst/pbutils/pbutils.h
include/gstreamer-%%VERSION%%/gst/riff/riff-ids.h
include/gstreamer-%%VERSION%%/gst/riff/riff-media.h
@@ -102,9 +103,6 @@ lib/gstreamer-%%VERSION%%/libgsttcp.so
lib/gstreamer-%%VERSION%%/libgsttypefindfunctions.a
lib/gstreamer-%%VERSION%%/libgsttypefindfunctions.la
lib/gstreamer-%%VERSION%%/libgsttypefindfunctions.so
-lib/gstreamer-%%VERSION%%/libgsturidecodebin.a
-lib/gstreamer-%%VERSION%%/libgsturidecodebin.la
-lib/gstreamer-%%VERSION%%/libgsturidecodebin.so
lib/gstreamer-%%VERSION%%/libgstvideo4linux.a
lib/gstreamer-%%VERSION%%/libgstvideo4linux.la
lib/gstreamer-%%VERSION%%/libgstvideo4linux.so
@@ -174,10 +172,24 @@ lib/libgstvideo-%%VERSION%%.a
lib/libgstvideo-%%VERSION%%.la
lib/libgstvideo-%%VERSION%%.so
lib/libgstvideo-%%VERSION%%.so.0
+libdata/pkgconfig/gstreamer-audio-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-cdda-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-fft-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-floatcast-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-interfaces-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-netbuffer-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-pbutils-%%VERSION%%.pc
libdata/pkgconfig/gstreamer-plugins-base-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-riff-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-rtp-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-rtsp-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-sdp-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-tag-%%VERSION%%.pc
+libdata/pkgconfig/gstreamer-video-%%VERSION%%.pc
share/locale/af/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/az/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/bg/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
+share/locale/ca/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/cs/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/da/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/de/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
@@ -186,10 +198,12 @@ share/locale/es/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/fi/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/hu/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/it/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
+share/locale/lt/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/nb/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/nl/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/or/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/pl/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
+share/locale/sk/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/sq/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/sr/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo
share/locale/sv/LC_MESSAGES/gst-plugins-base-%%VERSION%%.mo