diff options
Diffstat (limited to 'multimedia/gstreamer-plugins')
-rw-r--r-- | multimedia/gstreamer-plugins/Makefile | 14 | ||||
-rw-r--r-- | multimedia/gstreamer-plugins/Makefile.common | 45 | ||||
-rw-r--r-- | multimedia/gstreamer-plugins/distinfo | 24 | ||||
-rw-r--r-- | multimedia/gstreamer-plugins/files/patch-sys_v4l_gstv4lelement.h | 11 | ||||
-rw-r--r-- | multimedia/gstreamer-plugins/files/patch-sys_v4l_v4lsrc_calls.c | 261 | ||||
-rw-r--r-- | multimedia/gstreamer-plugins/pkg-plist | 20 |
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 |