From: Sangchul Lee Date: Tue, 21 Aug 2012 13:53:54 +0000 (+0900) Subject: tizen 2.0 init X-Git-Tag: 2.0_alpha^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=HEAD;hp=b1065bf2a5159183bde18dcd95c988ea42b86f83;p=framework%2Fmultimedia%2Fgst-plugins-good0.10.git tizen 2.0 init --- diff --git a/ChangeLog b/ChangeLog index f3f392a..efd0205 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,4413 @@ +=== release 0.10.31 === + +2012-02-21 Tim-Philipp Müller + + * configure.ac: + releasing 0.10.31, "Faster" + +2012-02-20 12:22:12 -0500 Olivier Crête + + * gst/rtp/gstrtph264pay.c: + rtph264pay: force baseline profile is profile-level-id is unspecified + If profile-level-id is missing or invalid, we want any upstream + encoder to default to baseline profile, so specify that in the + caps we pass upstream. If the caps contain no profile restriction, + an encoder may default to high or main profile. + +2012-02-17 17:21:53 +0000 Tim-Philipp Müller + + * gst/equalizer/gstiirequalizer.c: + equalizer: fix switching from passthrough to non-passthrough when parameters change + commit b5bf0294 moved the if(need_new_coefficients) set_passthrough(equ) + after the if(is_passthrough) return FLOW_OK shortcut, so the passthrough + mode would never get updated even if the coefficients change. + Fixes equalizer-test doing .. nothing. + +2012-02-16 17:14:20 +0800 Gary Ching-Pang Lin + + * sys/v4l2/v4l2_calls.c: + v4l2src: failure to query some optional controls is not a fatal error + Don't post a (fatal) error message on the bus just because we + failed to query some control. Fixes issue with built-in + Suyin Corp webcam for HP notebook (usbid 064e:e28a) on + OpenSuse 12.1, where querying red/blue balance fails. + https://bugzilla.gnome.org/show_bug.cgi?id=670197 + +2012-02-16 12:59:10 +0000 Tuukka Pasanen + + * sys/v4l2/v4l2_calls.c: + v4l2src: fix for webcamstudio vloopback + Because vlooback emits 25 - ENOTTY and no EINVAL v4l2src thought it + can't handle this and does not work. + https://bugzilla.gnome.org/show_bug.cgi?id=669455 + +2012-02-13 12:06:37 +0100 Mark Nauwelaerts + + * tests/check/elements/flacparse.c: + tests: flacparse: check and compare intended data + +2012-02-09 22:12:14 +0100 Mark Nauwelaerts + + * tests/check/elements/mpegaudioparse.c: + tests: mpegaudioparse: remove stray declaration + +2012-02-09 10:11:48 +0100 Marc Leeman + + * gst/udp/gstmultiudpsink.c: + multiudpsink: typo fix (bytes send -> bytes sent) + +2012-02-07 14:10:44 -0800 Ralph Giles + + * ext/shout2/gstshout2.c: + shout2send: send video/webm through libshout. + This requires SHOUT_FORMAT_WEBM, added in libshout 2.3.0, + so video/webm support is contingent on that symbol being + defined. + Also an indentation change required by the pre-commit hook. + https://bugzilla.gnome.org/show_bug.cgi?id=669590 + +2012-01-28 11:13:16 +0100 Nicola Murino + + * gst/matroska/matroska-demux.c: + matroskademux: avoid posting invalid duration for each frame + https://bugzilla.gnome.org/show_bug.cgi?id=666583 + +2012-02-05 13:40:13 +0000 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.30.3 pre-release + +2012-02-03 22:05:59 +0530 Arun Raghavan + + * ext/pulse/plugin.c: + pulseaudiosink: Lower rank to prevent autoplugging + pulseaudiosink breaks visualisations in its current form, so let's + prevent it from being autoplugged for the time being. + The best we can hope to do in the 0.10 series is query the list of + available sinks and their formats, and expose these as the bin's sinkpad + caps. While this is not a comprehensive solution, it will make sure that + we're only trying to support compressed formats if we're certain that + one exists. + The long-term fix for this will be in the form of proper upstream + renegotiation support in the 0.11/1.0 series. + https://bugzilla.gnome.org/show_bug.cgi?id=666361 + +2012-02-03 14:53:31 +0000 Vincent Penquerc'h + + * ext/flac/gstflacenc.c: + flacenc: fix event leak when there is no peer on the src pad + +2012-02-02 12:27:09 +0000 Vincent Penquerc'h + + * gst/flv/gstflvmux.c: + flvmux: specify we only accept raw AAC in template caps + No header seems to be added, and the codec ID is the same as used + for raw by flvdemux, so raw seems the only supported case. + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-02-02 12:25:21 +0000 Vincent Penquerc'h + + * gst/flv/gstflvdemux.c: + flvdemux: specify we only output raw AAC in template caps + https://bugzilla.gnome.org/show_bug.cgi?id=665394 + +2012-01-30 14:52:37 +0000 Vincent Penquerc'h + + * gst/rtp/gstrtpmp2tpay.c: + rtpmp2tpay: do not try to flush a packet when no data is available + https://bugzilla.gnome.org/show_bug.cgi?id=668874 + +2010-06-11 08:36:33 +0200 Pascal Buhler + + * gst/rtp/gstrtph264depay.c: + rtph264depay: Exclude NALu size from payload length on truncated packets. + https://bugzilla.gnome.org/show_bug.cgi?id=667846 + +2012-01-28 13:05:09 +0000 Vincent Penquerc'h + + * gst/videobox/gstvideobox.c: + videobox: avoid wrapping opaque to transparent + +2012-01-25 15:21:44 +0000 Jayakrishnan M + + * ext/cairo/Makefile.am: + cairo: fix build, make sure libgstvideo can be found + https://bugzilla.gnome.org/show_bug.cgi?id=668648 + +2012-01-25 13:19:12 +0000 Tim-Philipp Müller + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/rtpsession.c: + rtpmanager: don't pretend our random hostnames are fully-qualified domain names + +2012-01-23 13:15:46 +0000 Tim-Philipp Müller + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/rtpsession.c: + rtpmanager: don't reveal the user's username, hostname or real name by default + Send a randomly made-up user@hostname as CNAME and don't + send a NAME at all by default. + https://bugzilla.gnome.org/show_bug.cgi?id=668320 + +2012-01-20 17:06:42 +0100 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: simplify internal src event debug logging + ... which avoids almost superfluous obtaining of rtsp element. + +2012-01-20 17:03:50 +0100 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: avoid NULL string comparison + +2012-01-20 17:02:15 +0100 Mark Nauwelaerts + + * gst/rtp/gstrtpmp4adepay.c: + rtpmp4adepay: prevent out-of-bound array access + +2012-01-20 17:01:37 +0100 Mark Nauwelaerts + + * gst/isomp4/atomsrecovery.c: + isomp4: recovery: add sanity check + ... on possibly bogus/corrupt input data. + +2012-01-20 16:58:28 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroska-demux: remove redundant variable + +2012-01-20 16:57:52 +0100 Mark Nauwelaerts + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: fix arithmetic for unsigned comparison + +2012-01-20 16:55:06 +0100 Mark Nauwelaerts + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: add various missing break + +2012-01-20 16:49:14 +0100 Mark Nauwelaerts + + * gst/alpha/gstalphacolor.c: + alphacolor: remove redundant statement + +2012-01-20 16:48:49 +0100 Mark Nauwelaerts + + * ext/flac/gstflacdec.c: + flacdec: improve upstream peer duration querying + ... to avoid accepting unhandled duration query result. + +2012-01-20 16:47:36 +0100 Mark Nauwelaerts + + * ext/pulse/pulsesrc.c: + pulsesrc: additional error condition checking + +2012-01-20 16:46:21 +0100 Mark Nauwelaerts + + * ext/pulse/pulsesink.c: + pulsesink: additional error condition checking + +2012-01-20 16:44:21 +0100 Mark Nauwelaerts + + * ext/jpeg/gstjpegenc.c: + jpegenc: check _alloc_buffer result and perform fallback alloc if needed + ... rather than carrying on with NULL buffer. + +2012-01-13 18:11:36 +0000 Vincent Penquerc'h + + * ext/pulse/pulsesrc.c: + pulsesrc: fix wrong error check + pa_stream_* functions return negative on error, despite the defines + for error codes being positive. + I only got to repro the error twice, so I'm not sure 100% sure this + fixes the issue (the negative var being uninitialized after returning + from pa_stream_get_latency). + +2012-01-16 17:51:18 +0000 Vincent Penquerc'h + + * gst/cutter/gstcutter.c: + cutter: fix leak of unused GValue + +2012-01-16 16:10:08 +0000 Vincent Penquerc'h + + * tests/check/elements/autodetect.c: + tests: fix autodetect test not testing correctly for state change success + State change to PAUSED can be done async, so if this happens, we need + to wait for the change to be done (or failed). + +2012-01-16 15:42:46 +0000 Vincent Penquerc'h + + * gst/rtp/gstrtph263ppay.c: + rtph263ppay: fix caps leak + +2012-01-16 12:13:50 +0000 Vincent Penquerc'h + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: make interlacedness test deterministic + If the interlaced flag is not present in the caps, we assume the + data is not interlaced, instead of leaving the boolean uninitialized. + +2012-01-13 17:43:49 +0000 Vincent Penquerc'h + + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + oss4: fix caps leaks + +2012-01-13 17:25:59 +0000 Vincent Penquerc'h + + * sys/v4l2/gstv4l2src.c: + v4l2src: fix caps leak + +2012-01-13 15:57:20 +0000 Vincent Penquerc'h + + * tests/check/elements/videocrop.c: + tests: fix caps leak in videocrop test + +2012-01-13 10:32:59 +0000 Tim-Philipp Müller + + * gst/rtpmanager/gstrtpptdemux.c: + rtpptdemux: plug pad leak in error code path + Based on patch by: Stig Sandnes + Don't leak srcpad if there are no caps. + https://bugzilla.gnome.org/show_bug.cgi?id=667820 + +2011-10-04 10:00:02 +0200 Stig Sandnes + + * sys/osxvideo/cocoawindow.m: + osxvideo: Fix leak of NSOpenGLPixelFormat object + https://bugzilla.gnome.org/show_bug.cgi?id=667818 + +2011-09-05 10:43:19 +0200 Havard Graff + + * sys/v4l2/gstv4l2src.c: + v4l2src: Don't assert when the interface is not implemented. + Simply return FALSE instead. + https://bugzilla.gnome.org/show_bug.cgi?id=667817 + +2012-01-12 00:18:39 +0200 Raimo Järvi + + * sys/waveform/gstwaveformsink.c: + * sys/waveform/gstwaveformsink.h: + waveformsink: Fix mingw warnings + https://bugzilla.gnome.org/show_bug.cgi?id=667719 + +2012-01-12 18:23:42 +0000 Vincent Penquerc'h + + * gst/rtpmanager/gstrtpssrcdemux.c: + gstrtpssrcdemux: fix element leak + +2012-01-12 14:19:22 +0000 Vincent Penquerc'h + + * gst/matroska/matroska-read-common.c: + matroska: do not leak attachment buffers + +2012-01-12 10:30:11 +0000 Vincent Penquerc'h + + * ext/flac/gstflacenc.c: + flacenc: do not drop the first data buffer on the floor (and leak it either) + +2012-01-11 18:45:33 -0300 Reynaldo H. Verdejo Pinochet + + * Android.mk: + Temporarily disabling multifile for the Android build + There is a hard dependency on inotify comming from gio. We + are not currently bundling inotify with the Android dist so + I'm disabling multifile for now until someone gets around + to sort this out. + This change fixes building on Android + +2012-01-11 01:45:34 +0000 Tim-Philipp Müller + + * tests/check/pipelines/wavenc.c: + tests: fix wavenc test on big endian + wavenc only accepts little-endian PCM, but most of our + elements such as audiotestsrc only produce or process + audio in native endianness, so we need to plug a + converter before wavenc on big endian systems. + +2012-01-05 19:25:33 +0000 Vincent Penquerc'h + + * gst/isomp4/gstqtmux.c: + isomp4: fix caps leak + +2012-01-05 19:08:03 +0000 Vincent Penquerc'h + + * gst/isomp4/gstqtmux.c: + isomp4: remove dead assignment + +2012-01-04 19:40:14 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 11f0cd5 to cb5da59 + +2012-01-04 17:59:55 +0000 Tim-Philipp Müller + + * tests/check/elements/qtmux.c: + tests: fix some leaks and remove files when done in qtmux test + +2011-12-14 10:14:20 +0100 Peter Seiderer + + * gst/multifile/gstmultifilesink.c: + multifilesink: post better error message when we run out of disk space + Map write errno ENOSPC to GST_RESOURCE_ERROR_NO_SPACE_LEFT. + +2011-12-27 11:50:03 +0000 Tim-Philipp Müller + + * gst/udp/gstudpsrc.c: + udpsrc: fix valgrind warning + https://bugzilla.gnome.org/show_bug.cgi?id=666644 + +2011-12-21 13:22:03 +0100 John Ogness + + * gst/udp/gstudpsrc.c: + udpsrc: drop dataless UDP packets + It is allowed to send/receive UDP packets with no data. When such + a packet is available, select() will return with success but + ioctl(FIONREAD) will return 0. But a read() must still occur in + order to clear off the UDP packet from the queue. + This patch will read the dataless packet from the socket. If + select() was woken for other reasons (and FIONREAD returns 0), + this may result in a UDP packet getting accidentally dropped. + But since UDP is not reliable, this is acceptable. + NOTE: This patch fixes a nasty bug where sending a dataless + UDP packet to a udpsrc instance will cause an infinite + loop. + https://bugzilla.gnome.org/show_bug.cgi?id=666644 + Signed-off-by: John Ogness + +2011-12-21 20:50:21 +0100 Nicola Murino + + * ext/jpeg/gstjpegdec.c: + jpegdec: fix peer_caps leak + https://bugzilla.gnome.org/show_bug.cgi?id=666688 + +2011-12-25 14:23:29 +0000 Tim-Philipp Müller + + * gst/flv/gstflvmux.c: + flvmux: don't try to push already-freed buffers + Fixes unit test. + +2011-09-09 11:42:09 +0100 Vincent Penquerc'h + + * gst/audioparsers/gstac3parse.c: + ac3parse: let bsid 9 and 10 through + Files with 9 and 10 happen, and seem to comply with the <= 8 + format, so let them through. + The spec says nothing about 9 and 10. + https://bugzilla.gnome.org/show_bug.cgi?id=658546 + +2011-12-16 19:15:38 +0100 Mark Nauwelaerts + + * gst/flv/gstflvmux.c: + flvmux: properly determine final duration + ... which can be authoratively obtained from our own written timestamps. + +2011-12-19 13:56:30 +0100 Mark Nauwelaerts + + * gst/flv/gstflvmux.c: + flvmux: only write full metadata at start + ... rather than having (potentially) unnecessary duplicates written all over, + or even contradictory varying filesize info, or duration info that will not + be rewritten upon header rewrite. + +2011-12-21 17:43:10 +0100 Branko Subasic + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + matroskademux: do not consider duration of non-finalized file + ... to avoid it clamping requested seek position. + Non-finalized file case, determined by whether + _parse_blockgroup_or_simpleblock ever updates the segment duration. + Fixes #652195. + +2011-12-21 15:06:57 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: improve decision to fall back to scanning when seeking + ... which is basically iff not streaming and no entry found in index + +2011-12-13 18:18:45 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-read-common.c: + matroskademux: filter bogus index entries with missing block number + ... to avoid contradictory information resulting in seeks sending more + downstream than needed for the corresponding segment. + +2011-12-13 18:15:18 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: cater for safer arithmetic with global start time + +2011-12-13 17:02:01 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: tweak final closing segment sending + ... to avoid it interfering with (sparse) stream syncing. + +2011-12-12 11:54:56 +0100 Sebastian Dröge + + * gst-libs/gst/glib-compat-private.h: + glib-compat: Add license boilerplate for LGPL + +2011-12-12 15:15:46 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: mind (un)signed in some timestamp arithmetic + ... to avoid ending up with invalid (negative) duration. + +2011-02-09 15:31:22 +0100 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: increase parse tolerance for fuzzy file cases + +2011-12-12 10:38:20 +0000 Tim-Philipp Müller + + * Makefile.am: + build: dist glib-compat-private.h properly + Add missing slash. + +2011-12-12 10:18:14 +0000 Tim-Philipp Müller + + * tests/check/elements/souphttpsrc.c: + tests: use atexit, g_atexit has been deprecated in glib master + +2011-12-12 02:52:13 +0000 Tim-Philipp Müller + + * ext/dv/gstdvdemux.c: + * ext/flac/gstflacdec.c: + * ext/wavpack/gstwavpackparse.c: + * gst/avi/gstavidemux.c: + * gst/flv/gstflvdemux.c: + * gst/imagefreeze/gstimagefreeze.c: + * gst/isomp4/gstqtmoovrecover.c: + * gst/isomp4/qtdemux.c: + * gst/matroska/matroska-demux.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtsp/gstrtspsrc.c: + * gst/videomixer/videomixer2.c: + * gst/wavparse/gstwavparse.c: + Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly + GStaticRecMutex is part of our API/ABI, not much we can do here + in 0.10 for most of these. + +2011-12-12 02:41:37 +0000 Tim-Philipp Müller + + * tests/check/elements/souphttpsrc.c: + * tests/icles/equalizer-test.c: + * tests/icles/gdkpixbufsink-test.c: + * tests/icles/test-oss4.c: + * tests/icles/videocrop-test.c: + tests: g_thread_init() is deprecated in glib master + It's not needed any longer. + +2011-12-12 02:38:37 +0000 Tim-Philipp Müller + + * ext/soup/gstsouphttpclientsink.c: + * gst/rtpmanager/gstrtpsession.c: + * sys/oss4/oss4-mixer.c: + * tests/icles/v4l2src-test.c: + Use g_thread_try_new() instead of g_thread_crate() with newer glib versions + +2011-12-12 02:31:36 +0000 Tim-Philipp Müller + + * gst/alpha/gstalpha.c: + * gst/alpha/gstalpha.h: + alpha: use new glib API for static mutex if available + +2011-12-12 02:30:45 +0000 Tim-Philipp Müller + + * Makefile.am: + * ext/jack/gstjackaudioclient.c: + * ext/pulse/pulseaudiosink.c: + * ext/pulse/pulsesink.c: + * ext/soup/gstsouphttpclientsink.c: + * gst-libs/gst/glib-compat-private.h: + * gst/audiofx/audiochebband.c: + * gst/audiofx/audiocheblimit.c: + * gst/audiofx/audiofirfilter.c: + * gst/audiofx/audioiirfilter.c: + * gst/audiofx/audiowsincband.c: + * gst/audiofx/audiowsinclimit.c: + * gst/equalizer/gstiirequalizer.c: + * gst/imagefreeze/gstimagefreeze.c: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/shapewipe/gstshapewipe.c: + * gst/udp/gstmultiudpsink.c: + * gst/videobox/gstvideobox.c: + * gst/videocrop/gstaspectratiocrop.c: + * gst/videomixer/videomixer.c: + * gst/videomixer/videomixer2.c: + * sys/oss4/oss4-mixer.c: + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/ximage/gstximagesrc.c: + Work around deprecated thread API in glib master + Add private replacements for deprecated functions such as + g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly + to avoid the deprecation warnings. We'll change these + over to the new API once we depend on glib >= 2.32. + +2011-12-12 10:24:45 +0100 Sebastian Dröge + + * configure.ac: + configure: Require GLib >= 2.24 + All other modules require this already and nobody is testing with + older versions anyway. + +2011-12-11 18:40:31 +0000 Tim-Philipp Müller + + * ext/gdk_pixbuf/gstgdkpixbufsink.c: + gdkpixbufsink: fix inverted pixel-aspect-ratio + Spotted by Mike Morrison. + https://bugzilla.gnome.org/show_bug.cgi?id=665882 + +2011-12-11 17:55:14 +0000 Tim-Philipp Müller + + * ext/pulse/pulseaudiosink.c: + pulseaudiosink: don't leak pad template + +2011-12-10 15:13:07 +0000 Tim-Philipp Müller + + * configure.ac: + * gst/deinterlace/tvtime-dist.c: + * gst/videobox/gstvideoboxorc-dist.c: + * gst/videomixer/blendorc-dist.c: + * po/eo.po: + * win32/common/config.h: + 0.10.30.2 pre-release + +2011-12-10 14:48:57 +0000 Tim-Philipp Müller + + * ext/soup/gstsouphttpclientsink.c: + soup: fix start/stop race in souphttpclientsink + Fix crash or hang in generic/states unit test when doing stop() + right after start(). Create main loop in the start function already + and not just in the thread function, so that stop() always has a + valid main loop to quit on. Also, calling g_main_loop_quit() before + g_main_loop_run() won't work and result in the stop function waiting + for the thread to join forever. Therefore, wait for the thread to + be ready and get the main loop running in the start() function, to + be sure stop() always works. + +2011-12-10 13:35:08 +0000 Tim-Philipp Müller + + * tests/files/Makefile.am: + tests: dist test file used in matroskaparse unit test + +2011-12-10 12:32:32 +0000 Tim-Philipp Müller + + * tests/check/elements/rgvolume.c: + tests: fix up rgvolume test for basetransform event caching + Some tests assumed that tag events would always pushed through + immediately, which isn't the case any longer, so push a newsegment + event and an empty buffer first. + +2011-12-10 02:21:02 +0000 Tim-Philipp Müller + + * po/LINGUAS: + * po/eo.po: + * po/ja.po: + * po/lv.po: + * po/sr.po: + po: update translations + +2011-12-09 15:50:28 +0000 Tim-Philipp Müller + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: don't leak client name when freeing the element + And add gtk-doc chunks for the new property. + https://bugzilla.gnome.org/show_bug.cgi?id=665872 + +2011-12-09 15:45:03 +0000 Nicolas Baron + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + jack: add "client-name" property to jackaudiosink and jackaudiosrc + https://bugzilla.gnome.org/show_bug.cgi?id=665872 + +2011-12-08 11:00:45 +0000 Tim-Philipp Müller + + * gst/matroska/matroska-mux.c: + matroskamux: stream-format=raw goes with aac caps, not mp3 caps + +2011-12-02 12:07:24 +0000 Vincent Penquerc'h + + * sys/v4l2/gstv4l2object.c: + v4l2src: do not ignore the highest frame interval + https://bugzilla.gnome.org/show_bug.cgi?id=665387 + +2011-12-02 11:59:03 +0000 Vincent Penquerc'h + + * sys/v4l2/gstv4l2object.c: + v4l2src: do not ignore the largest resolution + The 'max' value isn't an STL style "one after the end" bound, + but the largest allowed value. + https://bugzilla.gnome.org/show_bug.cgi?id=665387 + +2011-12-06 16:47:25 +0100 Stefan Sauer + + * gst/multifile/gstmultifilesink.h: + docs: add add the two enum values that were just added too + +2011-12-06 16:14:54 +0100 Stefan Sauer + + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * gst/multifile/gstmultifilesink.h: + multifilesink: expose the enum property docs for splitting mode. + Fixes #665666. + +2011-12-05 12:15:21 +0000 Tim-Philipp Müller + + * sys/v4l2/gstv4l2object.c: + v4l2: replace deprecated GST_CLASS_LOCK + +2011-11-24 13:58:01 +0100 Sebastian Rasmussen + + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay: Ceil jpeg dimensions, instead of floor + A JPEG image inside an RTP stream has a preceeding RFC2435 header that + conveys width/height. The dimensions in this header are limited to be + multiples of 8. Since JPEG uses an MCU of 8x8 pixels any image must + already indirectly have image data dimensions that are rounded up in + order to contain enough data to render the image. Therefore this fix + safely rounds the image dimensions in the RFC2435 header up to the + closest multiple of 8. + +2011-12-04 12:50:57 +0000 Vincent Penquerc'h + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: ensure we only check for sample/block mixup at start + Otherwise we might trigger at some point within the file, but the + check is only making sense for the second block. + +2011-12-03 18:14:59 +0000 Vincent Penquerc'h + + * gst/matroska/matroska-parse.c: + matroskaparse: warn if accumulating headers after they were pushed + https://bugzilla.gnome.org/show_bug.cgi?id=665412 + +2011-10-25 12:54:43 -0700 David Schleef + + * gst/matroska/matroska-parse.c: + matroskaparse: fix parsing + Mark more parts as belonging to streamheaders. + +2011-12-03 17:30:10 +0000 Vincent Penquerc'h + + * gst/flv/gstflvdemux.c: + flvdemux: fix discontinuity threshold check when timestamps go backwards + Since unsigned types are used, a negative value would show as very, very + positive. + Fixes A/V sync on some... less than well made files where timestamps go + backwards. + +2011-12-02 12:01:22 +0000 Vincent Penquerc'h + + * sys/v4l2/gstv4l2object.c: + v4l2src: add a comment about a "hidden" assumption on rank values + https://bugzilla.gnome.org/show_bug.cgi?id=665387 + +2011-12-01 14:13:05 +0000 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: fix up LIBS order som more` + +2011-12-01 13:22:42 +0000 Tim-Philipp Müller + + * gst/matroska/matroska-mux.c: + matroska-mux: fix name of new property and the unit test + https://bugzilla.gnome.org/show_bug.cgi?id=654379 + +2011-09-25 14:57:56 +0100 Tim-Philipp Müller + + * gst/multifile/gstmultifilesink.c: + multifilesink: add basic buffer list handling + We assume for now that all buffers in a buffer list + should end up in the same file (so we can group GOPs + in buffer lists, for example). Could optimise this + a bit to avoid the memcpy. + +2011-09-23 18:43:35 +0100 Tim-Philipp Müller + + * gst/multifile/gstmultifilesink.c: + multifilesink: write stream-headers when switching to the next file in max-size mode + +2011-09-23 18:31:01 +0100 Tim-Philipp Müller + + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + multifilesink: add new 'max-size' mode for switching to the next file + +2011-09-23 17:49:05 +0100 Tim-Philipp Müller + + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + multifilesink: add "max-file-size" property for new next-file mode + +2011-12-01 13:38:06 +0100 Sebastian Dröge + + * gst/matroska/matroska-demux.c: + matroskademux: Don't forget SSA subtitles in last commit + +2011-12-01 13:34:52 +0100 Sebastian Dröge + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + matroskademux: Only check for markup and escape if necessary for plaintext subtitles + Otherwise we break USF and ASS/SSA subtitles. + +2011-12-01 13:23:33 +0100 Alessandro Decina + + * gst/multifile/Makefile.am: + multifile: fix build in uninstalled setup + Add -base libs includes to CFLAGS, fix order of LIBS . + +2011-12-01 13:08:01 +0100 Alessandro Decina + + * tests/check/elements/multifile.c: + tests: fix g_mkdtemp presence check in multifile tests + g_mkdtemp was added in glib 2.30 even though the doc claims it was added in + 2.26. + +2011-07-17 23:56:04 +0200 Alessandro Decina + + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * tests/check/Makefile.am: + * tests/check/elements/multifile.c: + multifilesink: add flag to cut after a force key unit event + +2011-12-01 12:47:26 +0100 Sebastian Dröge + + * gst/matroska/matroska-demux.c: + matroskademux: Copy all buffer flags when creating a subtitle buffer copy after postprocessing + This also copies the caps. Otherwise we could end up pusing + the first buffer without any caps, which causes downstream + to not get notified about the caps. + Fixes bug #664892. + +2011-10-11 02:07:13 +0200 Alexey Fisher + + * gst/matroska/matroska-mux.c: + matroskamux: make default framerate optional per stream + there is at least two use cases where default frame rate + should or may be disabled: + - vp8 stream with altref frame enabled. If default frame rate + is enabled, some players will missinterprete it (critical!) + - for webm container, to reduce micro overhead + - for stream with variable frame rate. + Signed-off-by: Alexey Fisher + +2011-11-30 22:13:11 +0100 Stefan Sauer + + * gst/effectv/gstripple.c: + rippletv: fix CLAMP end-values + +2011-11-30 19:25:37 +0000 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * docs/plugins/gst-plugins-good-plugins.args: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/gst-plugins-good-plugins.interfaces: + * docs/plugins/gst-plugins-good-plugins.signals: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-annodex.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-efence.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-esdsink.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gconfelements.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-halelements.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-monoscope.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + docs: update docs + +2011-11-30 19:00:42 +0000 Tim-Philipp Müller + + * gst/multifile/Makefile.am: + * gst/multifile/gstsplitfilesrc.c: + * gst/multifile/patternspec.c: + * gst/multifile/patternspec.h: + splitfilesrc: specify filenames via normal wildcards instead of regular expressions + Less cracktastic in the end. + +2011-10-10 18:28:11 +0100 Tim-Philipp Müller + + * gst/multifile/gstsplitfilesrc.c: + splitfilesrc: check bytes actually read, just in case + Handle corner case where we try to read beyond the end of the + last file part, in which case we want to return a short read. + If we get fewer bytes than expected for any other file part, + we should just error out, since something fishy's going on + then. + +2011-10-06 08:33:19 +0100 Tim-Philipp Müller + + * gst/multifile/gstsplitfilesrc.c: + splitfilesrc: set offsets on buffers + Looks like some parsers (in some versions at least) expect the + offsets to be set, and behave weird if that's not the case + (e.g. off-by-one in h264parse). + +2011-07-28 20:19:56 +0100 Tim-Philipp Müller + + * configure.ac: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstsplitfilesrc.c: + * gst/multifile/gstsplitfilesrc.h: + multifile: add splitfilesrc element + Add new splitfilesrc element that presents multiple files + (selectable via a location regex) as one single contiguous + file. + +2011-11-29 17:34:10 -0300 Thiago Santos + + * ext/pulse/pulseaudiosink.c: + Revert "pulseaudiosink: fix caps leak" + This reverts commit d6a9de9e2aedc8b66ab3219902b5a37e8d65ada2. + setcaps functions aren't supposed to take ownership of the caps passed + +2011-11-28 12:58:44 +0000 Vincent Penquerc'h + + * ext/aalib/gstaasink.c: + * ext/annodex/gstcmmldec.c: + * ext/annodex/gstcmmlenc.c: + * ext/cairo/gstcairooverlay.c: + * ext/cairo/gstcairorender.c: + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttimeoverlay.c: + * ext/dv/gstdvdec.c: + * ext/dv/gstdvdemux.c: + * ext/esd/esdmon.c: + * ext/esd/esdsink.c: + * ext/flac/gstflacdec.c: + * ext/flac/gstflacenc.c: + * ext/flac/gstflactag.c: + * ext/gconf/gstswitchsink.c: + * ext/gconf/gstswitchsrc.c: + * ext/gdk_pixbuf/gstgdkpixbuf.c: + * ext/gdk_pixbuf/gstgdkpixbufsink.c: + * ext/gdk_pixbuf/pixbufscale.c: + * ext/hal/gsthalaudiosink.c: + * ext/hal/gsthalaudiosrc.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/jpeg/gstjpegdec.c: + * ext/jpeg/gstjpegenc.c: + * ext/jpeg/gstsmokedec.c: + * ext/jpeg/gstsmokeenc.c: + * ext/libcaca/gstcacasink.c: + * ext/libmng/gstmngdec.c: + * ext/libmng/gstmngenc.c: + * ext/libpng/gstpngdec.c: + * ext/libpng/gstpngenc.c: + * ext/mikmod/gstmikmod.c: + * ext/pulse/pulseaudiosink.c: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesrc.c: + * ext/raw1394/gstdv1394src.c: + * ext/raw1394/gsthdv1394src.c: + * ext/shout2/gstshout2.c: + * ext/soup/gstsouphttpclientsink.c: + * ext/soup/gstsouphttpsrc.c: + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexenc.c: + * ext/taglib/gstapev2mux.cc: + * ext/taglib/gstid3v2mux.cc: + * ext/taglib/gsttaglibmux.c: + * ext/wavpack/gstwavpackdec.c: + * ext/wavpack/gstwavpackenc.c: + * ext/wavpack/gstwavpackparse.c: + * gst/alpha/gstalpha.c: + * gst/alpha/gstalphacolor.c: + * gst/apetag/gstapedemux.c: + * gst/audiofx/audiopanorama.c: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/auparse/gstauparse.c: + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosrc.c: + * gst/avi/gstavidemux.c: + * gst/avi/gstavimux.c: + * gst/avi/gstavisubtitle.c: + * gst/cutter/gstcutter.c: + * gst/debugutils/breakmydata.c: + * gst/debugutils/cpureport.c: + * gst/debugutils/efence.c: + * gst/debugutils/gstcapsdebug.c: + * gst/debugutils/gstcapssetter.c: + * gst/debugutils/gstnavigationtest.c: + * gst/debugutils/gstnavseek.c: + * gst/debugutils/gstpushfilesrc.c: + * gst/debugutils/gsttaginject.c: + * gst/debugutils/progressreport.c: + * gst/debugutils/rndbuffersize.c: + * gst/debugutils/testplugin.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/effectv/gstaging.c: + * gst/effectv/gstdice.c: + * gst/effectv/gstedge.c: + * gst/effectv/gstop.c: + * gst/effectv/gstquark.c: + * gst/effectv/gstradioac.c: + * gst/effectv/gstrev.c: + * gst/effectv/gstripple.c: + * gst/effectv/gstshagadelic.c: + * gst/effectv/gststreak.c: + * gst/effectv/gstvertigo.c: + * gst/effectv/gstwarp.c: + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvmux.c: + * gst/flx/gstflxdec.c: + * gst/goom/gstgoom.c: + * gst/goom2k1/gstgoom.c: + * gst/icydemux/gsticydemux.c: + * gst/id3demux/gstid3demux.c: + * gst/imagefreeze/gstimagefreeze.c: + * gst/interleave/deinterleave.c: + * gst/interleave/interleave.c: + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstrtpxqtdepay.c: + * gst/isomp4/qtdemux.c: + * gst/law/alaw-decode.c: + * gst/law/alaw-encode.c: + * gst/law/mulaw-decode.c: + * gst/law/mulaw-encode.c: + * gst/level/gstlevel.c: + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/webm-mux.c: + * gst/median/gstmedian.c: + * gst/monoscope/gstmonoscope.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesrc.c: + * gst/multipart/multipartdemux.c: + * gst/multipart/multipartmux.c: + * gst/replaygain/gstrganalysis.c: + * gst/replaygain/gstrglimiter.c: + * gst/replaygain/gstrgvolume.c: + * gst/rtp/gstasteriskh263.c: + * gst/rtp/gstrtpL16depay.c: + * gst/rtp/gstrtpL16pay.c: + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpac3pay.c: + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpamrpay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpbvpay.c: + * gst/rtp/gstrtpceltdepay.c: + * gst/rtp/gstrtpceltpay.c: + * gst/rtp/gstrtpdepay.c: + * gst/rtp/gstrtpdvdepay.c: + * gst/rtp/gstrtpdvpay.c: + * gst/rtp/gstrtpg722depay.c: + * gst/rtp/gstrtpg722pay.c: + * gst/rtp/gstrtpg723depay.c: + * gst/rtp/gstrtpg723pay.c: + * gst/rtp/gstrtpg726depay.c: + * gst/rtp/gstrtpg726pay.c: + * gst/rtp/gstrtpg729depay.c: + * gst/rtp/gstrtpg729pay.c: + * gst/rtp/gstrtpgsmdepay.c: + * gst/rtp/gstrtpgsmpay.c: + * gst/rtp/gstrtpgstdepay.c: + * gst/rtp/gstrtpgstpay.c: + * gst/rtp/gstrtph263depay.c: + * gst/rtp/gstrtph263pay.c: + * gst/rtp/gstrtph263pdepay.c: + * gst/rtp/gstrtph263ppay.c: + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264pay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpilbcpay.c: + * gst/rtp/gstrtpj2kdepay.c: + * gst/rtp/gstrtpj2kpay.c: + * gst/rtp/gstrtpjpegdepay.c: + * gst/rtp/gstrtpjpegpay.c: + * gst/rtp/gstrtpmp1sdepay.c: + * gst/rtp/gstrtpmp2tdepay.c: + * gst/rtp/gstrtpmp2tpay.c: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpmp4apay.c: + * gst/rtp/gstrtpmp4gdepay.c: + * gst/rtp/gstrtpmp4gpay.c: + * gst/rtp/gstrtpmp4vdepay.c: + * gst/rtp/gstrtpmp4vpay.c: + * gst/rtp/gstrtpmpadepay.c: + * gst/rtp/gstrtpmpapay.c: + * gst/rtp/gstrtpmparobustdepay.c: + * gst/rtp/gstrtpmpvdepay.c: + * gst/rtp/gstrtpmpvpay.c: + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmapay.c: + * gst/rtp/gstrtppcmudepay.c: + * gst/rtp/gstrtppcmupay.c: + * gst/rtp/gstrtpqcelpdepay.c: + * gst/rtp/gstrtpqdmdepay.c: + * gst/rtp/gstrtpsirendepay.c: + * gst/rtp/gstrtpsirenpay.c: + * gst/rtp/gstrtpspeexdepay.c: + * gst/rtp/gstrtpspeexpay.c: + * gst/rtp/gstrtpsv3vdepay.c: + * gst/rtp/gstrtptheoradepay.c: + * gst/rtp/gstrtptheorapay.c: + * gst/rtp/gstrtpvorbisdepay.c: + * gst/rtp/gstrtpvorbispay.c: + * gst/rtp/gstrtpvrawdepay.c: + * gst/rtp/gstrtpvrawpay.c: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtsp/gstrtpdec.c: + * gst/rtsp/gstrtspsrc.c: + * gst/shapewipe/gstshapewipe.c: + * gst/smpte/gstsmpte.c: + * gst/smpte/gstsmptealpha.c: + * gst/udp/gstdynudpsink.c: + * gst/udp/gstmultiudpsink.c: + * gst/udp/gstudpsrc.c: + * gst/videobox/gstvideobox.c: + * gst/videocrop/gstaspectratiocrop.c: + * gst/videocrop/gstvideocrop.c: + * gst/videofilter/gstgamma.c: + * gst/videofilter/gstvideobalance.c: + * gst/videofilter/gstvideoflip.c: + * gst/videomixer/videomixer.c: + * gst/videomixer/videomixer2.c: + * gst/wavenc/gstwavenc.c: + * gst/wavparse/gstwavparse.c: + * gst/y4m/gsty4mencode.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/oss/gstosssink.c: + * sys/oss/gstosssrc.c: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxvideo/osxvideosink.m: + * sys/sunaudio/gstsunaudiosink.c: + * sys/sunaudio/gstsunaudiosrc.c: + * sys/v4l2/gstv4l2sink.c: + * sys/v4l2/gstv4l2src.c: + * sys/waveform/gstwaveformsink.c: + * sys/ximage/gstximagesrc.c: + * tests/check/elements/qtmux.c: + various: fix pad template leaks + https://bugzilla.gnome.org/show_bug.cgi?id=662664 + +2011-11-28 11:47:11 +0100 Chad + + * gst/debugutils/gsttaginject.c: + taginject: set gap-aware + The element does not modify the data anyway. + +2011-11-26 21:39:33 +0100 Stefan Sauer + + * gst/equalizer/gstiirequalizer.c: + equalizer: also sync the parameters for the filter bands + +2011-11-26 16:06:59 +0000 Tim-Philipp Müller + + * gst/matroska/matroska-ids.c: + matroskademux: initialise seen_markup_tag field on subtitle stream context + +2011-11-25 19:28:55 -0300 Thiago Santos + + * gst/isomp4/gstqtmuxmap.c: + ismlmux: Use iso-fragmented as variant type + Using 'iso' conflicts with mp4mux variant type, ismlmux now + uses iso-fragmented + Fixes #656823 + +2011-11-24 12:05:33 +0530 Arun Raghavan + + * ext/pulse/pulsesrc.c: + * ext/pulse/pulsesrc.h: + pulsesrc: Implement GstStreamVolume interface + PulseAudio 1.0 supports per-source-output volumes, and this exposes the + functionality via the GstStreamVolume interface. + When compiled against pre-1.0 PulseAudio, the interface is not + implemented, and the "volume" or "mute" properties are not available. + This bit of ugliness will go away when we can depend on PulseAudio 1.0 + or greater. + https://bugzilla.gnome.org/show_bug.cgi?id=595055 + +2011-09-10 21:21:38 -0700 Arun Raghavan + + * ext/pulse/pulsesrc.c: + pulsesrc: Trivial comment copy-paste-o fix + +2011-11-14 12:43:27 +0530 Arun Raghavan + + * ext/pulse/pulseaudiosink.c: + pulseaudiosink: Remove redundant code + +2011-11-14 12:41:41 +0530 Arun Raghavan + + * ext/pulse/pulseaudiosink.c: + pulseaudiosink: Clean up refcounting in event probe + Makes sure we don't leak a refcount if the object is disposed before a + NEWSEGMENT turns up. + +2011-11-24 16:31:38 +0000 Vincent Penquerc'h + + * gst/flv/gstflvdemux.c: + flvdemux: fix seeking + Which I accidentally broke when fixing flv videos breaking on + spurious timestamp discontinuities in broken files. + https://bugzilla.gnome.org/show_bug.cgi?id=631430 + +2011-11-25 13:13:47 +0100 Stefan Sauer + + * gst/effectv/gstradioac.c: + * gst/effectv/gstradioac.h: + effectv: repair color modes in radioactv by taking rgb,bgr into account + +2011-11-25 11:44:49 +0100 Stefan Sauer + + * gst/effectv/gstradioac.c: + radioactv: add one more set of caps + It also work in this format. Avoids the need for conversion. + +2011-11-25 11:44:18 +0100 Stefan Sauer + + * gst/effectv/gstradioac.c: + * gst/effectv/gstshagadelic.c: + effecttv: fix reverse negotiation + The plugins were using _fixed_caps_ and thus not adjusting to new upstream + sizes. Spotted by Tim Müller. + +2011-11-25 11:43:16 +0100 Stefan Sauer + + * gst/effectv/gstwarp.c: + warptv: remove not needed ifdef + +2011-11-25 10:15:35 +0100 Stefan Sauer + + * gst/effectv/gstripple.c: + rippletv: clean up the rendering code a bit + This is corrrupts the memoy when resizing. Add a FIXME to make it resizeable + once that is solved. + +2011-11-24 20:42:49 +0100 Stefan Sauer + + * gst/effectv/gstquark.c: + * gst/effectv/gststreak.c: + * gst/effectv/gstvertigo.c: + * gst/effectv/gstwarp.c: + effecttv: fix reverse negotiation + The plugins were using _fixed_caps_ and thus not adjusting to new upstream + sizes. Spotted by Tim Müller. + +2011-11-24 14:14:53 -0300 Thiago Santos + + * gst/multifile/gstmultifilesink.c: + multifilesink: Fix leak of filename strings + Do not forget to free the filename strings when deleting + the list of files. + +2011-11-24 14:11:33 -0300 Thiago Santos + + * tests/check/elements/multifile.c: + multifile: fix build of tests + Tests fail to build because g_mkdtemp is available from glib since + 2.26. + This patch adds a condition around the redefinition of + g_mkdtemp on the tests to only build it if glib is older than + 2.26. + +2011-09-27 16:49:45 +0100 Vincent Penquerc'h + + * gst/wavparse/gstwavparse.c: + wavparse: skip id32 tags + This allows decoding at least one sample where something has + stuffed some ID3 tag before the (supposedly initial) FMT\ . + https://bugzilla.gnome.org/show_bug.cgi?id=660249 + +2011-10-31 17:06:18 +0000 Vincent Penquerc'h + + * gst/effectv/gstedge.c: + edgetv: trivial comment fix for clarity + https://bugzilla.gnome.org/show_bug.cgi?id=661841 + +2011-10-31 17:04:23 +0000 Vincent Penquerc'h + + * gst/effectv/gstedge.c: + edgetv: don't leave bits of the output buffer uninitialized + Let's initialize them to zero. It looks alright, but then it + also looks alright with v3, or with the corresponding pixels + from the source. I don't know what the original intent would + be, and the original effectv source also has this bug/feature. + https://bugzilla.gnome.org/show_bug.cgi?id=661841 + +2011-11-24 10:25:02 +0100 Sebastian Dröge + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + audioparse: Use the sinkpad template caps as fallback, not the srcpad ones + +2011-11-24 09:59:40 +0100 Sebastian Dröge + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 09:57:57 +0100 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 09:55:47 +0100 Sebastian Dröge + + * gst/audioparsers/gstdcaparse.c: + dcaparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 09:53:18 +0100 Sebastian Dröge + + * gst/audioparsers/gstamrparse.c: + amrparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 09:49:27 +0100 Sebastian Dröge + + * gst/audioparsers/gstamrparse.c: + amrparse: Mark some more functions as static + +2011-11-24 09:48:33 +0100 Sebastian Dröge + + * gst/audioparsers/gstac3parse.c: + ac3parse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-24 09:44:58 +0100 Sebastian Dröge + + * gst/audioparsers/gstaacparse.c: + aacparse: Mark some functions as static and remove unused function declarations + +2011-11-24 09:43:14 +0100 Sebastian Dröge + + * gst/audioparsers/gstaacparse.c: + aacparse: Implement ::get_sink_caps vfunc to propagate downstream caps constraints upstream + +2011-11-23 00:57:39 +0000 Tim-Philipp Müller + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/matroskaparse.c: + * tests/files/pinknoise-vorbis.mkv: + tests: add basic unit test for matroskaparse + +2011-11-23 00:56:26 +0000 Tim-Philipp Müller + + * gst/matroska/matroska-parse.c: + matroskaparse: don't leak stream headers + https://bugzilla.gnome.org/show_bug.cgi?id=664548 + +2011-11-16 19:08:05 +0100 Mark Nauwelaerts + + * ext/speex/gstspeexenc.c: + speexenc: ensure to free allocated padded data + +2011-11-16 18:57:38 +0100 Mark Nauwelaerts + + * ext/speex/gstspeexenc.c: + speexenc: reset tag setter interface when appropriate + +2011-11-16 18:57:21 +0100 Mark Nauwelaerts + + * ext/flac/gstflacenc.c: + flacenc: reset tag setter interface when appropriate + +2011-11-14 15:34:57 +0000 Vincent Penquerc'h + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: detect when a file lies about fixed block size + If the sample/block number happens to be the same as the block + size, we assume variable block size, and thus counters in samples + in the headers. This can only get us a false positive for a block + size of 1, which is invalid. We can get false negatives more + often though (eg, if not starting at the start of the stream), + but then that's already GIGO. + +2011-09-02 19:20:07 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpsession.c: + gstrtpsession: Add special mode to use FIR as repair as Google does + https://bugzilla.gnome.org/show_bug.cgi?id=658419 + +2011-09-01 17:47:38 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.h: + rtpsession: Send FIR requests in response to key unit requests with all-headers=TRUE + https://bugzilla.gnome.org/show_bug.cgi?id=658419 + +2011-09-01 16:25:21 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.h: + rtpsession: Put the PLI requests in each RTPSource + Also refactor a bit and put all the keyframe request code in one + place inside rtpsession.c + https://bugzilla.gnome.org/show_bug.cgi?id=658419 + +2011-08-31 14:35:33 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: Hack to FIR because Google doesn't set the sender ssrc correctly + https://bugzilla.gnome.org/show_bug.cgi?id=658419 + +2011-08-30 19:06:13 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: Process received Full Intra Requests + Process FIR requests according to RFC 5104 + https://bugzilla.gnome.org/show_bug.cgi?id=658419 + +2011-11-07 18:43:26 +0000 Sjoerd Simons + + * sys/v4l2/gstv4l2object.c: + v4l2: Set pixel-aspect-ratio to 1/1 + We don't currently support setting the pixel-aspect-ratio from V4L2. So + simply set it to be 1/1 in the caps to prevent negotiation failures when + fixating to weird values (e.g. when the downstream caps has + pixel-aspect-ratio = [ MIN, MAX ] ) + https://bugzilla.gnome.org/show_bug.cgi?id=663580 + +2011-11-11 10:06:25 -0300 Thiago Santos + + * ext/pulse/pulseaudiosink.c: + pulseaudiosink: fix caps leak + +2011-11-11 14:55:48 +0100 Mark Nauwelaerts + + * ext/pulse/pulsesink.c: + pulsesink: do not leak clientname when setting up property + +2011-11-11 18:05:35 +0530 Arun Raghavan + + * ext/pulse/pulseaudiosink.c: + pulse: Chain up dispose() in pulseaudiosink + +2011-11-08 15:35:26 +0000 Vincent Penquerc'h + + * gst/avi/gstavidemux.c: + avidemux: fix wrong stride when inverting uncompressed video + Such frames have a stride multiple of 4, see + http://lscube.org/pipermail/ffmpeg-issues/2010-April/010247.html. + This showed up on a sample using a odd width of 24 bit video. + https://bugzilla.gnome.org/show_bug.cgi?id=652288 + +2011-11-09 10:32:06 +0100 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: minimal sanity check on creation datetime + +2011-11-02 12:58:12 -0400 Olivier Crête + + * gst/rtp/gstrtph263ppay.c: + rtph263ppay: Return the sink pad template as sink caps, not the src's + https://bugzilla.gnome.org/show_bug.cgi?id=577784 + +2009-03-15 19:26:48 -0400 Olivier Crête + + * gst/rtp/gstrtph263ppay.c: + rtph263ppay: Also implement size/framerate restrictions in getcaps + https://bugzilla.gnome.org/show_bug.cgi?id=577784 + +2009-03-04 20:50:19 -0500 Olivier Crête + + * gst/rtp/gstrtph263ppay.c: + rtph263ppay: Implement getcaps following RFC 4629, picks the right annexes + https://bugzilla.gnome.org/show_bug.cgi?id=577784 + +2011-11-08 14:31:34 +0100 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: also set segment stop at startup rather than only post seek + ... so as to ensure consistent playback with or without seek, especially + in presence of some bogus edit list entries. + +2011-11-02 17:02:54 +0000 Raul Gutierrez Segales + + * gst/flv/Makefile.am: + gst/flv/: add amfdefs.h to noinst_HEADERS + https://bugzilla.gnome.org/show_bug.cgi?id=663334 + +2011-10-03 17:50:43 +0100 Vincent Penquerc'h + + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvdemux.h: + flvdemux: detect large pts gaps and resync + Should work on multiple gaps, but tested on only one. + https://bugzilla.gnome.org/show_bug.cgi?id=631430 + +2011-08-22 10:40:45 +0100 Vincent Penquerc'h + + * ext/flac/gstflacdec.c: + flacdec: fix off by one between granpos and last_stop + +2011-10-07 19:41:35 +0100 Vincent Penquerc'h + + * gst/audioparsers/gstflacparse.c: + flacparse: fix last frame timestamp in fixed block size mode + The last block may have a different block size, so we should not + use it to scale or we'll end up with a wrong timestamp. + See comment and quote from the FLAC format documentation in the code. + Fixes looped playback of FLAC files (via about-to-finish). + https://bugzilla.gnome.org/show_bug.cgi?id=661215 + +2011-10-27 15:52:47 +0100 Vincent Penquerc'h + + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttextoverlay.h: + cairotextoverlay: add a 'silent' property to skip rendering + https://bugzilla.gnome.org/show_bug.cgi?id=662856 + +2011-11-07 12:00:12 +0100 René Stadler + + * gst/matroska/ebml-write.c: + matroskamux: fix regression causing malformed files + This was caused by me in 1b213d. It seems I was too focused on 0.11 when I did + this and tested the wrong branch. + The problem was reported by Alexey Fisher. + +2011-11-03 23:28:31 +0000 Tim-Philipp Müller + + * gst/rtp/gstrtpvrawdepay.c: + rtp: use GLib's G_BIG_ENDIAN define instead of BIG_ENDIAN + Fixes compiler warning on mingw32 + +2011-10-31 16:18:32 +0100 Mark Nauwelaerts + + * gst/isomp4/gstqtmux.c: + qtmux: avoid shortcut evaluation when adding paired mp4 tag + Fixes (part of) #638711. + +2011-10-31 15:43:25 +0100 Mark Nauwelaerts + + * gst/matroska/matroska-mux.c: + matroskamux: do not use unoffical V_MJPEG codec id + ... but as not spec'ed especially, consider it a VfW compatibility case. + Fixes #659837. + +2011-10-30 19:30:14 +0000 Tim-Philipp Müller + + * ext/flac/gstflacenc.h: + flacenc: remove dead code from header + We require a new-enough libflac that this condition will never apply. + +2011-10-28 09:57:36 +0100 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: + jpegdec: add sof-marker to template caps, so we don't get plugged for lossless jpeg + jpegdec (using libjpeg 6.2/8) can't decode some lossless types of JPEG. + https://bugzilla.gnome.org/show_bug.cgi?id=556648 + +2011-10-28 12:30:33 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: elaborate some debug statements + +2011-10-11 20:56:51 +0400 Stas Sergeev + + * gst/flv/gstflvdemux.c: + flvdemux: be careful with negative cts + Fixes #661477. + +2011-10-06 13:04:54 +0200 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: tune non-update seek handling cases + Fixes #661049. + +2011-10-28 10:40:36 +0200 Sebastian Dröge + + * gst/videomixer/videomixer2.c: + videomixer2: Use the clip function instead of the prepare_buffer function + +2011-10-28 09:36:17 +0200 Sebastian Dröge + + * gst/videomixer/Makefile.am: + * gst/videomixer/gstcollectpads2.c: + * gst/videomixer/gstcollectpads2.h: + * gst/videomixer/videomixer2.h: + * gst/videomixer/videomixer2pad.h: + videomixer2: Use collectpads2 from core + +2011-10-28 00:41:45 +1100 Jan Schmidt + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Don't pointlessly hold object lock over caps operations + Avoids a deadlock when getcaps is recursive due to the getcaps being + reflected upstream/downstream. The lock isn't actually protecting + anything here. + +2011-10-27 00:37:03 +1100 Jan Schmidt + + * gst/flv/amfdefs.h: + * gst/flv/gstflvmux.c: + flvmux: add some comments and defines to clarify code. + +2011-10-10 15:36:14 +0200 René Stadler + + * gst/matroska/ebml-write.c: + matroska: refactor ebml-write to be more 0.11 friendly + Switching to a more 0.11-friendly pattern, where getting the buffer's data + pointer and setting the size many times is less natural. This is of course in + preparation to the upcoming port of the plugin. + +2011-10-11 21:45:46 +0200 René Stadler + + * gst/matroska/ebml-write.c: + matroska: remove stale floatcast include + GDOUBLE_TO_BE was moved to core a long time ago. + +2011-10-11 22:10:27 +0200 René Stadler + + * gst/matroska/matroska-mux.c: + matroskamux: fix possible crash with malformed dirac codec_data + Since size is unsigned, we need to safeguard against wrapping below zero. + +2011-10-21 22:33:34 +0200 René Stadler + + * gst/equalizer/gstiirequalizer.c: + equalizer: remove avoidable call to gst_object_set_name + +2011-10-21 22:32:38 +0200 René Stadler + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: remove avoidable call to gst_object_set_name + +2011-10-16 20:30:25 +0200 René Stadler + + * ext/libpng/gstpngenc.c: + pngenc: increase arbitrary resolution limits + Apparently libpng can technically do up to 2^31-1 rows and columns. However it + imposes an (arbitrary) default limit of 1 million (that could theoretically be + lifted by using some additional API). + Moved array allocation to the heap now. + +2011-10-16 20:25:41 +0200 René Stadler + + * ext/libpng/gstpngenc.c: + pngenc: don't unconditionally allocate 4096 pointers on the stack + Instead allocate as many as needed (on the stack still). + +2011-10-16 20:05:28 +0200 René Stadler + + * ext/libpng/gstpngenc.c: + pngenc: ensure setcaps was called before chain function + This is needed to properly error out for e.g. "fakesrc ! pngenc ! fakesink". + +2011-10-16 19:44:27 +0200 René Stadler + + * ext/libpng/gstpngenc.c: + pngenc: validate input buffer size + Just for safety; of course such mismatch represents a bug in another element. + +2011-10-16 19:41:28 +0200 René Stadler + + * ext/libpng/Makefile.am: + * ext/libpng/gstpngenc.c: + * ext/libpng/gstpngenc.h: + pngenc: make setcaps more robust, use gstvideo functions + A setcaps function needs to actually verify the caps carefully. In this case, + it was possible to e.g. link a video decoder with YUV+RGB template caps to + pngenc. That would cause a crash when the decoder pushes a YUV buffer. Same + thing when pushing a valid buffer that exceeds the resolution limits. + Also, missing framerate caps field would cause a glib critical warning due to + invalid GValue. This fails hard now. + +2011-10-21 10:01:43 +0200 René Stadler + + * gst/matroska/matroska-read-common.c: + ebml: small correction to previous commit + Signal a short read with UNEXPECTED, exactly like the peek_bytes function. + +2011-10-19 13:09:51 +0200 Edward Hervey + + * gst/matroska/matroska-read-common.c: + ebml: Fix push-based behaviour + The 'peek' method was completely wrong (!?) + +2011-10-18 18:31:17 +0530 Arun Raghavan + + * ext/pulse/pulseaudiosink.c: + pulse: Get caps correctly on pad block + Instead of always going upstream, we should first see if already got + caps from a setcaps() call. + https://bugzilla.gnome.org/show_bug.cgi?id=661262 + +2011-10-18 12:25:14 +0100 Tim-Philipp Müller + + * ext/wavpack/gstwavpackenc.c: + wavpackenc: don't unref buffer with gst_object_unref() + +2011-10-18 12:05:01 +0200 Wim Taymans + + * ext/pulse/pulsesink.c: + pulsesink: only use is_pcm for 1.0 of pulseaudio + +2011-10-18 11:58:57 +0200 Wim Taymans + + * ext/pulse/pulsesink.c: + pulsesink: only disable trickmodes for !pcm + Only disable trickmodes when we are not dealing with raw PCM samples. + +2011-10-14 10:56:16 +0530 Arun Raghavan + + * gst/videomixer/videomixer2.c: + videomixer2: Fix a leak + Buffers weren't being unref'ed in one case inside, causing memory usage + to blow up. + +2011-10-14 09:10:01 +0200 Marc Leeman + + * gst/rtp/gstrtpvrawdepay.c: + set colour masks for video/x-raw-rgb in rtpvrawdepay + +2011-10-13 16:59:50 +0530 Arun Raghavan + + * gst/videomixer/videomixer2.c: + videomixer2: Fix incorrect gst_buffer_replace() call + This got exposed when gst_buffer_replace() was changed from a macro to a + function. + +2011-10-12 11:26:50 +0200 Edward Hervey + + * gst/rtp/gstrtpvrawpay.c: + rtpvrawpay: Only use 24 LSB for depth=24 RGB caps + ... and indent the masks for clarity + +2011-10-11 14:58:43 +0200 René Stadler + + * gst/matroska/matroska-mux.c: + matroskamux: fix segment handling, so we actually use running time + gst_matroska_mux_best_pad adjusts the buffer timestamp to running time using + the segment stored in the pad's collect data. However, the event handler didn't + pass the newsegment event on to collectpads' handler, so this segment was never + updated at all. + Re-fixes bug #432612. + +2011-10-10 19:01:23 +0100 Sjoerd Simons + + * gst/rtp/gstrtpg722pay.c: + gstrtpg722pay: Compensate for clockrate vs. samplerate difference + The RTP clock-rate used for G722 is 8000, even though the samplerate is + 16000. Compensate for this by pretending G722 has 8 bits per sample + instead of the 4 bits as if it were a codec that ran at half the speed, + but with twice the number of bits. Fixes #661376 + +2011-09-27 19:25:53 +0100 Sjoerd Simons + + * ext/jpeg/gstjpegdec.c: + jpegdec: Implement upstream negotiation + Add upstream negotiation for jpegdec. Fixes #660275 + +2011-10-10 19:02:58 +0100 Tim-Philipp Müller + + * gst/matroska/matroska-demux.c: + matroska-demux: don't leak audio codec_data buffer + +2011-10-10 13:20:04 +0200 Stefan Sauer + + * tests/examples/cairo/Makefile.am: + tests: add missing PLUGIN_ASE_LIBS to LDADD + +2011-10-09 21:31:27 +0200 Mark Nauwelaerts + + * ext/speex/gstspeexenc.c: + * ext/speex/gstspeexenc.h: + speexenc: only push header buffers following initial events + +2011-10-09 11:18:18 -0300 Thiago Santos + + * gst/isomp4/atomsrecovery.c: + qtmux: Fix memory leak on atoms recovery function + Remember to free the ftyp data after writing it to a file. + Fixes #660969 + +2011-09-21 18:45:42 +0100 Vincent Penquerc'h + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + matroskademux: improve segment handling with non-zero starting timestamp + ... as well as related items, such as seeking and position reporting. + https://bugzilla.gnome.org/show_bug.cgi?id=659808 + +2011-09-29 18:41:53 +0400 Stas Sergeev + + * sys/v4l2/gstv4l2object.c: + * sys/ximage/gstximagesrc.c: + v4l2, ximagesrc: fix some printf format compiler warnings + https://bugzilla.gnome.org/show_bug.cgi?id=660150 + +2011-09-30 12:42:22 -0300 Thiago Santos + + * tests/check/elements/qtmux.c: + tests: qtmux: Refactor bitrate check test + Refactor bitrate check test to accomodate multiple tests + for bitrate + +2011-09-30 13:02:31 -0300 Thiago Santos + + * gst/isomp4/atoms.c: + qtmux: update esds atom under wave atom for aac bitrates + AAC in mov format puts an ESDS atom inside of a WAVE atom in + STSD atom, we need to update the bitrate on this ESDS. This patch + fixes it. + +2011-09-30 12:41:52 -0300 Thiago Santos + + * gst/isomp4/atoms.c: + * gst/isomp4/fourcc.h: + qtmux: Also update btrt atom + When rewriting bitrates, also update the btrt atom under stsd + +2011-09-30 10:55:53 -0300 Thiago Santos + + * tests/check/elements/qtmux.c: + tests: qtmux: add tests for bitrate average calculation + Adds tests to make sure qtmux/mp4mux sets average bitrate + correctly + +2011-09-28 11:41:49 -0300 Thiago Santos + + * gst/isomp4/atoms.c: + * gst/isomp4/atoms.h: + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + qtmux: Calculate average bitrate for streams + Calculate and use average bitrate for streams when no + bitrate tag was received + +2011-09-28 10:41:14 -0300 Thiago Santos + + * gst/isomp4/gstqtmux.c: + qtmux: Avoid a buffer metadata copy if possible + If first_ts is 0 there is no need to subtract, so we might + skip some copying to make the buffer metadata writable. + +2011-09-29 23:21:46 +0100 Tim-Philipp Müller + + * ext/speex/gstspeexenc.c: + speexenc: initialise variable before adding to it + +2011-09-29 17:21:22 +0200 Mark Nauwelaerts + + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexdec.h: + speexdec: port to audiodecoder + +2011-09-29 16:33:01 +0200 Mark Nauwelaerts + + * ext/speex/gstspeexenc.h: + speexenc: clean up some unused remnants + +2011-09-29 17:32:23 +0200 Mark Nauwelaerts + + * ext/speex/Makefile.am: + * ext/speex/gstspeexenc.c: + * ext/speex/gstspeexenc.h: + speexenc: port to audioencoder + +2011-09-28 16:09:58 +0200 Mark Nauwelaerts + + * ext/flac/Makefile.am: + * ext/flac/gstflacenc.c: + * ext/flac/gstflacenc.h: + flacenc: port to audioencoder + +2011-09-27 15:59:24 +0100 Vincent Penquerc'h + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-parse.c: + matroskademux: ensure minimal alignment for audio/x-raw-* buffers + Since matroskademux will attempt to push unaligned buffers, + downstream might have trouble with those, especially if downstream + uses ORC, such as audioconvert. + Ensure we push buffers aligned to the basic type at least for + those raw buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=659798 + +2011-09-28 00:10:09 +0300 Raimo Järvi + + * gst/goom2k1/goom_core.c: + goom2k1: Fix compiler warnings on 64 bit mingw-w64 + Fixes bug #660294. + +2011-09-25 15:13:39 +0100 Tim-Philipp Müller + + * ext/soup/Makefile.am: + * ext/soup/gstsoup.c: + * ext/soup/gstsouphttpclientsink.c: + * ext/soup/gstsouphttpclientsink.h: + * ext/soup/gstsouphttpsink.c: + * ext/soup/gstsouphttpsink.h: + soup: rename souphttpsink to souphttpclientsink + To avoid confusion, and because we might want a server + sink at some point too. + https://bugzilla.gnome.org/show_bug.cgi?id=659947 + +2011-09-23 16:39:46 +0100 Tim-Philipp Müller + + * ext/soup/gstsouphttpsink.c: + * ext/soup/gstsouphttpsink.h: + souphttpsink: don't create unused second sink pad object + The base class will create the sink pad. + +2011-09-23 15:36:36 +0200 Julien Isorce + + * gst/audioparsers/gstac3parse.c: + ac3parse: correctly check for ac3/e-ac3 switch + https://bugzilla.gnome.org/show_bug.cgi?id=659943 + +2011-09-20 13:38:53 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtph264depay.c: + rtph264depay: improve downstream flow return feedback to upstream + ... although basertpdepay does not really make it easy/possible to do so + all the way. + +2011-09-20 12:11:47 +0100 Vincent Penquerc'h + + * sys/ximage/gstximagesrc.c: + * sys/ximage/gstximagesrc.h: + ximagesrc: add xid and xname properties to allow capturing a particular window + A particular window may be selected using the new xid (X-Window + XID, eg a pointer) and xname (window title) properties. If both + are specified, the XID is used in preference, falling back to + xname if not found. + Default (if none of xid and xname are specified, or if no such + window is found) is to capture the root window. + https://bugzilla.gnome.org/show_bug.cgi?id=546932 + +2011-08-02 17:39:44 +0100 Tim-Philipp Müller + + * tests/check/elements/qtmux.c: + tests: add unit test to make sure encodebin picks mp4mux for variant=iso + https://bugzilla.gnome.org/show_bug.cgi?id=651496 + +2011-09-19 12:15:11 +0200 Ha Nguyen + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Fix a leaked clock for each buffering message + Fixes bug #659237. + +2011-09-19 12:11:32 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_fourcc.h: + qtdemux: parse embedded ID32 tags + +2011-09-02 13:41:41 +0200 Mark Nauwelaerts + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsource.c: + rtpsession: avoid source premature timing out + Use slightly adjusted sender interval to determine sender timeout rather than + our own sender side interval (which may have been forced small). + +2011-08-25 12:40:52 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: avoid timing out source too quickly + ... following a PAUSE/PLAY cycle, particularly applicable when operating + with a short RTCP interval (possibly forced so server-side). + +2011-08-24 14:37:52 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer/rtpbin: relax dropping rtcp packets + ... to at least having it trigger a/v synchronization, possibly without + using provided values which are still not considered sane + (as previously dropped). + +2011-08-24 14:34:23 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: some more reset when clearing pt map + ... which in particular caters for some more reset following a possible + rtsp PLAY. + +2011-08-21 21:58:38 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: do not set elements to PLAYING when doing seek in PAUSED + +2011-09-01 14:47:48 +0200 Mark Nauwelaerts + + * gst/rtpmanager/rtpjitterbuffer.c: + rtpjitterbuffer: only reset skew on gap if input ts available + +2011-08-18 14:12:21 +0200 Mark Nauwelaerts + + * gst/rtpmanager/rtpjitterbuffer.c: + rtpjitterbuffer: check some more for possible rtp timestamp discontinuity + ... when operating in non slave mode, and reset if detected. + This should avoid some (large) bogus outgoing timestamp due to jumps + in rtp time, as result of PAUSE/PLAY or seek or ... + +2011-08-08 12:48:50 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: switch to rtp time based syncing when guessed appropriate + +2011-08-08 12:15:20 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: alternative inter-stream syncing methods + ... at least if not syncing to NPT time: + * either sync using RTCP SR data (as currently) + * only perform the above once using initial RTCP SR packets + * discard RTCP and sync by equating provided stream's clock-base rtptime, + as provided by jitterbuffer (typically obtained from RTP-Info in RTSP). + +2011-08-08 12:11:24 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: also provide clock-base to sync signal + +2011-08-08 12:09:41 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: allow configurable rtcp stream syncing interval + ... rather than necessarily syncing at each RTCP SR. + +2011-08-01 08:35:01 +0200 Mark Nauwelaerts + + * gst/rtpmanager/rtpsession.c: + rtpsession: trigger reconsideration if rtcp interval set + +2011-08-01 08:32:24 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: configure rtcp interval if provided + ... in PLAY response. + +2011-09-16 16:53:22 +0300 Lasse Laukkanen + + * gst/isomp4/gstqtmux.c: + isomp4: Fix allowing zero duration tracks + https://bugzilla.gnome.org/show_bug.cgi?id=637486 + +2011-09-05 10:11:18 +0100 Vincent Penquerc'h + + * gst/udp/gstudpnetutils.c: + udpsrc: error out when no protocol is specified in the uri + It is certainly better than to crash. + https://bugzilla.gnome.org/show_bug.cgi?id=658178 + +2011-09-19 09:37:58 +0200 Vincent Penquerc'h + + * ext/speex/gstspeexenc.c: + speexenc: do not use invalid buffer timestamps + +2011-03-29 12:09:18 +0530 Arun Raghavan + + * ext/pulse/Makefile.am: + * ext/pulse/plugin.c: + * ext/pulse/pulseaudiosink.c: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + * ext/pulse/pulseutil.h: + pulse: New pulseaudiosink element to handle format changes + This introduces a new bin which wraps around pulsesink and depending on + the formats supported by the sink, plugs in/out a decodebin2 as + required. This allows users to switch sinks on the stream and adapts + accordingly (for example, you could watch a movie in passthrough mode on + your receiver which supports AC3 decode, then plug out and switch to a + non-digital profile to continue uninterrupted on analog output). + The bin is required because doing the same with playbin2/playsink will + require API changes that cannot be made in 0.10. With 0.11/1.0, we + should be able to ask for upstream caps renegotiation to deal with all + this. + https://bugzilla.gnome.org/show_bug.cgi?id=657179 + +2011-09-16 15:03:23 +0200 Branko Subasic + + * gst/matroska/ebml-read.c: + * gst/matroska/ebml-read.h: + * gst/matroska/matroska-read-common.c: + matroskademux: Avoid sending EOS when in paused state + Changed the ebml reader's gst_ebml_peek_id_length() function so + that it returns the actual reason for why the peek failed, instead + of (almost) always returning GST_FLOW_UNEXPECTED. This prevents + the pulling task from sending EOS when doing a flushing seek. + +2011-09-15 15:53:47 +0100 Vincent Penquerc'h + + * gst/matroska/matroska-demux.c: + matroskademux: fix stuttering A/V + Someone got had by implicit promotion to unsigned in ops with + a signed and an unsigned value. + https://bugzilla.gnome.org/show_bug.cgi?id=659153 + +2011-09-14 16:37:12 +0100 Vincent Penquerc'h + + * gst/debugutils/gstnavseek.c: + navseek: toggle pause/play on space bar + A useful thing to have. + https://bugzilla.gnome.org/show_bug.cgi?id=659065 + +2011-09-14 14:46:00 +0200 David Svensson Fors + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + matroskademux: configurable timestamp gap handling + matroskademux performs segment tricks to skip gaps in streams, + notably at start for non 0 based files. There may however be + cases when full presentation (including intermediate gaps) is + desired, so a property allows to configure as of which gap + to act (or not at all). + API: GstMatroskaDemux::max-gap-time + Fixes #659009. + +2011-09-12 09:21:47 -0300 Thiago Santos + + * tests/check/elements/flvmux.c: + tests: flvmux: Fix flvmux's tests after fix for request pads handling + Now that flvmux doesn't release its request pads on PAUSED->READY the + test doesn't need to re-request them for every reuse test start. + +2011-09-09 09:12:56 -0300 Thiago Santos + + * gst/isomp4/gstqtmux.c: + qtmux: Fix ctts generation for streams that don't start at 0 timestamps + Subtract the first timestamp of a stream from all input buffers to + get 0-based timestamps for creating a sane ctts table. Without this + patch the ctts could have larger values than needed, causing the + playback to have a delay at startup. + As the first timestamp is only found after a few buffers are queued + (due to possible reordered buffers), once we find the first timestamp + we subtract it from all buffers on the queue, from that point on, + all buffers have their timestamps subtract when they are collected. + https://bugzilla.gnome.org/show_bug.cgi?id=658659 + +2011-09-12 07:55:19 +0200 Alessandro Decina + + * gst/flv/gstflvmux.c: + flvmux: don't release request pads going PAUSED->READY + Don't release request pads but just reset them. This makes pipelines using + flvmux reusable. + +2011-09-09 12:35:50 +0100 Vincent Penquerc'h + + * gst/audioparsers/gstac3parse.c: + ac3parse: use bsid 9 and 10 to control sample rate + See http://matroska.org/technical/specs/codecid/index.html + The spec is silent about this though... + https://bugzilla.gnome.org/show_bug.cgi?id=658546 + +2011-09-07 14:13:03 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: ensure some initial state variable setup + ... which might otherwise be skipped if the PLAY command is issued before + the OPEN command had a chance to actually be acted upon. + Fixes #657376. + +2011-09-08 15:02:05 +0200 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: tweak gap handling + ... so as to avoid buffers before and after gap to have identical running time. + +2011-09-08 13:28:24 +0200 Guillaume Desmottes + + * sys/v4l2/gstv4l2object.c: + v4l2: use GST_RESOURCE_ERROR_BUSY if v4l2_ioctl fails with EBUSY + https://bugzilla.gnome.org/show_bug.cgi?id=658543 + +2011-09-07 08:54:17 -0300 Thiago Santos + + * gst/isomp4/gstqtmux.c: + qtmux: remove one G_UNLIKELY for user property + Using G_UNLIKELY on user properties isn't nice, specially when + that is the default option. + +2011-03-15 11:03:53 +0100 Andoni Morales Alastruey + + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-mux.h: + matroskamux: handle GstForceKeyUnit event + ... by starting a new cluster after forwarding event. + Fixes #644154. + +2011-09-07 14:27:36 +0200 Sebastian Dröge + + * tests/check/elements/cmmldec.c: + * tests/check/elements/cmmlenc.c: + cmml: Use complete cmml caps in the unit test + +2011-09-07 14:26:01 +0200 Sebastian Dröge + + * tests/check/elements/qtmux.c: + qtmux: Use complete MPEG caps in the unit test + +2011-09-07 14:18:58 +0200 Stefan Sauer + + * docs/plugins/Makefile.am: + docs: cleanup makefiles + Remove commented out parts that we don't need. Remove "the wingo addition" - no + so useful after all. Narrow down file-globs for plugin docs. + +2011-08-29 14:12:22 +0200 Konstantin Miller + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't handle HTTP response 407 as error if proxy authentication data is available + Fixes bug #657422. + +2011-09-07 12:11:39 +0200 Sebastian Dröge + + * gst/audioparsers/gstac3parse.c: + ac3parse: Add Converter to the classification because it can convert between different alignments + This allows decodebin2 to let it negotiate properly. + +2011-09-07 12:10:48 +0200 Sebastian Dröge + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + audioparsers: Improve src template caps + Remove the parsed/framed fields and add all fields to the template + caps that always exist. + +2011-09-06 15:59:49 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + aacparse: parse codec_data to determine number of samples per frame + Fixes #656734. + +2011-09-06 21:24:46 +0200 Stefan Sauer + + * common: + Automatic update of common submodule + From a39eb83 to 11f0cd5 + +2011-09-06 15:40:32 +0200 Stefan Sauer + + * common: + Automatic update of common submodule + From 605cd9a to a39eb83 + +2011-09-06 15:05:37 +0200 Mark Nauwelaerts + + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-mux.h: + matroskamux: make default duration check less sensitive + Frame duration might vary for 1 usecond, in this case matroskamux + decides to create BLOCKGROUP instead of SIMPLEBLOCK. + Convert duration to timecodescale which is (typically) less precise, and + then also allow the difference of 1/-1 to arrange for less sensitive check. + Based on patch by Alexey Fisher + Fixes #653080. + +2011-09-06 13:18:40 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtpmp4gdepay.c: + rtpmp4gdepay: improve bogus interleaved index compensating + Patch by + Fixes #654585. + +2011-09-06 10:33:21 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Allow positive, non-1.0 segment rates + Only negative rates are not supported. Fixes bug #658305. + +2011-09-05 15:50:56 +0200 Mark Nauwelaerts + + * tests/check/elements/parser.c: + tests: parsers: provide more real data when testing draining of garbage + +2011-09-05 15:50:04 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstamrparse.c: + amrparse: fix and streamline valid frame checking + ... to handle various combinations of sync or not, and sufficient data + or not as might be expected. + Fixes #650714. + +2011-09-05 14:49:32 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: fragmented support; avoid adjustment for keyframe seek + ... since all index data may not yet be available at that time. + +2011-09-05 14:48:02 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: fragmented support; mark all audio track samples as keyframe + +2011-09-05 14:46:29 +0200 Brian Li + + * gst/isomp4/qtdemux.c: + qtdemux: fragmented support; properly init return variable value + Fixes #655918. + +2011-09-05 13:31:20 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add gtk-doc for new short-header property + +2011-09-05 13:18:39 +0200 Marc Leeman + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: allow sending short RTSP requests to a server + Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by + GStreamer, but do accept the short header as sent by Live555. + This patch makes the extending the request optional by adding a property + (short-header). + Fixes #655805. + API: GstRTSPSrc:short-header + +2009-03-04 14:51:09 -0500 Olivier Crête + + * gst/rtp/gstrtph263ppay.c: + rtph263ppay: Set H263-2000 if thats what the other side wants + The static caps states this element supports H263-2000, but setcaps never + sets it, so it was lie. + See https://bugzilla.gnome.org/show_bug.cgi?id=577784 + +2011-08-30 19:02:51 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: Initialise the last_keyframe_request variable + +2011-08-31 16:04:24 +0200 Peter Korsgaard + + * gst/udp/gstmultiudpsink.c: + multiudpsink: make add/remove/clear/get-stats action signals + http://bugzilla.gnome.org/show_bug.cgi?id=657830 + Signed-off-by: Peter Korsgaard + +2011-08-30 13:33:49 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: push mode; perform some extra checks prior to upstream seeking + +2011-08-30 13:28:21 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: push mode; fix buffered streaming + That is, in case where no seek is peformed to moov, but preceding + limited mdat is buffered. + +2011-08-29 15:13:56 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: avoid overflow wraparound in timestamp when adding durations + Do some type juggling to avoid overflow, while still allowing for 'negative' + durations (which would need a wraparound effect). + +2011-08-25 23:37:47 +0100 Vincent Penquerc'h + + * sys/v4l2/v4l2src_calls.c: + v4l2src: make this work more than once in a row + We used to skip frame rate setup if the camera was already setup + with the requested frame rate. This breaks some cameras though, + causing them to not output data (several models of Thinkpad cameras + have this problem at least). + So, don't skip. + https://bugzilla.gnome.org/show_bug.cgi?id=638300 + +2011-08-23 12:12:15 +0100 Vincent Penquerc'h + + * gst/audioparsers/gstaacparse.c: + aacparse: only require two frames in a row when we do not have sync + This avoids a single bit error dropping two frames unnecessarily. + The two consecutive frames check is still required when we don't + have sync. + https://bugzilla.gnome.org/show_bug.cgi?id=657080 + +2011-08-23 21:41:15 +0530 Arun Raghavan + + * ext/pulse/pulsesink.c: + pulsesink: Trivial indentation fix + +2011-07-21 17:23:28 -0400 Monty Montgomery + + * ext/flac/gstflacdec.c: + flacdec: Correct sample number rounding resulting in timestamp jitter + flacdec converts the src timestamp to a sample number, uses that internally, then reconverts the sample number to a timestamp for the output buffer. Unfortunately, sample numbers can't be represented in an integer number of nanoseconds, and the conversion process was truncating rather than rounding, resulting in sample numbers and output timestamps that were often off by a full sample. + This corrects the time->sample convesion + +2011-08-20 14:48:20 -0700 David Schleef + + * gst/debugutils/breakmydata.c: + breakmydata: element is not passthrough + +2011-07-13 11:20:34 -0700 David Schleef + + * gst/multifile/gstmultifilesrc.c: + multifilesrc: quiet debugging + +2011-07-10 21:40:20 -0700 David Schleef + + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + * gst/deinterlace/gstdeinterlacemethod.c: + * gst/deinterlace/gstdeinterlacemethod.h: + * gst/deinterlace/tvtime/greedy.c: + * gst/deinterlace/tvtime/greedyh.c: + * gst/deinterlace/tvtime/linearblend.c: + * gst/deinterlace/tvtime/scalerbob.c: + * gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace/tvtime/vfir.c: + * gst/deinterlace/tvtime/weave.c: + * gst/deinterlace/tvtime/weavebff.c: + * gst/deinterlace/tvtime/weavetff.c: + deinterlace: change field handling through methods + This likely breaks stuff. The good: all of the methods now create + field images aligned with input frames, without timestamp mangling. + The bad: this touches a lot of code, much of which is hairy and in + need of cleanup. However, at this point we can reasonably create a + PSNR-based test. + +2011-08-21 14:41:14 +0200 Alessandro Decina + + * gst/multifile/gstmultifilesink.c: + multifilesink: reset ->streamheaders to NULL on _stop + Fixes invalid memory access reusing multifilesink + +2011-08-18 13:37:39 +0200 David Henningsson + + * ext/pulse/pulsesink.c: + pulsesink: Allow writes in bigger chunks + There's no use in splitting the incoming data down to the segsize + limit - by writing as much as possible in one chunk, we increase + performance and avoid PulseAudio unnecessary rewinds. + Signed-off-by: David Henningsson + +2011-08-08 22:14:28 +0100 Vincent Penquerc'h + + * gst/matroska/matroska-demux.c: + matroskademux: ensure no-more-pads is always emitted + In particular, do so even if failing to read while prerolling, + such as when reading from a partial file (eg, while it is being + downloaded). + This fixes a wedge in playbin2. + https://bugzilla.gnome.org/show_bug.cgi?id=651965 + +2011-08-16 17:27:13 +0100 Vincent Penquerc'h + + * ext/flac/gstflacdec.c: + flacdec: avoid timestamp/offset tracking going out of sync + The libFLAC API is callback based, and we must only call it to + output data when we know we have enough input data. For this + reason, a single processing step is done when receiving a buffer. + However, if there were metadata buffers still pending, a step + intended for the first audio frame might end up writing that + leftover metadata. Since a single step is done per buffer, this + will cause every buffer to be written one step late. + This would add some latency (a bufferfull's worth), possibly + lose a buffer when seeking or the like, and also cause timestamp + and offset to be applied to the wrong buffer, as updates to + the "current" segment last_stop (from incoming buffer timestamp) + will be applied to an output buffer originating from the previous + incoming buffer. + This fixes the issue by ensuring that, upon receiving the first + audio frame, processing is done till all metadata is processed, + so the next "single step" done will be for the audio frame. After + this, we should keep to 1 input buffer -> 1 output buffer and so + avoid getting out of sync. + https://bugzilla.gnome.org/show_bug.cgi?id=650960 + +2011-08-16 15:32:07 +0100 Vincent Penquerc'h + + * ext/flac/gstflacdec.c: + flacdec: bail on reserved value + Now that we look at the right bits, we can test against the reserved + value as we do for other fields. + https://bugzilla.gnome.org/show_bug.cgi?id=650960 + +2011-08-16 15:27:43 +0100 Vincent Penquerc'h + + * ext/flac/gstflacdec.c: + flacdec: fix bit twiddling + Right shifting a 8 bit value by 8 bits is twice too much + to get the high 4 bits. + https://bugzilla.gnome.org/show_bug.cgi?id=650960 + +2011-08-16 15:22:46 +0100 Vincent Penquerc'h + + * ext/flac/gstflacdec.c: + flacdec: warn if we see a variable block size where unsupported + https://bugzilla.gnome.org/show_bug.cgi?id=650960 + +2011-08-16 18:25:29 +0100 Vincent Penquerc'h + + * gst/spectrum/gstspectrum.c: + spectrum: avoid crashing by resetting the correct number of channels + https://bugzilla.gnome.org/show_bug.cgi?id=656606 + +2011-08-16 13:16:22 +0100 Vincent Penquerc'h + + * gst/audioparsers/gstflacparse.c: + flacparse: fix off by one in frame size check + Yes, I was tracking another bug and the small test file I generated + to test with improbably just happened to trigger this, with a second + and last frame of 1615 bytes. + https://bugzilla.gnome.org/show_bug.cgi?id=656649 + +2011-08-14 20:46:01 +0100 Tim-Philipp Müller + + * gst/id3demux/id3v2.3.0.html: + * gst/id3demux/id3v2.4.0-frames.txt: + * gst/id3demux/id3v2.4.0-structure.txt: + id3demux: remove specs from git as well now that parsing code is in -base + +2011-07-14 15:42:36 +0200 Mark Nauwelaerts + + * configure.ac: + * gst/id3demux/Makefile.am: + * gst/id3demux/gstid3demux.c: + * gst/id3demux/id3tags.c: + * gst/id3demux/id3tags.h: + * gst/id3demux/id3v2frames.c: + id3demux: use -base provided id3 tag parsing + https://bugzilla.gnome.org/show_bug.cgi?id=654388 + +2011-08-13 16:51:22 +0100 Tim-Philipp Müller + + * ext/jack/gstjackaudiosrc.c: + jackaudiosrc: fix error message code + And also post 'not found' error if jackd is not even installed. + +2011-08-12 16:32:58 +0200 Stefan Kost + + * gst/isomp4/qtdemux.c: + qtdemux: initialize bitrate variable and reset for each loop + Don't check eventually unset variable and don't accidentially use values from last + cycle. + +2011-08-09 11:28:17 +0200 Edward Hervey + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Properly error out if SDP contains no streams + Also fixes unitialized variable error on macosx. + +2011-08-09 09:05:31 +0100 Vincent Penquerc'h + + * sys/ximage/gstximagesrc.c: + ximagesrc: clear flags on buffer reuse + This will ensure a logically new buffer does not keep flags from + a previous use of that buffer (eg, DISCONT would be set on the first + buffer, and mistakenly kept when reused). + https://bugzilla.gnome.org/show_bug.cgi?id=653709 + +2011-08-08 10:54:26 +0100 Vincent Penquerc'h + + * sys/v4l2/gstv4l2object.c: + v4l2: take care not to change the current format where appropriate + Some drivers are buggy are will change the current format when + processing VIDIOC_TRY_FMT. Save and restore the current format + to ensure the format is kept unchanged. + https://bugzilla.gnome.org/show_bug.cgi?id=649067 + +2011-08-07 12:23:26 +0200 Sjoerd Simons + + * sys/v4l2/v4l2src_calls.c: + v4l2src: Use fraction compare util function. + Use the fraction compare utility to compare function, not the + handcrafted one. The handcrafted one is buggy as it doesn't take into + account rounding error. For example comparing a framerate of 20/1 on a + camera configured as 30/1 fps would yield true: 1 == (1 * 20)/30 and not + re-configure the camera. Fixes #656104 + +2011-08-03 22:50:05 +1000 Jan Schmidt + + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + * gst/matroska/matroska.c: + matroska: Register new debug category + Register the matroskareadcommon debug category when the + plugin is loaded to avoid assertion output when debug is turned on. + +2011-07-29 13:03:55 +0200 Philippe Normand + + * gst/isomp4/qtdemux.c: + qtdemux: soften assertion check on stream size + https://bugzilla.gnome.org/show_bug.cgi?id=655570 + +2011-08-03 10:09:42 +0200 Robert Krakora + + * gst/rtp/gstrtpjpegpay.c: + rtpjpegpay: Add support for H.264 payload in MJPEG container + See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf + Fixes bug #655530. + +2011-08-02 22:05:08 -0400 Tristan Matthews + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + jackaudiosink: Don't call g_alloca() in process_cb + g_alloca() is not RT-safe, so instead we should allocate the + memory needed in advance. Fixes #655866 + +2011-08-02 23:42:58 +0100 Tim-Philipp Müller + + * gst/multipart/multipartdemux.c: + * sys/v4l2/gstv4l2object.c: + docs: fix two more Since: tags + +2011-07-31 04:19:00 +0300 Mart Raudsepp + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Fix Since tags for fieldanalysis related new properties + commit c1b100cf9c is after 0.10.29 and 0.10.30 was a branched release. + So fix Since tags from 0.10.29 to 0.10.31 for the new properties. + +2011-07-29 13:05:42 +0100 Tim-Philipp Müller + + * ext/pulse/pulsesink.c: + pulsesink: fix variable-set-but-not-used compiler warning with older pulse versions + +2011-07-29 12:07:24 +0200 Mark Nauwelaerts + + * gst/rtpmanager/rtpsession.c: + rtpsession: properly init rtcp_min_interval + +2011-03-09 11:04:36 +0530 Arun Raghavan + + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + * ext/pulse/pulseutil.c: + pulsesink: Add support for compressed formats + This adds support for various compressed formats (AC3, E-AC3, DTS and + MP3) payloaded in IEC 61937 format (used for transmission over S/PDIF, + HDMI and Bluetooth). + The acceptcaps() function allows bins to probe for what formats the sink + being connected to support. This only works after the element is set to + at least READY. + If the underlying sink changes and the format we are streaming is not + available, we emit a message that will allow upstream elements/bins to + block and renegotiate a new format. + +2011-03-01 15:34:46 +0530 Arun Raghavan + + * configure.ac: + * ext/pulse/pulsesink.c: + * ext/pulse/pulseutil.c: + * ext/pulse/pulseutil.h: + pulsesink: Use the extended stream API if available + This uses the new extended API for creating streams. This will allow us + to support compressed formats natively in pulsesink as well. + +2011-07-29 00:07:52 +0530 Arun Raghavan + + * ext/pulse/pulsesrc.c: + * ext/pulse/pulsesrc.h: + pulsesrc: Add a source-output-index property + This exposes the source output index of the record stream that we open + so that clients can use this with the introspection if they want (to + move the stream, for example). + +2011-07-28 14:44:57 +0200 Mark Nauwelaerts + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: keep a ref on the src pad while using it + Prevent a possible race if clear_ssrc() is called between getting the pad and + doing the push. + Based on patch by + https://bugzilla.gnome.org/show_bug.cgi?id=650916 + +2011-05-24 11:29:57 +0300 Olivier Crête + + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit + We need to keep the lock held because we don't want a push before the "new-ssrc-pad" + handler has completed. But we may want to push an event from inside that handler, hence + the recursive mutex. + https://bugzilla.gnome.org/show_bug.cgi?id=650916 + +2011-05-24 11:17:25 +0300 Olivier Crête + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Use PADs lock + https://bugzilla.gnome.org/show_bug.cgi?id=650916 + +2011-07-27 18:15:20 +0100 Sjoerd Simons + + * gst/rtp/gstrtph264depay.c: + * gst/rtp/gstrtph264depay.h: + rtph264depay: Cope with FU-A E bit not being set + Some h264 payloaders are unfortunately buggy and don't correctly set the + E bit in FU-A NAL when they have ended. Work around this by assuming + such a fragmentation unit has ended when there was no packet loss and a + new NAL is started + +2011-04-12 17:01:47 +0530 Arun Raghavan + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + ac3parse: Support switching alignment on-the-fly + This allows switching of alignment for E-AC3 streams at run-time. This + is requested by downstream elements via a custom event. + https://bugzilla.gnome.org/show_bug.cgi?id=650313 + +2011-04-09 12:26:56 +0530 Arun Raghavan + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + * tests/check/elements/ac3parse.c: + ac3parse: Add support for IEC 61937 alignment + When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading + requires each buffer to contain 6 blocks from each substream. This adds + code to collect all the frames needed to meet this requirement before + pushing out a buffer. + https://bugzilla.gnome.org/show_bug.cgi?id=650313 + +2011-06-08 15:57:37 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: Always send application requested feedback in immediate mode + Send as many application requested feedback messages in immediate mode, even if they + have already been sent. + https://bugzilla.gnome.org/show_bug.cgi?id=654583 + +2011-06-08 14:48:01 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: Don't let the computed RTP bandwidth fall too low + If it falls too low, the computed RTCP bandwidth will be near zero and + the RTCP thread will be stopped. + https://bugzilla.gnome.org/show_bug.cgi?id=654583 + +2011-04-25 16:13:38 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: Wait longer to timeout SSRC collision + Using the current RTCP interval to timeout SSRC collision can lead to + collisions being timed out immediately if a BYE packet is sent because + it is sent immediately, so the interval is 0. This is not what we + want. So just set a static 10 times the default RTCP interval, it + should be enough + https://bugzilla.gnome.org/show_bug.cgi?id=648642 + +2011-07-19 13:38:01 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: set SOURCE flag at init time + Fixes #654816. + +2011-07-18 16:46:27 -0400 Olivier Crête + + * gst/rtp/gstrtph264depay.c: + rtph264depay: Complete merged AU on marker bit + The marker bit on a RTP packet means the AU has been completed, so push it out + immediately to reduce the latency. + https://bugzilla.gnome.org/show_bug.cgi?id=654850 + +2011-07-18 20:27:38 -0400 Olivier Crête + + * gst/rtp/gstrtph264pay.c: + * gst/rtp/gstrtph264pay.h: + rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit + An access unit could contain multiple NAL units, in that case, only the last + RTP packet of the last NALU should have its marker bit set. + https://bugzilla.gnome.org/show_bug.cgi?id=654850 + +2011-07-20 08:52:58 +0200 Alessandro Decina + + * gst/multipart/multipartmux.c: + multipart: fix compiler warning + +2011-07-19 12:05:51 +0200 Mark Nauwelaerts + + * gst/auparse/gstauparse.c: + auparse: avoid hanging on invalid short input + ... as in such case there is no srcpad yet on which to forward EOS. + +2011-07-18 15:13:33 -0300 Thiago Santos + + * ext/pulse/pulsesrc.c: + pulsesrc: Fix default value leaking + Remember to free the default value of client name, avoiding a + leak + +2011-07-18 14:24:48 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtph264depay.c: + rtph264depay: reset upon FLUSH_STOP + ... which is particularly needed when merging NAL units, where not resetting + would lead to output of an older (pre-flush) AU (with unintended timestamp). + +2011-07-18 14:30:51 +0200 Mark Nauwelaerts + + * gst/multifile/gstmultifilesink.c: + multifilesink: do not use g_slist_free_full + ... as that is only in GLib 2.28, which is not yet required at this time. + +2011-07-18 09:38:26 +0200 Alessandro Decina + + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * tests/check/elements/multifile.c: + multifilesink: add max-files property + Add max-files property to limit the number of files saved on disk. + API: multifilesink::max-files + +2011-07-17 23:36:55 +0200 Alessandro Decina + + * gst/multifile/gstmultifilesink.c: + multifilesink: refactor file opening and closing code + +2011-07-16 19:38:51 +0200 Alexey Fisher + + * gst/matroska/matroska-demux.c: + matroskademux: fix pixel-aspect-ratio if header has only one display variable + Current matroska demux calculates the pixel aspect ratio only if both + DisplayHeight and DisplayWidth are set, but it is legal to use only + one variable if the other is equal to PixelWidth or PixelHeight, at + least the mkclean utility is doing that. So this makse mkcleaned + files play correctly. + https://bugzilla.gnome.org/show_bug.cgi?id=654744 + +2011-07-16 23:47:50 +0100 Antoine Jacoutot + + * gst/goom/plugin_info.c: + goom: fix build on PPC on openbsd + A missing sys/param.h include results in: + /usr/include/sys/proc.h:64: error: 'MAXLOGNAME' undeclared here (not in a + function) + /usr/include/sys/proc.h:285: error: 'MAXCOMLEN' undeclared here (not in a + function) + when compiling goom on openbsd/ppc. We can just remove the two sys/ includes + here, they are not needed for anything. + https://bugzilla.gnome.org/show_bug.cgi?id=654749 + +2011-07-14 20:10:02 -0400 Olivier Crête + + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmapay.c: + * gst/rtp/gstrtppcmudepay.c: + * gst/rtp/gstrtppcmupay.c: + rtppcmApay/depay: Static clock rates on static payloads, dynamic on dynamic + Partially reverts 397dc60b + +2011-03-04 15:41:22 -0500 Olivier Crête + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtph264pay.c: + rtph264pay: Implement getcaps + Convert profile-level-id from RTP caps into video/x-h264 style caps (with profile and level) + +2011-07-12 15:04:38 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix seeking regression + ... introduced when shuffling around code for the async implementation + by setting state of source (and udp sources) in _play before downstream + flushing is undone. + +2011-07-11 15:23:41 +0300 René Stadler + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + ac3parse: fix buffer duration on blocks-per-frame change + The gst_base_parse_set_frame_rate call was predicated on a change to + sample rate, duration or profile. However, the block count per frame can + also change between packets, which would result in incorrect buffer + durations. + +2011-07-09 19:23:41 -0700 David Schleef + + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + multifilesrc: Improve looping + Add start-index and stop-index properties. + +2011-06-16 13:57:03 +0100 Jonny Lamb + + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + multifile: add loop property to multifilesrc + Fixes: #652727 + Signed-off-by: Jonny Lamb + Signed-off-by: David Schleef + +2009-11-20 10:07:43 +0100 Philip Jägenstedt + + * sys/directsound/gstdirectsoundsink.c: + directsoundsink: 16-bit audio is signed, 8-bit is unsigned. + Pretending to handle 8-bit signed causes distorted audio when + actually given such audio, which you will get if passing 8-bit + unsigned through audioconvert ! audioresample, as audioresample + only handles 8-bit signed. Fixes #605834. + Signed-off-by: David Schleef + +2011-07-07 18:27:36 +0200 Alexey Fisher + + * gst/matroska/matroska-demux.c: + matroskademux: handle blocks with duration=0 + Some video frames, for example alt-ref frame in VP8, will be + never displayed. This is why it has duration=0. + This patch allow to use this duration. + Bug: 654175 + Signed-off-by: Alexey Fisher + +2011-07-06 17:18:05 -0700 David Schleef + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmuxmap.c: + qtmux: Add direct dirac mapping + +2011-06-29 20:59:26 +0300 René Stadler + + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + pulsesink: prevent race condition causing ref leak + Since commit 8bfd80, gst_pulseringbuffer_stop doesn't wait for the + deferred call to be run before returning. This causes a race when + READY->NULL is executed shortly after, which stops the mainloop. This + leaks the element reference which is passed as userdata for the callback + (introduced in commit 7cf996, bug #614765). + The correct fix is to wait in READY->NULL for all outstanding calls to + be fired (since libpulse doesn't provide a DestroyNotify for the + userdata). We get rid of the reference passing from 7cf996 altogether, + since finalization from the callback would anyways lead to a deadlock. + Re-fixes bug #614765. + +2011-07-04 08:58:14 +0300 René Stadler + + * ext/pulse/pulsesink.c: + pulsesink: small cleanup of copy-paste code + +2011-06-29 19:50:42 +0300 René Stadler + + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesink.h: + pulsesink: remove unused member variable and misleading log message + Wim changed it in commit 8bfd80 so that pa_defer_ran is not read + anywhere. + The log message used to annotate a mainloop_wait call which is gone. + +2011-07-04 12:58:38 -0700 David Schleef + + * gst/goom/gstgoom.c: + goom: Don't answer lantency queries before negotiation + +2011-07-04 14:30:09 +0200 Mark Nauwelaerts + + * ext/jpeg/gstjpegdec.c: + jpegdec: avoid crashing on invalid input without components + +2011-07-04 11:25:28 +0200 Mark Nauwelaerts + + * gst/flv/gstflvmux.c: + flvmux: pass along segment info to collectpads + ... so it can track this and be subsequently used to determine running time etc. + +2011-07-04 11:24:23 +0200 Mark Nauwelaerts + + * gst/flv/gstflvdemux.c: + flvdemux: indicate raw format in aac caps + +2011-07-03 19:51:32 -0700 David Schleef + + * ext/pulse/plugin.c: + pulse: Increase ranks to PRIMARY + 10 + So that pulsesrc/pulsesink get chosen over other possible PRIMARY + src/sinks by autoaudiosink. Presumably, if pulse is available, it + is always preferred over another src/sink. + Fixes: #647540. + +2011-06-30 18:47:48 -0700 David Schleef + + * gst/multipart/multipartmux.c: + multipartmux: Add \r\n to tail of pushed buffers + Clients such as Firefox require the \r\n after the payload. + +2011-06-16 14:52:51 +0200 Branko Subasic + + * gst/matroska/ebml-read.c: + * gst/matroska/matroska-demux.c: + matroskademux: avoid looping when searching for clusters + Fixes some bugs that results in the demuxer looping when seaching + for clusters in non-finalized files. + https://bugzilla.gnome.org/show_bug.cgi?id=652195 + +2011-06-10 18:54:48 +0530 Debarshi Ray + + * gst/matroska/matroska-parse.c: + matroskaparse: fix reference counting of parse->streamheader + https://bugzilla.gnome.org/show_bug.cgi?id=652286 + Signed-off-by: David Schleef + +2011-06-29 14:39:52 -0700 David Schleef + + * ext/jpeg/gstjpegenc.c: + jpegenc: Don't round up size of encoded buffers + For some reason, in code dating to 2001, encoded jpeg buffers were + rounded up to multiples of 4 bytes. With the added bonus that the + extra bytes are unwritten, causing valgrind issues. Oops. I can't + think of any reason why JPEG buffers need to be multiples of 4 bytes, + so I removed the padding. There might be some code somewhere that + depends on this behavior, so if this needs to be reverted, please fix + the valgrind issues. + +2011-06-29 12:05:04 +0200 Mark Nauwelaerts + + * gst/isomp4/gstqtmux.c: + qtmux: free date tag + +2011-06-28 12:26:37 +0200 Jonas Larsson + + * gst/audioparsers/gstaacparse.c: + aacparse: not so greedy minimum frame size + Fixes #653559. + +2011-06-25 11:39:23 -0700 David Schleef + + * configure.ac: + configure: remove non-pkg-config check for shout + Fixes: 653327 + +2011-06-20 18:49:57 +0200 Andoni Morales Alastruey + + * ext/raw1394/gst1394clock.c: + dv1394src: make the internal clock thread safe + Fixes: #653091. + +2011-06-24 11:54:29 +0200 Miguel Angel Cabrera Moya + + * gst/rtpmanager/rtpjitterbuffer.c: + rtpjitterbuffer: return correct type when assertion fails + +2011-06-23 11:28:27 -0700 David Schleef + + * common: + Automatic update of common submodule + From 69b981f to 605cd9a + +2011-02-02 16:18:54 +0530 Arun Raghavan + + * configure.ac: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesrc.c: + * ext/pulse/pulseutil.c: + * ext/pulse/pulseutil.h: + pulse: Drop support for PA versions before 0.9.16 + This drops support fof PulseAudio versions prior to 0.9.16, which was + released about 1.5 years ago. Testing with very old versions is not + feasible and we don't want to maintain 2 independent code-paths. + +2011-06-21 15:15:06 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtpmp4adepay.c: + rtpmp4adepay: fix output buffer timestamps in case of multiple frames + +2011-06-20 16:47:36 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: The signal has 5 arguments, not 4 + +2011-06-18 13:43:02 +0100 Tim-Philipp Müller + + Bump git version after unplanned 0.10.30 release + Merge branch '0.10.30' + Conflicts: + configure.ac + docs/plugins/inspect/plugin-1394.xml + docs/plugins/inspect/plugin-aasink.xml + docs/plugins/inspect/plugin-alaw.xml + docs/plugins/inspect/plugin-alpha.xml + docs/plugins/inspect/plugin-alphacolor.xml + docs/plugins/inspect/plugin-annodex.xml + docs/plugins/inspect/plugin-apetag.xml + docs/plugins/inspect/plugin-audiofx.xml + docs/plugins/inspect/plugin-audioparsers.xml + docs/plugins/inspect/plugin-auparse.xml + docs/plugins/inspect/plugin-autodetect.xml + docs/plugins/inspect/plugin-avi.xml + docs/plugins/inspect/plugin-cacasink.xml + docs/plugins/inspect/plugin-cairo.xml + docs/plugins/inspect/plugin-cutter.xml + docs/plugins/inspect/plugin-debug.xml + docs/plugins/inspect/plugin-deinterlace.xml + docs/plugins/inspect/plugin-dv.xml + docs/plugins/inspect/plugin-efence.xml + docs/plugins/inspect/plugin-effectv.xml + docs/plugins/inspect/plugin-equalizer.xml + docs/plugins/inspect/plugin-esdsink.xml + docs/plugins/inspect/plugin-flac.xml + docs/plugins/inspect/plugin-flv.xml + docs/plugins/inspect/plugin-flxdec.xml + docs/plugins/inspect/plugin-gconfelements.xml + docs/plugins/inspect/plugin-gdkpixbuf.xml + docs/plugins/inspect/plugin-goom.xml + docs/plugins/inspect/plugin-goom2k1.xml + docs/plugins/inspect/plugin-gstrtpmanager.xml + docs/plugins/inspect/plugin-halelements.xml + docs/plugins/inspect/plugin-icydemux.xml + docs/plugins/inspect/plugin-id3demux.xml + docs/plugins/inspect/plugin-imagefreeze.xml + docs/plugins/inspect/plugin-interleave.xml + docs/plugins/inspect/plugin-isomp4.xml + docs/plugins/inspect/plugin-jack.xml + docs/plugins/inspect/plugin-jpeg.xml + docs/plugins/inspect/plugin-level.xml + docs/plugins/inspect/plugin-matroska.xml + docs/plugins/inspect/plugin-mulaw.xml + docs/plugins/inspect/plugin-multifile.xml + docs/plugins/inspect/plugin-multipart.xml + docs/plugins/inspect/plugin-navigationtest.xml + docs/plugins/inspect/plugin-oss4.xml + docs/plugins/inspect/plugin-ossaudio.xml + docs/plugins/inspect/plugin-png.xml + docs/plugins/inspect/plugin-pulseaudio.xml + docs/plugins/inspect/plugin-replaygain.xml + docs/plugins/inspect/plugin-rtp.xml + docs/plugins/inspect/plugin-rtsp.xml + docs/plugins/inspect/plugin-shapewipe.xml + docs/plugins/inspect/plugin-shout2send.xml + docs/plugins/inspect/plugin-smpte.xml + docs/plugins/inspect/plugin-soup.xml + docs/plugins/inspect/plugin-spectrum.xml + docs/plugins/inspect/plugin-speex.xml + docs/plugins/inspect/plugin-taglib.xml + docs/plugins/inspect/plugin-udp.xml + docs/plugins/inspect/plugin-video4linux2.xml + docs/plugins/inspect/plugin-videobox.xml + docs/plugins/inspect/plugin-videocrop.xml + docs/plugins/inspect/plugin-videofilter.xml + docs/plugins/inspect/plugin-videomixer.xml + docs/plugins/inspect/plugin-wavenc.xml + docs/plugins/inspect/plugin-wavpack.xml + docs/plugins/inspect/plugin-wavparse.xml + docs/plugins/inspect/plugin-ximagesrc.xml + docs/plugins/inspect/plugin-y4menc.xml + win32/common/config.h + +2011-06-17 10:37:33 +0100 Tim-Philipp Müller + + * sys/sunaudio/gstsunaudiosink.c: + * sys/sunaudio/gstsunaudiosink.h: + sunaudio: fix typo in comment + +2011-06-17 03:07:09 +0300 Stefan Kost + + * gst/audiofx/audioecho.c: + audioecho: fix param flags + If the parameter cannot be changed in paused&playing, it is not controlable. Set + the appropriate mutability flag instead. + +=== release 0.10.30 === + +2011-06-15 23:57:34 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-annodex.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-efence.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-esdsink.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gconfelements.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-halelements.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-good.doap: + * win32/common/config.h: + Release 0.10.30 + This is an ad-hoc release that is almost identical to 0.10.29: + * work around GLib atomic ops API change + * better handling of malformed buffers in RTP depayloders + * some minor compilation fixes + +2011-06-08 18:33:10 +0300 Raimo Järvi + + * gst/udp/gstudpnetutils.h: + udp: Fix compiler warning on mingw-w64 + Fixes: #652144. + gstudpnetutils.h:32:0: error: "WINVER" redefined + /usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the + location of the previous definition + +2011-06-04 13:49:52 -0700 David Schleef + + * gst/interleave/interleave.c: + interleave: Work around changes in g_atomic API + See #651514 for details. + +2011-05-18 12:36:40 +0200 Jose Antonio Santos Cadenas + + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpg722depay.c: + * gst/rtp/gstrtpg726depay.c: + * gst/rtp/gstrtpgsmdepay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpmp1sdepay.c: + * gst/rtp/gstrtpmp2tdepay.c: + * gst/rtp/gstrtpmpvdepay.c: + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmudepay.c: + * gst/rtp/gstrtpspeexdepay.c: + rtp: Fix segmentation fault processing payload buffers + This commit checks if the value returned by + gst_rtp_buffer_get_payload_buffer and + gst_rtp_buffer_get_payload_subbuffer is NULL before using it. + +2011-05-16 09:04:31 +0200 Pino Toscano + + * ext/pulse/pulseutil.c: + pulse: Define PATH_MAX if it isn't defined + GNU Hurd for example doesn't define it. + +2011-04-29 08:55:19 +0200 Sebastian Dröge + + * gst/wavenc/gstwavenc.c: + wavenc: Allow setcaps to be called after a format was negotiated if it's compatible + Otherwise wavenc will fail if upstream decides to set equivalent caps or caps + with additional information later. + Thanks to Alexander Schremmer for finding this bug. + +2011-06-09 21:06:28 +0300 Stefan Kost + + * gst/matroska/matroska-read-common.c: + matroska: add missing stdio include for sscanf + +2011-06-13 17:05:19 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstmpegaudioparse.c: + audioparsers: not so greedy minimum frame size + ... which will be determined by parsing anyway, and avoids introducing + redundant additional latency. + +2011-06-08 18:33:10 +0300 Raimo Järvi + + * gst/udp/gstudpnetutils.h: + udp: Fix compiler warning on mingw-w64 + Fixes: #652144. + gstudpnetutils.h:32:0: error: "WINVER" redefined + /usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the + location of the previous definition + +2011-06-06 18:21:04 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_chapters + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-06 14:47:27 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_attachments + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-06 12:43:14 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_attached_file + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-05 22:45:55 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_info + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-05 10:15:23 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_metadata + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-05 09:54:42 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_metadata_id_tag + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-05 02:24:41 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_metadata_id_simple_tag + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-06-06 12:42:53 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: reset state tracking variable when appropriate + ... so we don't end up interrupting an operation that should not be interrupted + based on the indication of a previous interruptable operation. + +2011-06-04 13:49:52 -0700 David Schleef + + * gst/interleave/interleave.c: + interleave: Work around changes in g_atomic API + See #651514 for details. + +2011-06-04 13:43:00 -0700 David Schleef + + * ext/soup/gstsouphttpsink.c: + * ext/soup/gstsouphttpsink.h: + souphttpsink: code cleanup + +2011-06-05 02:00:08 +0530 Debarshi Ray + + * gst/matroska/matroska-parse.c: + matroskaparse: Use ARTIST tag instead of AUTHOR for GST_TAG_ARTIST + AUTHOR only existed in an old version of the spec and ARTIST is + the new replacement for this. We are still reading both to still + be compatible with old files. + Fixes bug #644875. + +2011-06-02 13:38:30 +0200 Sebastian Dröge + + * ext/dv/gstdvdemux.c: + dvdemux: First query the peer duration in the requested format before converting to BYTES + Fixes usage of dvdemux after another demuxer, e.g. mxfdemux. + Fixes bug #650503. + +2011-06-02 10:41:52 +0200 Sebastian Dröge + + * ext/soup/gstsouphttpsink.c: + souphttpsink: Fix refcounting of the "session" property + Properties should never take ownership of the values + passed to them. + +2011-06-01 17:04:27 -0700 David Schleef + + * gst/matroska/matroska-mux.c: + matroskamux: For streaming files, push tags first + +2011-05-24 14:52:01 -0700 David Schleef + + * ext/soup/Makefile.am: + * ext/soup/gstsoup.c: + * ext/soup/gstsouphttpsink.c: + * ext/soup/gstsouphttpsink.h: + * ext/soup/gstsouphttpsrc.c: + soup: Add souphttpsink + +2011-06-01 10:19:31 +0200 Thijs Vermeir + + * gst/udp/gstudpsrc.c: + udpsrc: allow skip-first-bytes of full buffer size + +2011-05-30 18:31:50 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_parse_header + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-30 12:09:31 +0200 Antonio Frediani + + * gst/isomp4/gstqtmux.c: + qtmux: Use GST_TAG_IMAGE for coverart too + Fixes bug #638107. + +2011-05-30 10:40:08 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_get_seek_track + - gst_matroska_{demux,parse}_reset_streams + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-28 22:04:34 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska{demux,parse}_found_global_tag + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-28 10:59:09 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_index_seek_find + - gst_matroska{demux,parse}_do_index_seek + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-27 23:15:23 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_tracknumber_unique + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-27 20:28:19 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_decode_data + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-27 19:30:48 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_get_length + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-27 09:17:46 +0200 Sebastian Dröge + + * gst/avi/gstavimux.c: + avimux: Revert 1a90a6c4 and drop Dirac support again + It does not work at all (A/V sync issues), is not very useful, + other containers work much better with Dirac and Dirac in AVI + is not supported by other software. + Fixes bug #541215. + +2011-05-26 23:35:52 +0530 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_encoding_cmp + - gst_matroska_{demux,parse}_read_track_encodings + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_peek_id_length_pull + - gst_matroska_{demux,parse}_peek_id_length_push + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_peek_adapter + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-26 12:48:36 +0200 Sebastian Dröge + + * sys/ximage/ximageutil.c: + xvimagesink: Fallback to non-XShm mode if allocating the XShm image failed + Fixes bug #630456. + +2011-05-26 12:22:52 +0200 Marc Leeman + + * gst/rtp/gstrtpmp4vpay.c: + rtpmp4vpay: Deprecated send-config property and replace by config-interval + Fixes bug #622412. + +2010-06-23 11:12:00 +0200 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + matroskademux: UTF-8 subtitles may have markup + Fixes #616936. + +2011-01-23 15:56:49 +0000 Vincent Penquerc'h + + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttextoverlay.h: + cairotextoverlay: forward new segment events from the sink to the source + Not doing so will cause buffers to be received by downstream without + a time base set. + We use the same method avimux uses to get access to the event when + collectpads got the sink event function. + https://bugzilla.gnome.org/show_bug.cgi?id=640323 + +2011-01-24 11:11:48 +0000 Vincent Penquerc'h + + * ext/cairo/gsttextoverlay.c: + textoverlay: forward source events to sinks + Events are passed to the video sink, and to the text sink if it is + linked. + This will allow seeking, for instance. + https://bugzilla.gnome.org/show_bug.cgi?id=586450 + +2011-05-25 21:12:12 +0200 David Hoyt + + * gst/multipart/multipartdemux.c: + * gst/multipart/multipartdemux.h: + multipartdemux: Add property to assume a single stream and emit no-more-pads + Fixes bug #616686. + +2011-05-25 14:50:26 +0200 Miguel Angel Cabrera Moya + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: uniform unknown message handling + Do the same processing in all the cases when an unknown message is received. + That is, give a warning. + https://bugzilla.gnome.org/show_bug.cgi?id=651059 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_peek_pull + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following function to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_peek_bytes + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_{demux,parse}_encoding_order_unique + - gst_matroska_{demux,parse}_read_track_encoding + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-24 13:12:19 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtppcmudepay.c: + pcmudepay: allow variable sample rate + +2011-05-24 13:11:54 +0200 Mark Nauwelaerts + + * gst/rtp/gstrtppcmadepay.c: + pcmadepay: allow variable sample rate + +2010-04-04 06:43:41 -0500 Rob Clark + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2sink.c: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/v4l2_calls.c: + v4l2: add norm property + Based on a patch by Guennadi Liakhovetski. + v2: updates because I forgot to add GstTuner interface to v4l2sink + v3: update to add all possible values to norm enum + +2011-05-23 20:46:04 +0300 Debarshi Ray + + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: fixed copyright headers + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Move the following functions to matroska-read-common.[ch] from + matroska-demux.c and matroska-parse.c: + - gst_matroska_decode_content_encodings + - gst_matroska_decompress_data + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 18:48:57 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.h: + matroska: move GstMatroska{Demux,Parse}::state to GstMatroskaReadCommon + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-24 09:48:56 +0200 Jonas Larsson + + * gst/isomp4/qtdemux.c: + qtdemux: Fix buffer leak with corrupted files + Fixes bug #650912. + +2011-05-23 02:46:38 -0700 Miguel Angel Cabrera Moya + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: fix parameter type in trace + https://bugzilla.gnome.org/show_bug.cgi?id=650937 + +2011-05-23 18:06:44 +0300 Debarshi Ray + + * gst/matroska/Makefile.am: + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-demux.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-parse.h: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: refactor code common to matroskademux and matroskaparse + Replace the following functions with their gst_matroska_read_common_* + counterparts: + - gst_matroska_{demux,parse}_parse_index + - gst_matroska_{demux,parse}_parse_skip + - gst_matroska_{demux,parse}_stream_from_num + Introduce GstMatroskaReadCommon to contain those members of + GstMatroskaDemux and GstMatroskaParse that were used by the above + functions. + https://bugzilla.gnome.org/show_bug.cgi?id=650877 + +2011-05-23 13:50:46 +0100 Tim-Philipp Müller + + * gst/audioparsers/gstflacparse.c: + flacparse: tell baseparse the duration in samples for better accuracy + Tell GstBaseParse the duration in samples instead of time, so that + a duration query in DEFAULT format will return the correct number + of samples without rounding errors. Baseparse will convert this + into time itself when needed. + https://bugzilla.gnome.org/show_bug.cgi?id=650785 + +2011-05-23 13:25:44 +0100 Tim-Philipp Müller + + * ext/flac/gstflacdec.c: + flacdec: also try upstream first for duration query in DEFAULT format + https://bugzilla.gnome.org/show_bug.cgi?id=650785 + +2011-05-23 13:23:21 +0100 Tim-Philipp Müller + + * gst/audioparsers/gstflacparse.c: + flacparse: make conversion from TIME to DEFAULT format (samples) work + Fix copy'n'paste error in the previous commit. + +2011-05-23 11:36:36 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Implement conversions between TIME and DEFAULT format + Fixes bug #650785. + +2011-05-22 18:50:51 +0100 Tim-Philipp Müller + + * gst/audioparsers/gstflacparse.c: + flacparse: don't error out on invalid minimum_blocksize value in streaminfo header + We don't use it, so may just as well accept an invalid value + of 0 here, which is likely inconsequential anyway. + https://bugzilla.gnome.org/show_bug.cgi?id=650691 + +2011-05-20 10:34:47 +0300 Stefan Kost + + * gst/rtp/gstrtpjpegpay.c: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpqcelpdepay.c: + rtp: fix static array overruns in a nicer way + Use G_N_ELEMENTS instead of hard-coding the array size. + +2011-05-20 00:53:44 +0300 Stefan Kost + + * gst/rtp/gstrtpjpegpay.c: + * gst/rtp/gstrtpmp4adepay.c: + * gst/rtp/gstrtpqcelpdepay.c: + rtp: fix static array overruns + Yes array[10] has elements from 0...9. + +2011-05-19 23:31:19 +0300 Stefan Kost + + * docs/plugins/gst-plugins-good-plugins.args: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/gst-plugins-good-plugins.interfaces: + * docs/plugins/gst-plugins-good-plugins.prerequisites: + docs: update plugin introspection data + Now more files are merged and produced in a canonical fashion, which hopefully + creates less or no delta in the future. + +2011-05-19 22:57:15 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 9e5bbd5 to 69b981f + +2011-05-19 18:21:33 +0300 Stefan Kost + + * gst/isomp4/qtdemux.c: + qtdemux: add missing break + +2010-11-08 14:06:15 +0100 Robert Swain + + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + deinterlace: Add support for deinterlacing using buffer caps/flags + When not using the fieldanalysis element immediately upstream of deinterlace, + behaviour should remain unchanged. fieldanalysis will set the caps and flags on + the buffers such that they can be interpreted and acted upon to produce + progressive output. + There are two main modes of operation: + - Passive pattern locking + Passive pattern locking is a non-blocking, low-latency mode of operation that + is suitable for close-to-live usage. Initially a telecine stream will be + output as variable framerate with naïve timestamp adjustment. With each + incoming buffer, an attempt is made to lock onto a pattern. When a lock is + obtained, the src pad and output buffer caps will reflect the pattern and + timestamps will be accurately interpolated between pattern repeats. This + means that initially and at pattern transitions there will be short periods + of inaccurate timestamping. + - Active pattern locking + Active pattern locking is a blocking, high-latency mode of operation that is + targeted at use-cases where timestamp accuracy is paramount. Buffers will be + queued until enough are present to make a lock. When locked, timestamps will + be accurately interpolated between pattern repeats. Orphan fields can be + dropped or deinterlaced. If no lock can be obtained, a single field might be + pushed through to be deinterlaced. + Locking can also be disabled or 'auto' chooses between passive and active + locking modes depending on whether upstream is live. + +2011-05-10 16:25:40 -0700 David Schleef + + * configure.ac: + configure: Remove config script check for caca + +2011-05-18 12:36:40 +0200 Jose Antonio Santos Cadenas + + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpg722depay.c: + * gst/rtp/gstrtpg726depay.c: + * gst/rtp/gstrtpgsmdepay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpmp1sdepay.c: + * gst/rtp/gstrtpmp2tdepay.c: + * gst/rtp/gstrtpmpvdepay.c: + * gst/rtp/gstrtppcmadepay.c: + * gst/rtp/gstrtppcmudepay.c: + * gst/rtp/gstrtpspeexdepay.c: + rtp: Fix segmentation fault processing payload buffers + This commit checks if the value returned by + gst_rtp_buffer_get_payload_buffer and + gst_rtp_buffer_get_payload_subbuffer is NULL before using it. + +2011-05-18 16:10:07 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From fd35073 to 9e5bbd5 + +2011-05-18 12:52:31 +0200 Mark Nauwelaerts + + * gst/avi/gstavidemux.c: + avidemux: ensure 0-padding when correcting dubious list size + +2011-05-18 12:24:25 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 46dfcea to fd35073 + +2011-05-18 10:22:27 +0300 Stefan Kost + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: use EINVAL for missing url parameter + Fixes gcc warning about using uninitialized variable 'res'. + +2011-04-28 15:37:40 +0300 Stefan Kost + + * gst/debugutils/rndbuffersize.c: + * gst/videofilter/gstgamma.c: + various: fix author tag in element details + +2011-04-20 15:25:58 -0400 Chris E Jones + + * gst/auparse/gstauparse.c: + auparse: implement seeking + Implement seeking and seeking query. Fixes #644512 + +2011-04-06 16:05:55 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: also allow PAUSE to be interrupted + ... as it is on the way out to NULL. + See #632504. + +2011-04-06 15:51:49 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: ensure proper closing and cleanup + ... since the TEARDOWN sequence might not have had a chance to even start, + but at least connections should be closed (synchronously) and state cleaned up. + See #632504. + +2011-04-06 15:49:01 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: fix and improve async handling + Simplify the command handling; passing a command to thread means we really + want it to get the message, which means to always flush provided the command + can handle being interrupted. Command thread indicates whether command + allows interruption and ensure non-flushing connection as it subsequently + needs it. + In particular, this also makes the TEARDOWN sequence interruptable + and also prevents races where _loop_ could miss a command and would + continue receiving (or at least trying to). + See #632504. + +2011-04-06 14:53:27 +0200 Mark Nauwelaerts + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: tweak post-seek loop handling + +2011-01-10 12:46:37 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: open on play and pause when not done yet + With the async state changes, it is possible that we need to open the stream + before play and pause. + Also make sure we remember a previous open failure so that we don't keep trying + again. + +2011-01-10 11:45:03 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: improve async handling + Simplify the command handling, only continue looping when we have not received + another command or when the previous loop was successfull. + Avoid looping on a disconnected socket. + +2011-01-07 18:02:49 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: rework reconnect code + Use the same async code path to implement reconnects. + Make sure we only post progress messages when doing async things. + +2011-01-07 17:19:59 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: small cleanups + Make sure we cancel the previous task when queuing a new one. + Move the messages to a central place so we can more easily post them. + +2011-01-07 15:15:49 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: don't post errors when interrupting + +2011-01-07 13:43:06 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: implement more async handling + Remove some old locks. + Make sure we never go into the loop function when flushing. + +2011-01-07 11:40:32 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: first attempt at async implementation + +2011-01-07 11:40:11 +0100 Wim Taymans + + * gst/rtsp/gstrtspsrc.h: + rtspsrc: small header cleanups + +2011-05-17 10:47:32 +0200 Sebastian Dröge + + * gst/rtpmanager/gstrtpssrcdemux.c: + ssrcdemux: Fix uninitialized variable compiler warning for (pre-) releases too + +2011-04-28 15:57:04 +0200 Edward Hervey + + * sys/v4l2/gstv4l2object.c: + v4l2objects: Only allow mpeg-ts on source objects + Ugly fix for #648312 + +2011-05-17 09:24:08 +0200 Sebastian Dröge + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Fix uninitialized variable compiler warning + +2011-05-06 19:09:17 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpssrcdemux.c: + ssrcdemux: Implement iterate internal links for sink pads + https://bugzilla.gnome.org/show_bug.cgi?id=649617 + +2011-05-06 18:41:01 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: iterate pad function is only valid for src pads + The iterate function is only used for src pads, so mark it as such and remove + dead code. + https://bugzilla.gnome.org/show_bug.cgi?id=649617 + +2011-05-06 18:12:53 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: Release lock before emitting signal + If the lock is not released before emitting a signal, it may cause a deadlock + if any other function in the element is called. + Also removed an unused timestamp parameter + https://bugzilla.gnome.org/show_bug.cgi?id=649617 + +2011-05-15 23:25:15 +0300 Debarshi Ray + + * gst/matroska/matroska-parse.c: + matroskaparse: calculate segment duration after parsing all the IDs + Since the segment duration is given in terms of the + GST_MATROSKA_ID_TIMECODESCALE we should only convert it into + nanoseconds when we are sure that any scale specified in the file has + been read. + https://bugzilla.gnome.org/show_bug.cgi?id=650258 + +2011-05-04 11:55:21 +0200 Mark Nauwelaerts + + * gst/matroska/matroska-demux.c: + matroskademux: additional lock safety + Fixes #619590. + +2011-04-26 16:06:56 +0200 Mark Nauwelaerts + + * gst/isomp4/qtdemux.c: + qtdemux: also check for bitrate info in caps + +2010-05-25 01:04:43 +0530 Arun Raghavan + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: guess bitrate if only one stream's bitrate is unknown + If the bitrates for all but one audio/video streams are known, and the + total stream size and duration can be determined, this calculates the + unkown bitrate as (stream size / duration) - (sum of known bitrates). + While this is not guaranteed to be very accurate, it should be good + enough for most purposes. + For example, this is useful for H.263 + AAC streams where no 'btrt' atom + is available for the video portion. + https://bugzilla.gnome.org/show_bug.cgi?id=619548 + +2010-05-31 23:59:59 +0530 Arun Raghavan + + * gst/isomp4/qtdemux.c: + qtdemux: Export max bitrate for AMR-NB/-WB streams + This parses the 'damr' atom if present, and exports the maximum bitrate + of the stream using the mode set field to determine the highest bitrate + frame type that might be present. + https://bugzilla.gnome.org/show_bug.cgi?id=620186 + +2011-05-16 09:04:31 +0200 Pino Toscano + + * ext/pulse/pulseutil.c: + pulse: Define PATH_MAX if it isn't defined + GNU Hurd for example doesn't define it. + +2011-05-15 23:25:15 +0300 Debarshi Ray + + * gst/matroska/matroska-demux.c: + matroskademux: calculate segment duration after parsing all the IDs + Since the segment duration is given in terms of the + GST_MATROSKA_ID_TIMECODESCALE we should only convert it into + nanoseconds when we are sure that any scale specified in the file has + been read. + https://bugzilla.gnome.org/show_bug.cgi?id=650258 + +2011-05-09 19:00:45 +0200 Andoni Morales Alastruey + + * gst/flv/gstflvmux.c: + flvmux: Add support for mpegversion 2, which is also AAC + +2011-05-11 10:25:15 +0200 Sebastian Dröge + + * ext/flac/gstflacdec.c: + * ext/flac/gstflacdec.h: + flacdec: Send EOS when seeking after the end of file instead of failing + Fixes bug #649780. + +2011-04-29 08:59:20 +0200 Sebastian Dröge + + * gst/wavenc/gstwavenc.c: + wavenc: Set fixedcaps getcaps function on the sinkpad + wavenc does not allow to change the caps during playback + and always returning the template caps is just wrong. + +2011-04-29 08:55:19 +0200 Sebastian Dröge + + * gst/wavenc/gstwavenc.c: + wavenc: Allow setcaps to be called after a format was negotiated if it's compatible + Otherwise wavenc will fail if upstream decides to set equivalent caps or caps + with additional information later. + Thanks to Alexander Schremmer for finding this bug. + +2011-05-14 10:02:22 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-annodex.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-efence.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-esdsink.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gconfelements.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-halelements.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * win32/common/config.h: + Back to development + === release 0.10.29 === -2011-05-10 Tim-Philipp Müller +2011-05-10 10:04:28 +0100 Tim-Philipp Müller + * ChangeLog: + * NEWS: + * RELEASE: * configure.ac: - releasing 0.10.29, "Soft Cheese Enthusiast" + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/gst-plugins-good-plugins.interfaces: + * docs/plugins/gst-plugins-good-plugins.prerequisites: + * docs/plugins/inspect/plugin-1394.xml: + * docs/plugins/inspect/plugin-aasink.xml: + * docs/plugins/inspect/plugin-alaw.xml: + * docs/plugins/inspect/plugin-alpha.xml: + * docs/plugins/inspect/plugin-alphacolor.xml: + * docs/plugins/inspect/plugin-annodex.xml: + * docs/plugins/inspect/plugin-apetag.xml: + * docs/plugins/inspect/plugin-audiofx.xml: + * docs/plugins/inspect/plugin-audioparsers.xml: + * docs/plugins/inspect/plugin-auparse.xml: + * docs/plugins/inspect/plugin-autodetect.xml: + * docs/plugins/inspect/plugin-avi.xml: + * docs/plugins/inspect/plugin-cacasink.xml: + * docs/plugins/inspect/plugin-cairo.xml: + * docs/plugins/inspect/plugin-cutter.xml: + * docs/plugins/inspect/plugin-debug.xml: + * docs/plugins/inspect/plugin-deinterlace.xml: + * docs/plugins/inspect/plugin-dv.xml: + * docs/plugins/inspect/plugin-efence.xml: + * docs/plugins/inspect/plugin-effectv.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-esdsink.xml: + * docs/plugins/inspect/plugin-flac.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flxdec.xml: + * docs/plugins/inspect/plugin-gconfelements.xml: + * docs/plugins/inspect/plugin-gdkpixbuf.xml: + * docs/plugins/inspect/plugin-goom.xml: + * docs/plugins/inspect/plugin-goom2k1.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-halelements.xml: + * docs/plugins/inspect/plugin-icydemux.xml: + * docs/plugins/inspect/plugin-id3demux.xml: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-isomp4.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpeg.xml: + * docs/plugins/inspect/plugin-level.xml: + * docs/plugins/inspect/plugin-matroska.xml: + * docs/plugins/inspect/plugin-mulaw.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-multipart.xml: + * docs/plugins/inspect/plugin-navigationtest.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-ossaudio.xml: + * docs/plugins/inspect/plugin-png.xml: + * docs/plugins/inspect/plugin-pulseaudio.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rtp.xml: + * docs/plugins/inspect/plugin-rtsp.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-shout2send.xml: + * docs/plugins/inspect/plugin-smpte.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speex.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-udp.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-videobox.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videofilter.xml: + * docs/plugins/inspect/plugin-videomixer.xml: + * docs/plugins/inspect/plugin-wavenc.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-wavparse.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-good.doap: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/el.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/gl.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ro.po: + * po/ru.po: + * po/sk.po: + * po/sl.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * po/zh_HK.po: + * po/zh_TW.po: + * win32/common/config.h: + Release 0.10.29 + Highlights: + - amrparse, aacparse, ac3parse, flacparse, mpegaudioparse, dcaparse audio parsers (moved from -bad) + - muxers now mux based on running time + - ISO MP4 muxers: mp4mux/3gppmux/qtmux/mj2mux (moved from -bad) + - new matroskaparse element + - new v4l2radio element + - rtpsession: support RTCP Early Feedback (the AVPF profile) + - orc 0.4.14 or newer recommended + - many other fixes and improvements 2011-05-05 13:24:23 +0200 Edward Hervey diff --git a/Makefile.am b/Makefile.am index fb78f5d..fd94a81 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,7 +37,8 @@ DISTCLEANFILES = _stdint.h noinst_HEADERS = \ gst-libs/gst/gettext.h \ - gst-libs/gst/gst-i18n-plugin.h + gst-libs/gst/gst-i18n-plugin.h \ + gst-libs/gst/glib-compat-private.h ACLOCAL_AMFLAGS = -I m4 -I common/m4 diff --git a/Makefile.in b/Makefile.in index 713f2a5..c878bf4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -85,8 +85,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -102,11 +101,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gst-plugins-good.spec CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -129,9 +128,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -160,6 +161,8 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print AALIB_CFLAGS = @AALIB_CFLAGS@ AALIB_CONFIG = @AALIB_CONFIG@ @@ -236,7 +239,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -311,7 +317,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -335,6 +340,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -369,18 +375,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -433,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -467,7 +466,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -530,7 +528,8 @@ EXTRA_DIST = \ DISTCLEANFILES = _stdint.h noinst_HEADERS = \ gst-libs/gst/gettext.h \ - gst-libs/gst/gst-i18n-plugin.h + gst-libs/gst/gst-i18n-plugin.h \ + gst-libs/gst/glib-compat-private.h # make bz2 as well @@ -554,7 +553,7 @@ all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: +am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps) @for dep in $?; do \ @@ -579,6 +578,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -590,10 +590,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ - else :; fi + @if test ! -f $@; then rm -f stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -826,7 +824,11 @@ dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir @@ -834,7 +836,7 @@ dist-lzma: distdir $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -852,7 +854,7 @@ dist-zip: distdir dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -866,6 +868,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -886,6 +890,7 @@ distcheck: dist && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -914,8 +919,16 @@ distcheck: dist list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -946,10 +959,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1038,8 +1056,8 @@ uninstall-am: .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local am--refresh check check-am clean \ clean-generic clean-libtool ctags ctags-recursive dist \ - dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \ - dist-tarZ dist-xz dist-zip distcheck distclean \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \ + dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ diff --git a/NEWS b/NEWS index 6c3ea27..d4066ec 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,258 @@ -This is GStreamer Good Plug-ins 0.10.29, "Soft Cheese Enthusiast" +This is GStreamer Good Plug-ins 0.10.31, "Faster" + +Changes since 0.10.30: + + * audioparsers: propagate downstream caps constraints upstream + * ac3parse: add support for IEC 61937 alignment and conversion/switching between alignments + * ac3parse: let bsid 9 and 10 through + * auparse: implement seeking + * avidemux: fix wrong stride when inverting uncompressed video + * cairotextoverlay: add a "silent" property to skip rendering; forward new segment events + * deinterlace: add support for deinterlacing using buffer caps/flags (as set by e.g. fieldanalysis) + * deinterlace: new fieldanalysis-related properties: "locking" and "ignore-obscure" + * directsoundsink: fix negotiation/device setup: 16-bit audio is signed, 8-bit is unsigned + * effecttv: fix reverse negotiation; repair color modes in radioactv by taking rgb,bgr into account + * equalizer: also sync the parameters for the filter bands + * flacdec: better timestamp/offset handling; try upstream first for duration queries + * flacdec: send EOS when seeking after the end of file instead of failing + * flacenc: do not drop the first data buffer on the floor + * flacparse: detect when a file lies about fixed block size; ignore invalid minimum_blocksize + * flacparse: more accurate/better duration/timestamp handling + * flvdemux: better timestamp handling (negative cts, detect large pts gaps; fix discontinuity threshold check when timestamps go backwards) + * flvmux: properly determine final duration; metadata/header writing fixes + * gdkpixbufsink: fix inverted pixel-aspect-ratio info on pixbufs + * jack: add "client-name" property to jackaudiosink and jackaudiosrc + * jpegdec: add sof-marker to template caps, so we don't get plugged for lossless jpeg + * jpegdec: Implement upstream negotiation + * matroskademux: seeking fixes; better handling of non-finalized files + * matroskademux: better timestamp/duration handling, fix some stuttering A/V + * matroskademux: add "max-gap-time" property to make gap handling configurable + * matroskademux: UTF-8 subtitles may have markup + * matroskamux: do not use unoffical V_MJPEG codec id + * matroskamux: fix segment handling, so we actually use running time + * matroskamux: for streaming files, push tags first + * matroskamux: handle GstForceKeyUnit event + * multifile: new splitfilesrc element to read multiple files as if they were one single file + * multifilesrc: add "loop" property + * multifilesink: handle buffer lists, useful to keep groups of buffers (GOPs) in the same file + * multifilesink: add flag to cut after a force key unit event + * multifilesink: add "max-files" property + * multifilesink: add new 'max-size' mode and "max-file-size" property for switching to the next file based on size + * multifilesink: write stream-headers when switching to the next file in max-size mode + * multipartdemux: Add property to assume a single stream and emit no-more-pads + * multipartmux: Add \r\n to tail of pushed buffers + * navseek: toggle pause/play on space bar + * osxvideo: Fix leak of NSOpenGLPixelFormat object + * pcmadepay,pcmudepay: allow variable sample rate + * pngenc: increase arbitrary resolution limits + * pulse: Drop support for PA versions before 0.9.16 (1.x is recommended) + * pulse: new pulseaudiosink element to handle format changes (not autoplugged yet) + * pulsesink: add support for compressed audio format passthrough (S/PDIF, mp3-over-bluetooth) + * pulsesink: Allow writes in bigger chunks + * pulsesink: Use the extended stream API if available + * pulsesrc: add a "source-output-index" property; implement GstStreamVolume interface + * qtdemux: better fragmented support (avoid adjustment for keyframe seek; mark all audio track samples as keyframe) + * qtdemux: parse embedded ID32 tags; improve bitrate guessing/extraction + * qtdemux: push mode fixes, fix buffered streaming + * qtmux: add direct dirac mapping + * qtmux: calculate average bitrate for streams + * qtmux: fix ctts generation for streams that don't start at 0 timestamps + * qtmux: use GST_TAG_IMAGE for coverart too + * ismlmux: Use iso-fragmented as variant type (useful in connection with encodebin) + * rtph263ppay: implement getcaps following RFC 4629, picks the right annexes + * rtph263ppay: set H263-2000 if thats what the other side wants + * rtph264depay: complete merged AU on marker bit (thus reducing latency) + * rtph264depay: cope with FU-A E bit not being set (caused by buggy payloaders) + * rtph264depay: exclude NALu size from payload length on truncated packets + * rtph264pay: proxy downstream caps restrictions (converting profile-level-id from RTP caps into video/x-h264 style caps) + * rtph264pay: only set the marker bit on the last NALU of a multi-NALU access unit + * rtpjpegpay: add support for H.264 payload in MJPEG container + * rtpjpegpay: fix for "odd" resolutions not a multiple of DCTSIZE + * rtpmp4adepay: fix output buffer timestamps in case of multiple frames + * rtpmp4gdepay: improve bogus interleaved index compensating + * rtpmp4vpay: deprecated send-config property and replace by config-interval + * rtppcmapay/depay: static clock rates on static payloads, dynamic on dynamic + * rtpvrawpay,-depay: RGB video payloading/depayloading fixes + * rtpg722pay: Compensate for clockrate vs. samplerate difference + * rtpbin: allow configurable rtcp stream syncing interval + * rtpbin: new "rtcp-sync" property, alternative inter-stream syncing methods + * rtpjitterbuffer/rtpbin: relax dropping rtcp packets; misc other fixes + * rtpmanager: don't reveal the user's username, hostname or real name by default + * rtpsession: process received Full Intra Requests (FIR) + * rtpsession: add special mode to use FIR as repair as Google does + * rtpsession: send FIR requests in response to key unit requests with all-headers=TRUE + * rtpsession: always send application requested feedback in immediate mode + * rtpsession: put the PLI requests in each RTPSource + * rtpsession: wait longer to timeout SSRC collision + * rtspsrc: implement async network I/O + * rtspsrc: allow sending short RTSP requests to a server + * rtspsrc: configure rtcp interval if provided + * rtspsrc: open on play and pause when not done yet + * shout2send: send video/webm through libshout + * soup: new souphttpclientsink element + * udpsrc: drop dataless UDP packets + * v4l2: take care not to change the current format where appropriate + * v4l2src, v4l2sink: add "norm" property; default to a pixel-aspect-ratio of 1/1 + * v4l2src: do not ignore the highest frame interval or the largest resolution + * v4l2src: handle some feature query failures more gracefully + * videobox: avoid wrapping opaque to transparent + * wavenc: Allow setcaps to be called after a format was negotiated if it's compatible + * ximagesrc: add "xid" and "xname" properties to allow capturing a particular window + * ximagesrc: fallback to non-XShm mode if allocating the XShm image failed + * ximagesrc: clear flags on buffer reuse, so that flags like DISCONT aren't set accidentally + +Bugs fixed since 0.10.30: + + * 668320 : rtpmanager: RTCP receiver reports reveal full user name + * 652727 : multifilesrc: add ability to loop + * 657422 : [souphttpsrc] The souphttpsrc plugin doesn't work behind a proxy that requires authentication + * 432612 : [matroskamux] doesn't handle segments correctly + * 541215 : [avimux] Dirac muxing is broken and results in A/V sync issues + * 546932 : [ximagesrc] allow recording of specific window only + * 571400 : RTSP blocks in gst_element_set_state( GST_STATE_PAUSED ) and incorrect url + * 576524 : rtpbin, jitterbuffer: add mode to support for recording RTP streams + * 586450 : [cairotextoverlay] Forward upstream events to both sinkpads + * 595055 : [pulsesrc] Should implement GstStreamVolume interface + * 605834 : directsoundsink: 16-bit audio is always signed while 8-bit is always unsigned + * 610916 : rtspsrc dosen't work under windows + * 614803 : v4l2: add tv-norm property + * 616686 : multipartdemux: add " single-stream " property to emit no-more-pads earlier + * 616936 : [matroskademux] Incorrect display of subtitles with markup + * 619548 : qtdemux: Guess bitrate if only one stream's bitrate is unknown + * 619590 : [matroskademux] Doesn't protect segment and other fields from concurrent changes from different threads + * 620186 : qtdemux: Export max bitrate for AMR-NB/-WB streams + * 622412 : [rtpmp4vpay] remove send-config parameter; obsoleted by config-interval + * 624887 : pitivi playback hangs / errors while playing mov clips on clip change + * 630456 : [ximagesrc] Fallback to non-XShm mode if image allocation fails + * 631430 : [flvdemux] Cannot play .flv to the end + * 632504 : [rtspsrc] reduce or avoid (network) hang during shutdown + * 634093 : RTSP client asks for unicast from multicast only server + * 638300 : v4l2src: make this work more than once in a row + * 639217 : udpsrc: allow skip-first-bytes of full buffer size + * 640323 : [cairotextoverlay] forward new segment events from the sink to the source + * 643847 : deinterlace: Add support for deinterlacing using buffer caps/flags + * 644151 : [multifilesink] Add option to create a new file after each GstForceKeyUnit event + * 644154 : [matroskamux] Force a new cluster after each GstForceKeyUnit event + * 644512 : [auparse] Add seeking + * 647540 : autoaudiosink picks element to use by rank, but pulsesink/alsasink/jackaudiosink are all PRIMARY + * 648312 : [v4l2sink] Unconditionally accepts video/mpegts + * 648642 : rtpsession: Ensure ssrc collisions aren't timed out immediately + * 648937 : matroskademux: avoid building index when streamable + * 649067 : v4l2src: got unexpected frame size of 262254 instead of 614400 + * 649617 : [rtp] Deadlock and other fixes for rtpssrcdemux + * 649780 : flac: seek beyond end fails instead of EOSing immediately + * 649955 : flvmux: add support for mpegversion 2, which is also AAC + * 650258 : matroskademux/matroskaparse: gst_element_query_duration returns wrong value for Matroska files + * 650313 : ac3parse: Add support for iec61937 alignment + * 650503 : [dvdemux] Broken DURATION query handling + * 650555 : [aacparse] AAC profiles needed in caps + * 650691 : [flacparse] regression playing some flac files + * 650714 : [amrparse] skips first few frames (problem in checking sync) + * 650785 : [flacparse] duration query in DEFAULT format failing with flacparse in pipeline (regression) + * 650877 : matroska: refactor code common to matroskademux and matroskaparse + * 650912 : Rare leak in qtdemux + * 650916 : REGRESSION: ssrcdemux causing FLOW_NOT_LINKED + * 650937 : deinterlace: fix parameter type in trace + * 651059 : rtspsrc: uniform unknown message handling + * 651443 : multifilesink: add next-file=max-size mode and max-file-size property + * 652195 : matroskademux: seeking in non-finalized matroska files does not work correctly + * 652286 : matroskaparse: Gstreamer-CRITICAL when changing state from PAUSED to READY + * 652467 : matroska: missing < stdio.h > include for sscanf + * 653080 : matroskamux: make check for block_duration less sensitive + * 653091 : [dv1394src] Make the internal clock thread-safe + * 653327 : configure script for gst-plugins-good selects shout2 when it's not present + * 653559 : aacparse: too greedy minimum frame size + * 653709 : [ximagesrc] sets DISCONT on half the buffers + * 654175 : matroskademux: handle blocks with duration=0 + * 654379 : matroskamux: make default framerate optional per stream + * 654583 : Immediate RTCP in rtpsession + * 654585 : rtpmp4gdepay choppy sound + * 654744 : matroskademux: fix aspect ratio if header has only onle display variable set + * 654749 : goom: unbreak build on PPC on openbsd + * 654816 : [rtspsrc] rtspsrc doesn't get eos if it's wrapped into a bin + * 655530 : Logitech B990 HD Webcam yields poor video in MJPEG mode. + * 655570 : qtdemux: assertion error when playing Apple Trailers + * 655805 : Make the extended RTSP headers optional + * 655866 : jackaudiosink: Don't call g_alloca in jack_process_cb + * 655918 : qtdemux : qtdemux_add_fragmented_samples return error. + * 656104 : v4l2src fails to correctly configure the framerate + * 656606 : crash in gst_spectrum_reset_message_data() + * 656649 : flacparse: fix off by one in frame size check + * 656734 : [aacparse] Assumes 1024 samples per frame + * 657080 : aacparse: failing test due to two buffers being dropped for one sync loss + * 657179 : pulse: New pulseaudiosink element to handle format changes + * 657376 : rtspsrc regression + * 657830 : multiudpsink: make add/remove/clear/get-stats action signals + * 658178 : udpsrc: rough error reporting when using an invalid URI + * 658305 : [souphttpsrc] can’t seek during double speed playback + * 658419 : Add FIR support to rtpsession + * 658543 : [v4l2src] Use GST_RESOURCE_ERROR_BUSY if webcam is already used + * 658546 : ac3parse: RealAudio file with AC-3 audio no longer plays + * 659009 : [matroskademux] property for configuring gap handling + * 659065 : navseek: toggle pause/play on space bar + * 659153 : matroskademux: fix stuttering A/V + * 659237 : [gstrtpbin] clock is not unreffed after finish using it + * 659242 : [matroskademux] Unexpected EOS when seeking on paused matroska file + * 659798 : Segfault when you convert with audioconvert from audio file mkv to audio file avi + * 659808 : matroskademux: misc fixes + * 659837 : matroskamux: unable to mux audio/x-raw-int,rate=8000,channels=1,endianness=1234,width=16,depth=16,signed=true + * 659943 : [ac3parse] it does not correcly check for ac3/e-ac3 switch + * 660249 : won't play wav file: invalid WAV header (no fmt at start): ID32 + * 660275 : jpegdec doesn't implement upstream negotiation + * 660294 : goom2k1: Fix mingw compiler warnings + * 660448 : videomixer2: memory leak + * 660468 : speexenc: fix calculation of filler data size + * 660481 : v4l, ximagesrc: printf format warnings + * 660969 : qtmux memleak + * 661049 : matroskademux: support seek with start_type NONE + * 661215 : flacparse: fix last frame timestamp in fixed block size mode + * 661400 : rtpg722pay: G722 rtptime too fast + * 661477 : flvdemux: negative cts causes uint overflow, resulting in sinks waiting forever + * 661841 : [edgetv] video artifacts if videorate placed after edgetv + * 661874 : aacparse fails to forward caps to encoder + * 662856 : cairotextoverlay: add a 'silent' property to skip rendering + * 663186 : taginject is not gap aware + * 663334 : gst/flv/: add amfdefs.h to noinst_HEADERS + * 663580 : v4l2src negotiation failure with weird pixel-aspect-ratios + * 664548 : matroskaparse: memleak + * 664792 : Staircase effect in M-JPEG over RTP with unaligned image dimensions.. + * 664892 : [matroskademux] Doesn't set caps properly + * 665387 : v4l2src: fix stepwise enumeration ignoring the highest values + * 665412 : matroskamux: jpeg muxing regression + * 665502 : [flvdemux] broken a/v sync for some files + * 665666 : multifilesink: GstMultiFileSinkNext not documented + * 665872 : jackaudiosink, jackaudiosrc: add " client-name " property + * 665882 : gdkpixbufsink: " pixel-aspect-ratio " is the inverse of what it should be + * 665911 : Ability to specify ignore-length in wavparse + * 666361 : playbin2: regression: visualisations don't work with pulseaudiosink + * 666583 : matroskademux: too many bus messages in streamable mode + * 666602 : ac3parse: no valid frames found before end of stream (unexpected bsid=10) + * 666644 : udpsrc: infinite loop on dataless UDP packets + * 666688 : jpedec: peer_caps leak + * 666711 : rtspsrc: hostname lookup is not thread safe + * 667419 : matroskamux memleaks + * 667818 : osxvideo: Fix leak of NSOpenGLPixelFormat object + * 667820 : rtpptdemux: Plug potential pad leak. + * 667846 : rtph264depay: Exclude NALu size from payload length on truncated packets. + * 668648 : gst-plugins-good does not compile: cairo cannot find libgstvideo-0.10 + * 669455 : V4l2src can't open webcamstudio new vloopback + * 669590 : [shout2send] support webm streaming + * 670197 : v4l2src: webcam doesn't work due to fatal error when querying color balance attributes + * 650960 : flacparse makes decoded flac files start at sample offset 9215 + * 659947 : souphttpsink: rename to souphttpclientsink? + * 658659 : qtmux: Fix ctts entries for streams that don't start with timestamps from 0 + +Changes since 0.10.29: + + * work around GLib atomic ops API change + * better handling of malformed buffers in RTP depayloders + * some minor compilation fixes + +Bugs fixed since 0.10.29: + + + * 650470 : rtp: some depayloaders break with malformed rtp packets + * 652144 : udp: fix compiler warning on mingw-w64 Changes since 0.10.28: diff --git a/RELEASE b/RELEASE index edaefc1..7de2eab 100644 --- a/RELEASE +++ b/RELEASE @@ -1,5 +1,5 @@ -Release notes for GStreamer Good Plug-ins 0.10.29 "Soft Cheese Enthusiast" +Release notes for GStreamer Good Plug-ins 0.10.31 "Faster" @@ -52,163 +52,245 @@ contains a set of less supported plug-ins that haven't passed the Features of this release - * audioparser: new amrparse, aacparse, ac3parse, flacparse, mpegaudioparse, dcaparse elements - * audiowsincband: Add new windowing functions: gaussian, cos and hann - * audiowsincband: Fix range of kernel elements (lim -> lim-1) - * audiowsinclimimt: Add new windows to high/low-pass filters: gaussian, cosine, hann - * audiowsinclimit: Fix range of kernel elements (lim -> lim-1) in high/low-pass filters - * avidemux: also add the frame-type for the stream index. - * avidemux, flvdemux: mark delta-units in the index - * avidemux: stream->current_total is accumulated byte size and not time - * avimux: add stream-format field to h264 pad template caps - * avimux: rework _request_new_pad to handle explict req-pad-names - * avimux: use running time for synchronization - * cairooverlay: Add generic Cairo overlay video element. - * debugutils: remove bitrotten negotiation element - * deinterlace: add support for NV12 and NV21 formats; fix greedyl method - * dvdemux: first try if upstream handles TIME seeks before handling them here and other event handling fixes - * flacdec: fix issues with large metadata blocks when streaming unframed flac - * flacenc: Add support for writing METADATA_BLOCK_PICTURE blocks for GST_TAG_IMAGE and GST_TAG_PREVIEW_IMAGE - * flacenc: Don't store image tags inside the vorbiscomments and the flac metadata - * flvdemux: add width, height and framerate to caps when present on onMetaData - * flvdemux: Do not build an index if upstream is not seekable - * flvdemux: fix deadlock on setting index on flvdemux - * flvmux: don't overwrite metadata tag with duration in streaming mode - * flvmux: don't set duration for live stream - * flvmux: use running time for synchronization - * flv: specify stream-format for h264 in the pad template caps - * icydemux: fix tag list handling issues that might have caused crashes - * j2kpay: skip EPH packets - * jitterbuffer: also estimate eos if very near eos - * jitterbuffer: avoid trying to buffer more than is available - * jitterbuffer: handle position query - * matroskademux: better calculation of output framerate - * matroskademux: properly resume cluster scanning - * matroskademux: pull mode should always report seekable - * matroskademux: set stream-format=byte-stream on h264 caps if there's no codec data - * matroskademux: store cluster positions provided by SeekHead - * matroskamux: add support for A-Law and µ-Law - * matroskamux: avoid building index when streamable - * matroskamux: use running time for stream synchronization - * matroskamux: add stream-format field to h264 pad template caps - * matroska: Use ARTIST Matroska tag instead of AUTHOR for GST_TAG_ARTIST - * matroskaparse: new element - * monoscope: stability (off-by-one) and memory leak fixes - * pngdec: handle 16-bit-per-channel images - * pulsesink: also uncork during EOS waiting (and after EOS is rendered) - * pulsesink: fix deadlock if connecting to PA fails - * pulsesink: release pa_shared_resource_mutex before pa_threaded_mainloop_wait - * qtdemux: Adds more h264 fields to its caps - * qtdemux: Add support for 2Vuy and r210 - * qtdemux: don't error out when there's a problem parsing non-vital headers - * qtdemux: avoid skipping exposing a stream following a removed stream - * qtdemux: Check for invalid (empty) classification info entity strings - * qtdemux: extract MusicBrainz tags - * qtdemux: mind rounding issues when converting from global time to mov time - * qtdemux: propagate error during expose_streams - * qtdemux: support some more mpeg-4 fourcc variants - * qtdemux: take configured start time into account - * isomp4: move mp4mux/3gppmux/qtmux from -bad to -good, rename qtdemux plugin to isomp4 - * rtpbin: Don't try to request the same request pad twice - * rtpbin: fix setting the SDES property - * rtpbin: Get and use the NTP time when receiving RTCP - * rtpmanager: ignore a BYE if it is sent with our internal SSRC - * rtpptdemux: Tag upstream custom events with payload type - * rtpsession: add action signal to request early RTCP - * rtpsession: add "rtcp-min-interval" property for minimum interval between Regular RTCP messages - * rtpsession: Don't relay more than one PLI request per RTT - * rtpsession: Emit "on-ssrc-validated" when validating by RTCP - * rtpsession: Emit signal on incoming RTCP feedback packet - * rtpsession: Emit signal when sending a compound RTCP packet - * rtpsession: Implement sending PLI packets in response to GstForceKeyUnit - * rtpsession: Number of active sources should be updated whenever the status of the source changes to active - * rtpsession: Send GstForceKeyUnit event in response to received RTCP PLI - * rtpsource: Retain RTCP Feedback packets for a specified amount of time - * rtpssrcdemux: Tag upstream custom events with SSRC - * rtpssrcdemux: Unknown SSRC is not fatal - * rtpspeexpay: Do not transmit samples with GAP flag - * rtptheoradepay: Request new keyframe on lost packets - * rtpvrawpay: add support for interlaced video - * rtspsrc: distribute new base_time to manager children following flush seek - * rtspsrc: handle * control correctly - * rtspsrc: improve recovery from failed seek - * spectrum: miscellaneous optimisations, add multi-channel support - * speexdec: Always process the number of frames per packet as specified in the header - * speexdec: get and use streamheader from the caps if possible - * speexenc: Use speex intern silence detection - * theorapay: handle 0-sized packets (which are repeat frames) - * udpsink: warn when packet is too large - * v4l2: Add PJPG mapping - * v4l2: fix interlaced set_format configuration - * v4l2: new v4l2radio element to control analog radio devices - * videobalance: fix handling of YUV images with 'odd' widths - * videoflip: add support for YUY2, UVYV and YVYU - * videoflip: fix invalid memory access for odd resolutions and Y422 - * videomixer2: Add transparent background option for alpha channel formats - * videomixer: Add transparent background option for alpha channel formats - * videomixer: Fix argb/rgba overlay orc code - * wavparse: tune output max buffer size to material + * audioparsers: propagate downstream caps constraints upstream + * ac3parse: add support for IEC 61937 alignment and conversion/switching between alignments + * ac3parse: let bsid 9 and 10 through + * auparse: implement seeking + * avidemux: fix wrong stride when inverting uncompressed video + * cairotextoverlay: add a "silent" property to skip rendering; forward new segment events + * deinterlace: add support for deinterlacing using buffer caps/flags (as set by e.g. fieldanalysis) + * deinterlace: new fieldanalysis-related properties: "locking" and "ignore-obscure" + * directsoundsink: fix negotiation/device setup: 16-bit audio is signed, 8-bit is unsigned + * effecttv: fix reverse negotiation; repair color modes in radioactv by taking rgb,bgr into account + * equalizer: also sync the parameters for the filter bands + * flacdec: better timestamp/offset handling; try upstream first for duration queries + * flacdec: send EOS when seeking after the end of file instead of failing + * flacenc: do not drop the first data buffer on the floor + * flacparse: detect when a file lies about fixed block size; ignore invalid minimum_blocksize + * flacparse: more accurate/better duration/timestamp handling + * flvdemux: better timestamp handling (negative cts, detect large pts gaps; fix discontinuity threshold check when timestamps go backwards) + * flvmux: properly determine final duration; metadata/header writing fixes + * gdkpixbufsink: fix inverted pixel-aspect-ratio info on pixbufs + * jack: add "client-name" property to jackaudiosink and jackaudiosrc + * jpegdec: add sof-marker to template caps, so we don't get plugged for lossless jpeg + * jpegdec: Implement upstream negotiation + * matroskademux: seeking fixes; better handling of non-finalized files + * matroskademux: better timestamp/duration handling, fix some stuttering A/V + * matroskademux: add "max-gap-time" property to make gap handling configurable + * matroskademux: UTF-8 subtitles may have markup + * matroskamux: do not use unoffical V_MJPEG codec id + * matroskamux: fix segment handling, so we actually use running time + * matroskamux: for streaming files, push tags first + * matroskamux: handle GstForceKeyUnit event + * multifile: new splitfilesrc element to read multiple files as if they were one single file + * multifilesrc: add "loop" property + * multifilesink: handle buffer lists, useful to keep groups of buffers (GOPs) in the same file + * multifilesink: add flag to cut after a force key unit event + * multifilesink: add "max-files" property + * multifilesink: add new 'max-size' mode and "max-file-size" property for switching to the next file based on size + * multifilesink: write stream-headers when switching to the next file in max-size mode + * multipartdemux: Add property to assume a single stream and emit no-more-pads + * multipartmux: Add \r\n to tail of pushed buffers + * navseek: toggle pause/play on space bar + * osxvideo: Fix leak of NSOpenGLPixelFormat object + * pcmadepay,pcmudepay: allow variable sample rate + * pngenc: increase arbitrary resolution limits + * pulse: Drop support for PA versions before 0.9.16 (1.x is recommended) + * pulse: new pulseaudiosink element to handle format changes (not autoplugged yet) + * pulsesink: add support for compressed audio format passthrough (S/PDIF, mp3-over-bluetooth) + * pulsesink: Allow writes in bigger chunks + * pulsesink: Use the extended stream API if available + * pulsesrc: add a "source-output-index" property; implement GstStreamVolume interface + * qtdemux: better fragmented support (avoid adjustment for keyframe seek; mark all audio track samples as keyframe) + * qtdemux: parse embedded ID32 tags; improve bitrate guessing/extraction + * qtdemux: push mode fixes, fix buffered streaming + * qtmux: add direct dirac mapping + * qtmux: calculate average bitrate for streams + * qtmux: fix ctts generation for streams that don't start at 0 timestamps + * qtmux: use GST_TAG_IMAGE for coverart too + * ismlmux: Use iso-fragmented as variant type (useful in connection with encodebin) + * rtph263ppay: implement getcaps following RFC 4629, picks the right annexes + * rtph263ppay: set H263-2000 if thats what the other side wants + * rtph264depay: complete merged AU on marker bit (thus reducing latency) + * rtph264depay: cope with FU-A E bit not being set (caused by buggy payloaders) + * rtph264depay: exclude NALu size from payload length on truncated packets + * rtph264pay: proxy downstream caps restrictions (converting profile-level-id from RTP caps into video/x-h264 style caps) + * rtph264pay: only set the marker bit on the last NALU of a multi-NALU access unit + * rtpjpegpay: add support for H.264 payload in MJPEG container + * rtpjpegpay: fix for "odd" resolutions not a multiple of DCTSIZE + * rtpmp4adepay: fix output buffer timestamps in case of multiple frames + * rtpmp4gdepay: improve bogus interleaved index compensating + * rtpmp4vpay: deprecated send-config property and replace by config-interval + * rtppcmapay/depay: static clock rates on static payloads, dynamic on dynamic + * rtpvrawpay,-depay: RGB video payloading/depayloading fixes + * rtpg722pay: Compensate for clockrate vs. samplerate difference + * rtpbin: allow configurable rtcp stream syncing interval + * rtpbin: new "rtcp-sync" property, alternative inter-stream syncing methods + * rtpjitterbuffer/rtpbin: relax dropping rtcp packets; misc other fixes + * rtpmanager: don't reveal the user's username, hostname or real name by default + * rtpsession: process received Full Intra Requests (FIR) + * rtpsession: add special mode to use FIR as repair as Google does + * rtpsession: send FIR requests in response to key unit requests with all-headers=TRUE + * rtpsession: always send application requested feedback in immediate mode + * rtpsession: put the PLI requests in each RTPSource + * rtpsession: wait longer to timeout SSRC collision + * rtspsrc: implement async network I/O + * rtspsrc: allow sending short RTSP requests to a server + * rtspsrc: configure rtcp interval if provided + * rtspsrc: open on play and pause when not done yet + * shout2send: send video/webm through libshout + * soup: new souphttpclientsink element + * udpsrc: drop dataless UDP packets + * v4l2: take care not to change the current format where appropriate + * v4l2src, v4l2sink: add "norm" property; default to a pixel-aspect-ratio of 1/1 + * v4l2src: do not ignore the highest frame interval or the largest resolution + * v4l2src: handle some feature query failures more gracefully + * videobox: avoid wrapping opaque to transparent + * wavenc: Allow setcaps to be called after a format was negotiated if it's compatible + * ximagesrc: add "xid" and "xname" properties to allow capturing a particular window + * ximagesrc: fallback to non-XShm mode if allocating the XShm image failed + * ximagesrc: clear flags on buffer reuse, so that flags like DISCONT aren't set accidentally Bugs fixed in this release - * 564122 : Crash in monoscope_update + * 668320 : rtpmanager: RTCP receiver reports reveal full user name + * 652727 : multifilesrc: add ability to loop + * 657422 : [souphttpsrc] The souphttpsrc plugin doesn't work behind a proxy that requires authentication * 432612 : [matroskamux] doesn't handle segments correctly - * 593482 : Spectrum: Multi-Channel support and Stereo to Mono compat report(cross-correlation) - * 595520 : Implement a generic cairo overlay - * 622553 : rtpmanager: Implement RFC 4585 (AVPF / early feedback) - * 636699 : [PLUGIN-MOVE] qtmux: move to -good - * 639994 : videomixer2: added 'transparent' background option - * 640118 : v4l2: add element to control radio devices - * 640163 : rtspsrc: minor leak - * 640249 : [taginject] Taginject does not allow to change tags after init - * 640483 : flvdemux: Video's width, height and/or framerate src caps added when present on onMetaData - * 640542 : matroskamux leaks memory after reset - * 641330 : icydemux: crash while playing MP3 stream in amarok - * 641332 : can't connect vorbisenc ! queue ! matroskamux - * 641400 : [deinterlace] Handle image caps without asserting - * 641827 : rtptheorapay: doesn't handle 0-size packets - * 642205 : qtdemux: extract MusicBrainz tags - * 642337 : [souphttpsrc] Add support for URI queries - * 642412 : gstrtpbin with ignore-pt tries to use NULL stream- > demux during uninitialization - * 642691 : deinterlace: Miscellaneous cleanup - * 642879 : qtmux: add a 'variant' with the bare video/quicktime media type - * 642961 : NV12 colorspace support for deinterlace plugin - * 642963 : [dvdemux] time based upstream seek - * 643087 : pulsesink: deadlock in gst_pulseringbuffer_open_device - * 643981 : [cairooverlay] example uses gtk/gtk-x11 unnecessarily - * 644288 : generic/states check fails - * 644477 : [jack] doesn't build with jack > = 0.120.2 - * 644510 : pulsesink: deadlock when create/connect fails - * 644669 : gstspeexdec causes 'Conditional jump depends on uninitialised value' - * 644773 : Add support for Y422 colorspaces in videoflip element - * 644849 : [speexdec] Remove warning message when it is inappropriate - * 644875 : [matroskademux] can't read the ARTIST tag in a Matroska file - * 645858 : [flvdemux] memory leak when demuxing infinite FLV files - * 645961 : [pulsesink] hangs when going from paused to playing near EOS - * 646397 : rtpjitterbuffer base_time broken by commit f84b8a69 - * 646474 : rtpspeexpay should drop empty samples - * 646567 : [matroska] Add alaw/mulaw audio support - * 646800 : rtspsrc: control attribute on the session and not on the media - * 646954 : rtpgstpay: declare frag_offset to hold 32 bits - * 646964 : rtpmanager: ignore a BYE if it is sent with our internal SSRC - * 646965 : rtpmanager: Number of active sources should be updated whenever the status of the source changes to active - * 646966 : rtpssrcdemux: Unknown SSRC is not fatal - * 646967 : rtpsession: make iterate_internal_links MT-safe - * 646999 : [regression] pulsesink: underruns while playing WMA - * 647263 : REGRESSION: rtpsession: fix wrongly applied patch - * 647510 : audiowsinclimit uses the wrong limits for the range of the kernel elements - * 647511 : add other common windows to low/high-pass filters in audiowsinclimit.c - * 647659 : mp3parse / mpegaudioparse fails to detect VBRI header in mpeg1 mono and mpeg2 files - * 647833 : matroskademux: bad at guessing the framerate - * 647848 : Failure to compile with GCC 4.6.x due to variable unused but set warnings being treated as errors - * 647919 : qtmux: silently corrupts h264 streams with legacy caps - * 648004 : [quicktime] Rename plugin library to quicktime too - * 648160 : Remove half-complete bits of RTCP FIR support - * 648589 : jpegdec: documentation typo " jpegddec " - * 649060 : flvmux: overwrites metadata tags with duration in streamable=false mode - * 649449 : [gppmux] Failure to write location - * 566769 : [flacdec] crash in push mode with large header packet (image) - * 644730 : [matroskamux] Should return TRUE in the event function when the event is handled + * 541215 : [avimux] Dirac muxing is broken and results in A/V sync issues + * 546932 : [ximagesrc] allow recording of specific window only + * 571400 : RTSP blocks in gst_element_set_state( GST_STATE_PAUSED ) and incorrect url + * 576524 : rtpbin, jitterbuffer: add mode to support for recording RTP streams + * 586450 : [cairotextoverlay] Forward upstream events to both sinkpads + * 595055 : [pulsesrc] Should implement GstStreamVolume interface + * 605834 : directsoundsink: 16-bit audio is always signed while 8-bit is always unsigned + * 610916 : rtspsrc dosen't work under windows + * 614803 : v4l2: add tv-norm property + * 616686 : multipartdemux: add " single-stream " property to emit no-more-pads earlier + * 616936 : [matroskademux] Incorrect display of subtitles with markup + * 619548 : qtdemux: Guess bitrate if only one stream's bitrate is unknown + * 619590 : [matroskademux] Doesn't protect segment and other fields from concurrent changes from different threads + * 620186 : qtdemux: Export max bitrate for AMR-NB/-WB streams + * 622412 : [rtpmp4vpay] remove send-config parameter; obsoleted by config-interval + * 624887 : pitivi playback hangs / errors while playing mov clips on clip change + * 630456 : [ximagesrc] Fallback to non-XShm mode if image allocation fails + * 631430 : [flvdemux] Cannot play .flv to the end + * 632504 : [rtspsrc] reduce or avoid (network) hang during shutdown + * 634093 : RTSP client asks for unicast from multicast only server + * 638300 : v4l2src: make this work more than once in a row + * 639217 : udpsrc: allow skip-first-bytes of full buffer size + * 640323 : [cairotextoverlay] forward new segment events from the sink to the source + * 643847 : deinterlace: Add support for deinterlacing using buffer caps/flags + * 644151 : [multifilesink] Add option to create a new file after each GstForceKeyUnit event + * 644154 : [matroskamux] Force a new cluster after each GstForceKeyUnit event + * 644512 : [auparse] Add seeking + * 647540 : autoaudiosink picks element to use by rank, but pulsesink/alsasink/jackaudiosink are all PRIMARY + * 648312 : [v4l2sink] Unconditionally accepts video/mpegts + * 648642 : rtpsession: Ensure ssrc collisions aren't timed out immediately + * 648937 : matroskademux: avoid building index when streamable + * 649067 : v4l2src: got unexpected frame size of 262254 instead of 614400 + * 649617 : [rtp] Deadlock and other fixes for rtpssrcdemux + * 649780 : flac: seek beyond end fails instead of EOSing immediately + * 649955 : flvmux: add support for mpegversion 2, which is also AAC + * 650258 : matroskademux/matroskaparse: gst_element_query_duration returns wrong value for Matroska files + * 650313 : ac3parse: Add support for iec61937 alignment + * 650503 : [dvdemux] Broken DURATION query handling + * 650555 : [aacparse] AAC profiles needed in caps + * 650691 : [flacparse] regression playing some flac files + * 650714 : [amrparse] skips first few frames (problem in checking sync) + * 650785 : [flacparse] duration query in DEFAULT format failing with flacparse in pipeline (regression) + * 650877 : matroska: refactor code common to matroskademux and matroskaparse + * 650912 : Rare leak in qtdemux + * 650916 : REGRESSION: ssrcdemux causing FLOW_NOT_LINKED + * 650937 : deinterlace: fix parameter type in trace + * 651059 : rtspsrc: uniform unknown message handling + * 651443 : multifilesink: add next-file=max-size mode and max-file-size property + * 652195 : matroskademux: seeking in non-finalized matroska files does not work correctly + * 652286 : matroskaparse: Gstreamer-CRITICAL when changing state from PAUSED to READY + * 652467 : matroska: missing < stdio.h > include for sscanf + * 653080 : matroskamux: make check for block_duration less sensitive + * 653091 : [dv1394src] Make the internal clock thread-safe + * 653327 : configure script for gst-plugins-good selects shout2 when it's not present + * 653559 : aacparse: too greedy minimum frame size + * 653709 : [ximagesrc] sets DISCONT on half the buffers + * 654175 : matroskademux: handle blocks with duration=0 + * 654379 : matroskamux: make default framerate optional per stream + * 654583 : Immediate RTCP in rtpsession + * 654585 : rtpmp4gdepay choppy sound + * 654744 : matroskademux: fix aspect ratio if header has only onle display variable set + * 654749 : goom: unbreak build on PPC on openbsd + * 654816 : [rtspsrc] rtspsrc doesn't get eos if it's wrapped into a bin + * 655530 : Logitech B990 HD Webcam yields poor video in MJPEG mode. + * 655570 : qtdemux: assertion error when playing Apple Trailers + * 655805 : Make the extended RTSP headers optional + * 655866 : jackaudiosink: Don't call g_alloca in jack_process_cb + * 655918 : qtdemux : qtdemux_add_fragmented_samples return error. + * 656104 : v4l2src fails to correctly configure the framerate + * 656606 : crash in gst_spectrum_reset_message_data() + * 656649 : flacparse: fix off by one in frame size check + * 656734 : [aacparse] Assumes 1024 samples per frame + * 657080 : aacparse: failing test due to two buffers being dropped for one sync loss + * 657179 : pulse: New pulseaudiosink element to handle format changes + * 657376 : rtspsrc regression + * 657830 : multiudpsink: make add/remove/clear/get-stats action signals + * 658178 : udpsrc: rough error reporting when using an invalid URI + * 658305 : [souphttpsrc] can’t seek during double speed playback + * 658419 : Add FIR support to rtpsession + * 658543 : [v4l2src] Use GST_RESOURCE_ERROR_BUSY if webcam is already used + * 658546 : ac3parse: RealAudio file with AC-3 audio no longer plays + * 659009 : [matroskademux] property for configuring gap handling + * 659065 : navseek: toggle pause/play on space bar + * 659153 : matroskademux: fix stuttering A/V + * 659237 : [gstrtpbin] clock is not unreffed after finish using it + * 659242 : [matroskademux] Unexpected EOS when seeking on paused matroska file + * 659798 : Segfault when you convert with audioconvert from audio file mkv to audio file avi + * 659808 : matroskademux: misc fixes + * 659837 : matroskamux: unable to mux audio/x-raw-int,rate=8000,channels=1,endianness=1234,width=16,depth=16,signed=true + * 659943 : [ac3parse] it does not correcly check for ac3/e-ac3 switch + * 660249 : won't play wav file: invalid WAV header (no fmt at start): ID32 + * 660275 : jpegdec doesn't implement upstream negotiation + * 660294 : goom2k1: Fix mingw compiler warnings + * 660448 : videomixer2: memory leak + * 660468 : speexenc: fix calculation of filler data size + * 660481 : v4l, ximagesrc: printf format warnings + * 660969 : qtmux memleak + * 661049 : matroskademux: support seek with start_type NONE + * 661215 : flacparse: fix last frame timestamp in fixed block size mode + * 661400 : rtpg722pay: G722 rtptime too fast + * 661477 : flvdemux: negative cts causes uint overflow, resulting in sinks waiting forever + * 661841 : [edgetv] video artifacts if videorate placed after edgetv + * 661874 : aacparse fails to forward caps to encoder + * 662856 : cairotextoverlay: add a 'silent' property to skip rendering + * 663186 : taginject is not gap aware + * 663334 : gst/flv/: add amfdefs.h to noinst_HEADERS + * 663580 : v4l2src negotiation failure with weird pixel-aspect-ratios + * 664548 : matroskaparse: memleak + * 664792 : Staircase effect in M-JPEG over RTP with unaligned image dimensions.. + * 664892 : [matroskademux] Doesn't set caps properly + * 665387 : v4l2src: fix stepwise enumeration ignoring the highest values + * 665412 : matroskamux: jpeg muxing regression + * 665502 : [flvdemux] broken a/v sync for some files + * 665666 : multifilesink: GstMultiFileSinkNext not documented + * 665872 : jackaudiosink, jackaudiosrc: add " client-name " property + * 665882 : gdkpixbufsink: " pixel-aspect-ratio " is the inverse of what it should be + * 665911 : Ability to specify ignore-length in wavparse + * 666361 : playbin2: regression: visualisations don't work with pulseaudiosink + * 666583 : matroskademux: too many bus messages in streamable mode + * 666602 : ac3parse: no valid frames found before end of stream (unexpected bsid=10) + * 666644 : udpsrc: infinite loop on dataless UDP packets + * 666688 : jpedec: peer_caps leak + * 666711 : rtspsrc: hostname lookup is not thread safe + * 667419 : matroskamux memleaks + * 667818 : osxvideo: Fix leak of NSOpenGLPixelFormat object + * 667820 : rtpptdemux: Plug potential pad leak. + * 667846 : rtph264depay: Exclude NALu size from payload length on truncated packets. + * 668648 : gst-plugins-good does not compile: cairo cannot find libgstvideo-0.10 + * 669455 : V4l2src can't open webcamstudio new vloopback + * 669590 : [shout2send] support webm streaming + * 670197 : v4l2src: webcam doesn't work due to fatal error when querying color balance attributes + * 650960 : flacparse makes decoded flac files start at sample offset 9215 + * 659947 : souphttpsink: rename to souphttpclientsink? + * 658659 : qtmux: Fix ctts entries for streams that don't start with timestamps from 0 Download @@ -237,55 +319,61 @@ Applications Contributors to this release - * "Carsten Kroll - * Alejandro Gonzalez * Alessandro Decina - * Alexey Chernov * Alexey Fisher * Andoni Morales Alastruey + * Antoine Jacoutot * Arun Raghavan - * Benjamin Otte - * Christian Fredrik Kalager Schaller - * Christian Schaller - * David Hoyt + * Branko Subasic + * Brian Li + * Chad + * David Henningsson * David Schleef + * David Svensson Fors + * Debarshi Ray * Edward Hervey - * Felipe Contreras - * Haakon Sporsheim + * Gary Ching-Pang Lin + * Guillaume Desmottes + * Ha Nguyen * Havard Graff * Jan Schmidt - * Jan Urbanski - * Jan Urbański - * Jon Nordby - * Jordi Burguet-Castell - * Josep Torra - * Joshua M. Doe - * Julien Moutte - * LRN - * Lane Brooks + * Jayakrishnan M + * John Ogness + * Jonas Larsson + * Jonny Lamb + * Julien Isorce + * Konstantin Miller * Lasse Laukkanen - * Leonardo Sandoval - * Luis de Bethencourt - * Marc-André Lureau + * Marc Leeman * Mark Nauwelaerts - * Michael Smith - * Ole André Vadla Ravnås + * Mart Raudsepp + * Miguel Angel Cabrera Moya + * Monty Montgomery + * Nicola Murino + * Nicolas Baron * Olivier Crête * Pascal Buhler + * Peter Korsgaard + * Peter Seiderer * Philip Jägenstedt * Philippe Normand + * Raimo Järvi + * Ralph Giles + * Raul Gutierrez Segales * René Stadler - * Rob Clark - * Robert Swain + * Reynaldo H. Verdejo Pinochet + * Robert Krakora * Sebastian Dröge + * Sebastian Rasmussen + * Sjoerd Simons + * Stas Sergeev * Stefan Kost + * Stefan Sauer + * Stig Sandnes * Thiago Santos - * Thiago Sousa Santos - * Thibault Saunier * Tim-Philipp Müller - * Tom Janiszewski + * Tristan Matthews + * Tuukka Pasanen * Vincent Penquerc'h * Wim Taymans - * Youness Alaoui - * Zaheer Abbas Merali   \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 index 5bc3481..e8cf18e 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,8 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,18 +14,21 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -50,7 +54,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -79,12 +83,14 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. @@ -166,14 +172,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 10 +# serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -213,6 +219,7 @@ AC_CACHE_CHECK([dependency style of $depcc], # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -277,7 +284,7 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -342,10 +349,13 @@ AC_DEFUN([AM_DEP_TRACK], if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -579,12 +589,15 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -624,8 +637,8 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, +# 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -645,7 +658,7 @@ AC_DEFUN([AM_MAINTAINER_MODE], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful @@ -791,12 +804,15 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -819,13 +835,14 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -833,13 +850,13 @@ AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# ------------------------------ +# -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- +# ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -915,13 +932,13 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 1 +# serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- @@ -936,18 +953,50 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac +dnl +dnl A few `make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using `$V' instead of `$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 1 + # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -970,13 +1019,13 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -985,13 +1034,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- +# -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1013,10 +1062,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) @@ -1117,7 +1167,6 @@ m4_include([m4/esd.m4]) m4_include([m4/gconf-2.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gst-fionread.m4]) -m4_include([m4/gst-shout2.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/lib-ld.m4]) diff --git a/autoregen.sh b/autoregen.sh deleted file mode 100755 index c67a299..0000000 --- a/autoregen.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./autogen.sh $@ diff --git a/common/Makefile.in b/common/Makefile.in index e15d80b..dad689b 100644 --- a/common/Makefile.in +++ b/common/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -64,8 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -79,11 +78,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -203,7 +202,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -278,7 +280,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -302,6 +303,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -336,18 +338,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -400,6 +394,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -434,7 +429,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -725,10 +719,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/common/check-exports b/common/check-exports index c6d3eca..dd7bafb 100755 --- a/common/check-exports +++ b/common/check-exports @@ -41,9 +41,7 @@ fi # BSS symbol, unlike on linux where it's a local absolute symbol. nm $NMARGS $lib_path | awk \ '{ - if ($3 !~ /^_gst_parse_yy/ && \ - $3 !~ /^_gst_[a-z]*_init/ && \ - $3 !~ /^_gst_parse_launch/ && \ + if ($3 !~ /^_gst_[a-z]*_init/ && \ $3 !~ /^__gst_element_details_/ && \ $3 !~ /^__gst_element_factory_add_/ && \ $3 !~ /^gst_interfaces_marshal/ && \ diff --git a/common/gst.supp b/common/gst.supp index 7e24bc8..d7f8961 100644 --- a/common/gst.supp +++ b/common/gst.supp @@ -915,7 +915,7 @@ fun:*alloc ... fun:g_type_init* - fun:init_pre + fun:init_pre* } { @@ -3894,6 +3894,13 @@ obj:*/sed } +{ + + Memcheck:Addr8 + ... + obj:*/sed +} + # GLib 2.23 interface vtable { @@ -3927,3 +3934,30 @@ fun:_gst_plugin_loader_client_run fun:main } + +{ + + Memcheck:Cond + fun:*strcasecmp* + ... + fun:__dcigettext +} + +{ + + Memcheck:Value8 + fun:*strcasecmp* + ... + fun:__dcigettext +} + +{ + + Memcheck:Leak + fun:malloc + ... + fun:gst_poll_new + fun:gst_poll_new_timer + fun:gst_system_clock_init +} + diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj index 688b2c0..5b13352 100755 --- a/common/gstdoc-scangobj +++ b/common/gstdoc-scangobj @@ -43,6 +43,7 @@ require "gtkdoc-common.pl"; my $MODULE; my $OUTPUT_DIR; my $INSPECT_DIR; +my $VERBOSE; my $PRINT_VERSION; my $PRINT_HELP; my $TYPE_INIT_FUNC="g_type_init ()"; @@ -55,10 +56,11 @@ my $TYPE_INIT_FUNC="g_type_init ()"; 'type-init-func' => \$TYPE_INIT_FUNC, 'output-dir' => \$OUTPUT_DIR, 'inspect-dir' => \$INSPECT_DIR, + 'verbose' => \$VERBOSE, 'version' => \$PRINT_VERSION, 'help' => \$PRINT_HELP); -GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "version", "help"); +GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "verbose", "version", "help"); if ($NO_GTK_INIT) { # Do nothing. This just avoids a warning. @@ -75,15 +77,19 @@ if (!$MODULE) { } if ($PRINT_HELP) { - print "gstdoc-scangobj version 1.5\n"; - print "\n--module=MODULE_NAME Name of the doc module being parsed"; - print "\n--source=SOURCE_NAME Name of the source module for plugins"; - print "\n--types=FILE The name of the file to store the types in"; - print "\n--type-init-func=FUNC The init function to call instead of g_type_init ()"; - print "\n--output-dir=DIRNAME The directory where the results are stored"; - print "\n--inspect-dir=DIRNAME The directory where the plugin inspect data is stored"; - print "\n--version Print the version of this program"; - print "\n--help Print this help\n"; + print <data); plugins = g_list_next (plugins); source = gst_plugin_get_source (plugin); - /*g_print ("plugin: %s source: %s\\n", plugin->desc.name, source);*/ if (!source || strcmp (source, "$SOURCE") != 0) { continue; } @@ -230,7 +240,7 @@ get_object_types (void) if (gst_plugin_get_filename (plugin) == NULL) continue; - g_print ("plugin: %s source: %s\\n", plugin->desc.name, source); + $debug_log ("plugin: %s source: %s", plugin->desc.name, source); if (reinspect) { inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml", @@ -277,7 +287,7 @@ get_object_types (void) const gchar *pad_pres[] = { "always","sometimes","request" }; GList *pads, *pad; - /*g_print (" feature: %s\\n", feature->name);*/ + $debug_log (" feature: %s", feature->name); factory = GST_ELEMENT_FACTORY (feature); factories = g_list_prepend (factories, factory); @@ -320,7 +330,7 @@ get_object_types (void) g_string_free (xmlstr, TRUE); - g_message ("number of element factories: %d", g_list_length (factories)); + $debug_log ("number of element factories: %d", g_list_length (factories)); /* allocate the object_types array to hold them */ object_types = g_new0 (GType, g_list_length (factories)+$ntypes+1); @@ -333,7 +343,7 @@ get_object_types (void) factory = GST_ELEMENT_FACTORY (l->data); type = gst_element_factory_get_element_type (factory); if (type != 0) { - g_message ("adding type %p for factory %s", (void *) type, gst_element_factory_get_longname (factory)); + $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory)); object_types[i++] = type; } else { g_message ("type info for factory %s not found", @@ -522,7 +532,7 @@ output_object_signal (FILE *fp, gchar signal_name[128]; gchar flags[16]; - /* g_print ("Object: %s Signal: %u\\n", object_name, signal_id);*/ + $debug_log ("Object: %s Signal: %u", object_name, signal_id); param_num = 1; widget_num = event_num = callback_num = 0; @@ -765,6 +775,16 @@ output_object_hierarchy (void) fclose (fp); } +static int +compare_types (const void *a, const void *b) +{ + const char *na = g_type_name (*((GType *)a)); + const char *nb = g_type_name (*((GType *)b)); + + return g_strcmp0 (na, nb); +} + + /* This is called recursively to output the hierarchy of a object. */ static void output_hierarchy (FILE *fp, @@ -783,6 +803,8 @@ output_hierarchy (FILE *fp, fprintf (fp, "%s\\n", g_type_name (type)); children = g_type_children (type, &n_children); + qsort (children, n_children, sizeof (GType), compare_types); + for (i=0; i < n_children; i++) output_hierarchy (fp, children[i], level + 1); @@ -1547,15 +1569,20 @@ if ($CC =~ /libtool/) { $o_file = "$MODULE-scan.o" } -print "gtk-doc: Compiling scanner\n"; -$command = "$CC $CFLAGS -c -o $o_file $MODULE-scan.c"; -system($command) == 0 or die "Compilation of scanner failed: $!\n"; +my $stdout=""; +if (!defined($VERBOSE) or $VERBOSE eq "0") { + $stdout=">/dev/null"; +} + +# Compiling scanner +$command = "$CC $stdout $CFLAGS -c -o $o_file $MODULE-scan.c"; +system("($command)") == 0 or die "Compilation of scanner failed: $!\n"; -print "gtk-doc: Linking scanner\n"; -$command = "$LD -o $MODULE-scan $o_file $LDFLAGS"; +# Linking scanner +$command = "$LD $stdout -o $MODULE-scan $o_file $LDFLAGS"; system($command) == 0 or die "Linking of scanner failed: $!\n"; -print "gtk-doc: Running scanner $MODULE-scan\n"; +# Running scanner $MODULE-scan "; system("sh -c ./$MODULE-scan") == 0 or die "Scan failed: $!\n"; if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) { @@ -1563,9 +1590,9 @@ if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) { } &UpdateFileIfChanged ($old_hierarchy_filename, $new_hierarchy_filename, 0); -&UpdateFileIfChanged ($old_interfaces_filename, $new_interfaces_filename, 0); -&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0); # we will merge these in scangobj-merge.py +#&UpdateFileIfChanged ($old_interfaces_filename, $new_interfaces_filename, 0); +#&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0); #&UpdateFileIfChanged ($old_signals_filename, $new_signals_filename, 0); #&UpdateFileIfChanged ($old_args_filename, $new_args_filename, 0); diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak index ca6a351..8cc42e7 100644 --- a/common/gtk-doc-plugins.mak +++ b/common/gtk-doc-plugins.mak @@ -55,12 +55,12 @@ DOC_STAMPS = \ # files generated/updated by gtkdoc-scangobj SCANOBJ_FILES = \ - $(DOC_MODULE).signals \ + $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).types \ - $(DOC_MODULE).args + $(DOC_MODULE).signals \ + $(DOC_MODULE).types SCANOBJ_FILES_O = \ .libs/$(DOC_MODULE)-scan.o @@ -78,11 +78,8 @@ REPORT_FILES = \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt -# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck -# no idea why FC4 can do without CLEANFILES = \ $(SCANOBJ_FILES_O) \ - $(DOC_MODULE)-scan.c \ $(REPORT_FILES) \ $(DOC_STAMPS) \ inspect-registry.xml @@ -104,32 +101,34 @@ INSPECT_ENVIRONMENT=\ PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ $(INSPECT_EXTRA_ENVIRONMENT) -# update the element and plugin XML descriptions; store in inspect/ -inspect: - @-mkdir -p $(INSPECT_DIR) - #### scan gobjects; done by documentation maintainer #### scanobj-update: -rm scanobj-build.stamp $(MAKE) scanobj-build.stamp -# TODO: finish elite script that updates the output files of this step -# instead of rewriting them, so that multiple maintainers can generate -# a collective set of args and signals -scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect - @echo '*** Scanning GObjects ***' +# gstdoc-scanobj produces 5 output files (.new) +# scangobj-merge.py merges them into the file which we commit later +# TODO: also merge the hierarchy +scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) + @echo " DOC Introspecting gobjects" @if test x"$(srcdir)" != x. ; then \ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ do \ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ done; \ fi; \ + mkdir -p $(INSPECT_DIR); \ + scanobj_options=""; \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ $(INSPECT_ENVIRONMENT) \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)" \ LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)" \ + $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)" \ --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ + echo " DOC Merging introspection data" && \ $(PYTHON) \ $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ if test x"$(srcdir)" != x. ; then \ @@ -145,91 +144,102 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp ### scan headers; done on every build ### scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp - @echo '*** Scanning header files ***' + @echo ' DOC Scanning header files' + @if test x"$(srcdir)" != x. ; then \ + for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ + do \ + if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ + done; \ + fi + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ gtkdoc-scan \ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ --module=$(DOC_MODULE) \ - --source-dir=$(DOC_SOURCE_DIR) \ + $${_source_dir} \ --ignore-headers="$(IGNORE_HFILES)"; \ touch scan-build.stamp #### update templates; done on every build #### -### FIXME: make this error out again when docs are fixed for 0.X # in a non-srcdir build, we need to copy files from the previous step # and the files from previous runs of this step tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) - @echo '*** Rebuilding template files ***' + @echo ' DOC Rebuilding template files' @if test x"$(srcdir)" != x. ; then \ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ do \ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ done; \ fi - gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log - $(PYTHON) \ + @gtkdoc-mktmpl --module=$(DOC_MODULE) + @$(PYTHON) \ $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl - @rm -f tmpl-build.log - touch tmpl-build.stamp + @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true -#### build xml; done on every build #### +#### xml #### -### FIXME: make this error out again when docs are fixed for 0.9 sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files) - @echo '*** Building XML ***' + @echo ' DOC Building XML' @-mkdir -p xml @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \ xsltproc --stringparam module $(MODULE) \ $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done @for f in $(EXAMPLE_CFILES); do \ $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done - gtkdoc-mkdb \ + @gtkdoc-mkdb \ --module=$(DOC_MODULE) \ --source-dir=$(DOC_SOURCE_DIR) \ --expand-content-files="$(expand_content_files)" \ --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \ --output-format=xml \ --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \ - $(MKDB_OPTIONS) \ - | tee sgml-build.log - @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi - cp ../version.entities xml - rm sgml-build.log - touch sgml-build.stamp + $(MKDB_OPTIONS) + @cp ../version.entities xml + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true -#### build html; done on every step #### +#### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo '*** Building HTML ***' - if test -d html; then rm -rf html; fi - mkdir html - cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html + @echo ' DOC Building HTML' + @rm -rf html + @mkdir html + @cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html @for f in $(content_files); do cp $(srcdir)/$$f html; done - cp -pr xml html - cp ../version.entities html - cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) - mv html/index.sgml html/index.sgml.bak - $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml - rm -f html/index.sgml.bak - rm -f html/$(DOC_MAIN_SGML_FILE) - rm -rf html/xml - rm -f html/version.entities - test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ + @cp -pr xml html + @cp ../version.entities html + @mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) + @mv html/index.sgml html/index.sgml.bak + @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml + @rm -f html/index.sgml.bak + @rm -f html/$(DOC_MAIN_SGML_FILE) + @rm -rf html/xml + @rm -f html/version.entities + @test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done - @echo '-- Fixing Crossreferences' - gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - touch html-build.stamp + @echo ' DOC Fixing cross-references' + @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + @touch html-build.stamp clean-local-gtkdoc: - rm -rf xml tmpl html + @rm -rf xml tmpl html # clean files copied for nonsrcdir templates build - if test x"$(srcdir)" != x. ; then \ + @if test x"$(srcdir)" != x. ; then \ rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \ $(MAINTAINER_DOC_STAMPS); \ fi @@ -239,16 +249,16 @@ clean-local-gtkdoc: endif clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @rm -f $(REPORT_FILES) \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - rm -rf tmpl/*.sgml.bak - rm -f $(DOC_MODULE).hierarchy - rm -f *.stamp || true - if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + @rm -rf tmpl/*.sgml.bak + @rm -f $(DOC_MODULE).hierarchy + @rm -f *.stamp || true + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(DOC_MODULE)-docs.sgml ; \ rm -f $(DOC_MODULE).types ; \ rm -f $(DOC_MODULE).interfaces ; \ @@ -258,7 +268,7 @@ distclean-local: rm -rf tmpl/*.sgml ; \ rm -rf $(INSPECT_DIR); \ fi - rm -rf *.o + @rm -rf *.o MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS) @@ -280,9 +290,7 @@ install-data-local: $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ fi; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ - $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak index 91edeee..dd2b5a5 100644 --- a/common/gtk-doc.mak +++ b/common/gtk-doc.mak @@ -28,7 +28,6 @@ DOC_STAMPS = \ scan-build.stamp \ sgml-build.stamp \ html-build.stamp \ - setup.stamp \ sgml.stamp \ html.stamp @@ -52,30 +51,36 @@ all-local: html-build.stamp #### setup #### -setup.stamp: $(content_files) +setup-build.stamp: $(content_files) -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - cp -p $(abs_srcdir)/$(DOC_MAIN_SGML_FILE) \ - $(abs_srcdir)/$(DOC_MODULE)-overrides.txt \ - $(abs_srcdir)/$(DOC_MODULE)-sections.txt \ - $(abs_srcdir)/$(DOC_MODULE).types \ - $(abs_builddir)/; \ - if test "x$(content_files)" != "x" ; then \ - for file in $(content_files) ; do \ - test -f $(abs_srcdir)/$$file || \ - cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ - done \ - fi \ + echo ' DOC Preparing build'; \ + files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + test -f $(abs_srcdir)/$$file && \ + cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ + done; \ + fi; \ fi - touch setup.stamp + @touch setup-build.stamp #### scan #### # in the case of non-srcdir builds, the built gst directory gets added # to gtk-doc scanning; but only then, to avoid duplicates scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) - @echo '*** Scanning header files ***' - if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; \ - then \ + @echo ' DOC Scanning header files' + @_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan \ + $(SCAN_OPTIONS) $(EXTRA_HFILES) \ + --module=$(DOC_MODULE) \ + $${_source_dir} \ + --ignore-headers="$(IGNORE_HFILES)" + @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then \ + echo " DOC Introspecting gobjects"; \ GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ GST_PLUGIN_PATH= \ GST_REGISTRY=doc-registry.xml \ @@ -90,31 +95,18 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) test -f $$i || touch $$i ; \ done \ fi - if test "x$(top_srcdir)" != "x$(top_builddir)"; \ - then \ - export BUILT_OPTIONS="--source-dir=$(DOC_BUILD_DIR)"; \ - fi; \ - gtkdoc-scan \ - $(SCAN_OPTIONS) $(EXTRA_HFILES) \ - --module=$(DOC_MODULE) \ - --source-dir=$(DOC_SOURCE_DIR) \ - $$BUILT_OPTIONS \ - --ignore-headers="$(IGNORE_HFILES)" - touch scan-build.stamp + @touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### xml #### -### FIXME: make this error out again when docs are complete -sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files) - @echo '*** Building XML ***' - gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log - @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi - cp ../version.entities xml - rm sgml-build.log - touch sgml-build.stamp +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files) + @echo ' DOC Building XML' + @gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) + @cp ../version.entities xml + @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true @@ -122,31 +114,37 @@ sgml.stamp: sgml-build.stamp #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo '*** Building HTML ***' + @echo ' DOC Building HTML' @rm -rf html @mkdir html - cp -pr xml html - cp ../version.entities ./ + @cp -pr xml html + @cp ../version.entities ./ @mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + @gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ mkhtml_options=--path="$(abs_srcdir)"; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - mv html/index.sgml html/index.sgml.bak - $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml - rm -f html/index.sgml.bak - rm -rf html/xml - rm -f version.entities - test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html ) - @echo '-- Fixing Crossreferences' - gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - touch html-build.stamp + @mv html/index.sgml html/index.sgml.bak + @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml + @rm -f html/index.sgml.bak + @rm -rf html/xml + @rm -f version.entities + @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html ) + @echo ' DOC Fixing cross-references' + @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + @touch html-build.stamp clean-local-gtkdoc: - rm -rf xml tmpl html + @rm -rf xml tmpl html # clean files copied for nonsrcdir templates build - if test x"$(srcdir)" != x. ; then \ + @if test x"$(srcdir)" != x. ; then \ rm -rf $(DOC_MODULE).types; \ fi else @@ -155,28 +153,29 @@ clean-local-gtkdoc: endif clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @rm -f $(REPORT_FILES) \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - rm -rf tmpl/*.sgml.bak - rm -f $(DOC_MODULE).hierarchy - rm -f *.stamp || true - if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - rm -f $(DOC_MODULE)-docs.sgml ; \ + @rm -rf tmpl/*.sgml.bak + @rm -f $(DOC_MODULE).hierarchy + @rm -f *.stamp || true + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(DOC_MAIN_SGML_FILE) ; \ + rm -f $(DOC_OVERRIDES) ; \ rm -f $(DOC_MODULE).types ; \ rm -f $(DOC_MODULE).interfaces ; \ - rm -f $(DOC_MODULE)-overrides.txt ; \ rm -f $(DOC_MODULE).prerequisites ; \ rm -f $(DOC_MODULE)-sections.txt ; \ + rm -f $(content_files) ; \ rm -rf tmpl/*.sgml ; \ fi - rm -rf *.o + @rm -rf *.o maintainer-clean-local: clean - cd $(srcdir) && rm -rf html \ + @cd $(srcdir) && rm -rf html \ xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt # thomas: make docs parallel installable; devhelp requires majorminor too @@ -190,9 +189,7 @@ install-data-local: echo '-- Installing '$$i ; \ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ - $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in index e4fd8f8..9e754c2 100644 --- a/common/m4/Makefile.in +++ b/common/m4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -64,8 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -79,11 +78,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -163,7 +162,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,7 +240,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -262,6 +263,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -296,18 +298,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -360,6 +354,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -394,7 +389,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,10 +542,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4 index ccdd4da..030e7ac 100644 --- a/common/m4/gst-args.m4 +++ b/common/m4/gst-args.m4 @@ -66,10 +66,7 @@ AC_DEFUN([AG_GST_ARG_VALGRIND], if test "x$USE_VALGRIND" = xyes; then PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, USE_VALGRIND="yes", - [ - USE_VALGRIND="no" - AC_MSG_RESULT([no]) - ]) + USE_VALGRIND="no") fi if test "x$USE_VALGRIND" = xyes; then AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) diff --git a/common/m4/gst-feature.m4 b/common/m4/gst-feature.m4 index bfb3a1c..c072c79 100644 --- a/common/m4/gst-feature.m4 +++ b/common/m4/gst-feature.m4 @@ -122,35 +122,6 @@ dnl *** Define the conditional as appropriate AM_CONDITIONAL(USE_[$1], test x$USE_[$1] = xyes) ]) -dnl Use a -config program which accepts --cflags and --libs parameters -dnl to set *_CFLAGS and *_LIBS and check existence of a feature. -dnl Richard Boulton -dnl Last modification: 26/06/2001 -dnl AG_GST_CHECK_CONFIGPROG(FEATURE-NAME, CONFIG-PROG-FILENAME, MODULES) -dnl -dnl This check was written for GStreamer: it should be renamed and checked -dnl for portability if you decide to use it elsewhere. -dnl -AC_DEFUN([AG_GST_CHECK_CONFIGPROG], -[ - AC_PATH_PROG([$1]_CONFIG, [$2], no) - if test x$[$1]_CONFIG = xno; then - [$1]_LIBS= - [$1]_CFLAGS= - HAVE_[$1]=no - else - if [$2] --plugin-libs [$3] &> /dev/null; then - [$1]_LIBS=`[$2] --plugin-libs [$3]` - else - [$1]_LIBS=`[$2] --libs [$3]` - fi - [$1]_CFLAGS=`[$2] --cflags [$3]` - HAVE_[$1]=yes - fi - AC_SUBST([$1]_LIBS) - AC_SUBST([$1]_CFLAGS) -]) - dnl Use AC_CHECK_LIB and AC_CHECK_HEADER to do both tests at once dnl sets HAVE_module if we have it dnl Richard Boulton @@ -247,7 +218,37 @@ AC_DEFUN([AG_GST_PARSE_SUBSYSTEM_DISABLES], AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML) ]) +dnl AG_GST_CHECK_GST_DEBUG_DISABLED(ACTION-IF-DISABLED, ACTION-IF-NOT-DISABLED) +dnl +dnl Checks if the GStreamer debugging system is disabled in the core version +dnl we are compiling against (by checking gstconfig.h) +dnl +AC_DEFUN([AG_GST_CHECK_GST_DEBUG_DISABLED], +[ + AC_REQUIRE([AG_GST_CHECK_GST]) + + AC_MSG_CHECKING([whether the GStreamer debugging system is enabled]) + AC_LANG_PUSH([C]) + save_CFLAGS="$CFLAGS" + CFLAGS="$GST_CFLAGS $CFLAGS" + AC_COMPILE_IFELSE([ + #include + #ifdef GST_DISABLE_GST_DEBUG + #error "debugging disabled, make compiler fail" + #endif], [ debug_system_enabled=yes], [debug_system_enabled=no]) + CFLAGS="$save_CFLAGS" + AC_LANG_POP([C]) + + AC_MSG_RESULT([$debug_system_enabled]) + if test "x$debug_system_enabled" = "xyes" ; then + $2 + true + else + $1 + true + fi +]) dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES, dnl GST_PLUGINS_NO, and BUILD_EXTERNAL diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 index bafba41..b01f02f 100644 --- a/common/m4/gst-glib2.m4 +++ b/common/m4/gst-glib2.m4 @@ -70,4 +70,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], dnl for the poor souls who for example have glib in /usr/local AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) ]) diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4 index f9ce49c..589721c 100644 --- a/common/m4/introspection.m4 +++ b/common/m4/introspection.m4 @@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection fi AC_SUBST(INTROSPECTION_SCANNER) AC_SUBST(INTROSPECTION_COMPILER) AC_SUBST(INTROSPECTION_GENERATE) AC_SUBST(INTROSPECTION_GIRDIR) AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") ]) diff --git a/common/m4/orc.m4 b/common/m4/orc.m4 index 3b2c6b5..26b2459 100644 --- a/common/m4/orc.m4 +++ b/common/m4/orc.m4 @@ -21,17 +21,19 @@ AC_DEFUN([ORC_CHECK], if test "x$enable_orc" != "xno" ; then PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [ AC_DEFINE(HAVE_ORC, 1, [Use Orc]) + HAVE_ORC=yes if test "x$ORCC" = "x" ; then + AC_MSG_CHECKING(for usable orcc) ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + dnl check whether the orcc found by pkg-config can be run from the build environment + dnl if this is not the case (e.g. when cross-compiling) fall back to orcc from PATH + AS_IF([$ORCC --version 1> /dev/null 2> /dev/null], [], [ORCC=`which orcc`]) + AC_MSG_RESULT($ORCC) fi AC_SUBST(ORCC) ORCC_FLAGS="--compat $ORC_REQ" AC_SUBST(ORCC_FLAGS) - HAVE_ORC=yes - HAVE_ORCC=yes - if test "x$cross_compiling" = "xyes" ; then - HAVE_ORCC=no - fi + AS_IF([test "x$ORCC" = "x"], [HAVE_ORCC=no], [HAVE_ORCC=yes]) ], [ if test "x$enable_orc" = "xyes" ; then AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found]) diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py index 5e84235..9a1cac9 100755 --- a/common/scangobj-merge.py +++ b/common/scangobj-merge.py @@ -3,7 +3,7 @@ # vi:si:et:sw=4:sts=4:ts=4 """ -parse, update and write .signals and .args files +parse, merge and write gstdoc-scanobj files """ import sys @@ -16,9 +16,9 @@ def debug(*args): # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747 # Licensed under the Python License class OrderedDict(dict): - def __init__(self, dict = None): + def __init__(self): self._keys = [] - dict.__init__(self, dict) + dict.__init__(self) def __delitem__(self, key): dict.__delitem__(self, key) @@ -110,8 +110,7 @@ class GDoc: def save_file(self, filename, backup=False): """ - Save the signals information to the given .signals file if the - file content changed. + Save the information to the given file if the file content changed. """ olddata = None try: @@ -256,6 +255,25 @@ class Args(GDoc): return "\n".join(lines) + '\n' +class SingleLine(GDoc): + def __init__(self): + self._objects = [] + + def load_data(self, data): + """ + Load the .interfaces/.prerequisites lines, merge duplicates + """ + # split data on '\n' + lines = data.splitlines(); + # merge them into self._objects + for line in lines: + if line not in self._objects: + self._objects.append(line) + + def get_data(self): + lines = sorted(self._objects) + return "\n".join(lines) + '\n' + def main(argv): modulename = None try: @@ -264,7 +282,6 @@ def main(argv): sys.stderr.write('Please provide a documentation module name\n') sys.exit(1) - print "Merging scangobj output for %s" % modulename signals = Signals() signals.load_file(modulename + '.signals') signals.load_file(modulename + '.signals.new') @@ -277,4 +294,16 @@ def main(argv): args.save_file(modulename + '.args', backup=True) os.unlink(modulename + '.args.new') + ifaces = SingleLine() + ifaces.load_file(modulename + '.interfaces') + ifaces.load_file(modulename + '.interfaces.new') + ifaces.save_file(modulename + '.interfaces', backup=True) + os.unlink(modulename + '.interfaces.new') + + prereq = SingleLine() + prereq.load_file(modulename + '.prerequisites') + prereq.load_file(modulename + '.prerequisites.new') + prereq.save_file(modulename + '.prerequisites', backup=True) + os.unlink(modulename + '.prerequisites.new') + main(sys.argv) diff --git a/compile b/compile index c0096a7..b1f4749 100755 --- a/compile +++ b/compile @@ -1,10 +1,10 @@ #! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. +# Wrapper for compilers which do not understand '-c -o'. -scriptversion=2009-10-06.20; # UTC +scriptversion=2012-01-04.17; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free +# Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -29,21 +29,186 @@ scriptversion=2009-10-06.20; # UTC # bugs to or send patches to # . +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l*) + lib=${1#-l} + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + set x "$@" "$dir/$lib.dll.lib" + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + set x "$@" "$dir/$lib.lib" + break + fi + done + IFS=$save_IFS + + test "$found" != yes && set x "$@" "$lib.lib" + shift + ;; + -L*) + func_file_conv "${1#-L}" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. +right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF @@ -53,11 +218,13 @@ EOF echo "compile $scriptversion" exit $? ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; esac ofile= cfile= -eat= for arg do @@ -66,8 +233,8 @@ do else case $1 in -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) @@ -94,10 +261,10 @@ do done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a + # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also + # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi @@ -106,7 +273,7 @@ fi cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. -# Note: use `[/\\:.-]' here to ensure that we don't use the same name +# Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d diff --git a/config.guess b/config.guess index c2246a4..40eaed4 100755 --- a/config.guess +++ b/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. -timestamp='2009-12-30' +timestamp='2011-05-11' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -57,7 +57,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -181,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release @@ -224,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -270,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -296,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} @@ -395,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -481,8 +484,8 @@ EOF echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -495,7 +498,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -552,7 +555,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -595,52 +598,52 @@ EOF 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include + #define _HPUX_SOURCE + #include + #include - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -731,22 +734,22 @@ EOF exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -770,14 +773,14 @@ EOF exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -805,14 +808,14 @@ EOF echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; @@ -867,7 +870,7 @@ EOF EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; - esac + esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} @@ -879,7 +882,13 @@ EOF then echo ${UNAME_MACHINE}-unknown-linux-gnu else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi fi exit ;; avr32*:Linux:*:*) @@ -892,7 +901,7 @@ EOF echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu @@ -960,7 +969,7 @@ EOF echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -968,6 +977,9 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-tilera-linux-gnu + exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; @@ -975,7 +987,7 @@ EOF echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -984,11 +996,11 @@ EOF echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1020,7 +1032,7 @@ EOF fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1048,13 +1060,13 @@ EOF exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp - exit ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1089,8 +1101,8 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ @@ -1133,10 +1145,10 @@ EOF echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm @@ -1162,11 +1174,11 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1231,6 +1243,9 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; @@ -1276,13 +1291,13 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1322,11 +1337,11 @@ main () #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff --git a/config.h.in b/config.h.in index 8d96cdf..53c97d2 100644 --- a/config.h.in +++ b/config.h.in @@ -272,24 +272,12 @@ /* Define to enable pulseaudio plug-in (used by pulseaudio). */ #undef HAVE_PULSE -/* defined if pulseaudio >= 0.9.11 is available */ -#undef HAVE_PULSE_0_9_11 - -/* defined if pulseaudio >= 0.9.12 is available */ -#undef HAVE_PULSE_0_9_12 - -/* defined if pulseaudio >= 0.9.13 is available */ -#undef HAVE_PULSE_0_9_13 - -/* defined if pulseaudio >= 0.9.15 is available */ -#undef HAVE_PULSE_0_9_15 - -/* defined if pulseaudio >= 0.9.16 is available */ -#undef HAVE_PULSE_0_9_16 - /* defined if pulseaudio >= 0.9.20 is available */ #undef HAVE_PULSE_0_9_20 +/* defined if pulseaudio >= 1.0 is available */ +#undef HAVE_PULSE_1_0 + /* Define if RDTSC is available */ #undef HAVE_RDTSC @@ -365,7 +353,7 @@ /* Define to enable X11 XVideo extensions. */ #undef HAVE_XVIDEO -/* Define to enable zlib support for id3demux/qtdemux/matroska. */ +/* Define to enable zlib support for qtdemux/matroska. */ #undef HAVE_ZLIB /* the host CPU */ diff --git a/config.sub b/config.sub index c2d1257..30fdca8 100755 --- a/config.sub +++ b/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. -timestamp='2010-01-22' +timestamp='2011-03-23' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -76,7 +76,7 @@ version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -124,8 +124,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -157,8 +158,8 @@ case $os in os= basic_machine=$1 ;; - -bluegene*) - os=-cnk + -bluegene*) + os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= @@ -174,10 +175,10 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -282,11 +283,13 @@ case $basic_machine in | moxie \ | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ + | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rx \ | score \ @@ -294,15 +297,24 @@ case $basic_machine in | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown @@ -314,6 +326,18 @@ case $basic_machine in basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -334,7 +358,7 @@ case $basic_machine in | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ @@ -368,26 +392,28 @@ case $basic_machine in | mmix-* \ | mt-* \ | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile-* | tilegx-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -412,7 +438,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -482,11 +508,20 @@ case $basic_machine in basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -518,7 +553,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -734,7 +769,7 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) + microblaze) basic_machine=microblaze-xilinx ;; mingw32) @@ -841,6 +876,12 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -923,9 +964,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -1019,6 +1061,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1075,20 +1120,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - # This must be matched before tile*. - tilegx*) + # This must be matched before tile*. + tilegx*) basic_machine=tilegx-unknown os=-linux-gnu ;; @@ -1163,6 +1196,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1260,11 +1296,11 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + -auroraux) + os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` @@ -1301,7 +1337,8 @@ case $os in | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1348,7 +1385,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1397,7 +1434,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1442,8 +1479,8 @@ case $os in -dicos*) os=-dicos ;; - -nacl*) - ;; + -nacl*) + ;; -none) ;; *) @@ -1466,10 +1503,10 @@ else # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1481,8 +1518,17 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1509,7 +1555,7 @@ case $basic_machine in m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1536,7 +1582,7 @@ case $basic_machine in *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) diff --git a/configure b/configure index 41526f1..d9aae90 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for GStreamer Good Plug-ins 0.10.29. +# Generated by GNU Autoconf 2.68 for GStreamer Good Plug-ins 0.10.31. # # Report bugs to . # @@ -91,6 +91,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -173,6 +174,14 @@ test x\$exitcode = x0 || exit 1" as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes @@ -216,11 +225,18 @@ IFS=$as_save_IFS # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -529,155 +545,8 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -$* -_LT_EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - test -n "$DJDIR" || exec 7<&0 &1 @@ -702,8 +571,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GStreamer Good Plug-ins' PACKAGE_TARNAME='gst-plugins-good' -PACKAGE_VERSION='0.10.29' -PACKAGE_STRING='GStreamer Good Plug-ins 0.10.29' +PACKAGE_VERSION='0.10.31' +PACKAGE_STRING='GStreamer Good Plug-ins 0.10.31' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' PACKAGE_URL='' @@ -802,18 +671,10 @@ RAW1394_LIBS RAW1394_CFLAGS USE_PULSE_FALSE USE_PULSE_TRUE +PULSE_1_0_LIBS +PULSE_1_0_CFLAGS PULSE_0_9_20_LIBS PULSE_0_9_20_CFLAGS -PULSE_0_9_16_LIBS -PULSE_0_9_16_CFLAGS -PULSE_0_9_15_LIBS -PULSE_0_9_15_CFLAGS -PULSE_0_9_13_LIBS -PULSE_0_9_13_CFLAGS -PULSE_0_9_12_LIBS -PULSE_0_9_12_CFLAGS -PULSE_0_9_11_LIBS -PULSE_0_9_11_CFLAGS PULSE_LIBS PULSE_CFLAGS USE_LIBPNG_FALSE @@ -826,7 +687,6 @@ LIBDV_LIBS LIBDV_CFLAGS USE_LIBCACA_FALSE USE_LIBCACA_TRUE -LIBCACA_CONFIG LIBCACA_LIBS LIBCACA_CFLAGS USE_JPEG_FALSE @@ -1017,8 +877,6 @@ WARNING_CFLAGS plugindir PLUGINDIR GST_LICENSE -USE_DIVX_DRM_FALSE -USE_DIVX_DRM_TRUE USE_GCONFTOOL_FALSE USE_GCONFTOOL_TRUE HAVE_GCONFTOOL @@ -1060,6 +918,9 @@ ORCC_FLAGS ORCC ORC_LIBS ORC_CFLAGS +GIO_LIBS +GIO_CFLAGS +GLIB_EXTRA_CFLAGS GLIB_LIBS GLIB_CFLAGS GLIB_REQ @@ -1190,8 +1051,9 @@ OTOOL LIPO NMEDIT DSYMUTIL -lt_ECHO +MANIFEST_TOOL RANLIB +ac_ct_AR AR LN_S NM @@ -1205,6 +1067,7 @@ SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE +am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE @@ -1225,6 +1088,8 @@ AS GST_MAJORMINOR AM_BACKSLASH AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V host_os host_vendor host_cpu @@ -1313,6 +1178,7 @@ with_pic enable_fast_install enable_dependency_tracking with_gnu_ld +with_sysroot enable_libtool_lock with_autoconf with_autoheader @@ -1343,7 +1209,6 @@ enable_glib_asserts enable_orc with_gtk enable_gconftool -enable_divx_drm with_default_audiosink with_default_audiosrc with_default_videosink @@ -1428,8 +1293,6 @@ enable_libpng enable_pulse enable_dv1394 enable_shout2 -with_shout2_prefix -enable_shout2test enable_soup enable_speex enable_taglib @@ -1457,6 +1320,8 @@ CCAS CCASFLAGS GLIB_CFLAGS GLIB_LIBS +GIO_CFLAGS +GIO_LIBS ORC_CFLAGS ORC_LIBS GST_CFLAGS @@ -1514,18 +1379,10 @@ LIBPNG_CFLAGS LIBPNG_LIBS PULSE_CFLAGS PULSE_LIBS -PULSE_0_9_11_CFLAGS -PULSE_0_9_11_LIBS -PULSE_0_9_12_CFLAGS -PULSE_0_9_12_LIBS -PULSE_0_9_13_CFLAGS -PULSE_0_9_13_LIBS -PULSE_0_9_15_CFLAGS -PULSE_0_9_15_LIBS -PULSE_0_9_16_CFLAGS -PULSE_0_9_16_LIBS PULSE_0_9_20_CFLAGS PULSE_0_9_20_LIBS +PULSE_1_0_CFLAGS +PULSE_1_0_LIBS RAW1394_CFLAGS RAW1394_LIBS LIBIEC61883_CFLAGS @@ -1944,7 +1801,7 @@ Try \`$0 --help' for more information" $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -2082,7 +1939,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GStreamer Good Plug-ins 0.10.29 to adapt to many kinds of systems. +\`configure' configures GStreamer Good Plug-ins 0.10.31 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2157,7 +2014,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GStreamer Good Plug-ins 0.10.29:";; + short | recursive ) echo "Configuration of GStreamer Good Plug-ins 0.10.31:";; esac cat <<\_ACEOF @@ -2194,7 +2051,6 @@ Optional Features: Enable GLib assertion --enable-orc use Orc if installed --disable-gconftool disable GConf schemas - --enable-divx-drm using divx drm --disable-videofilter disable dependency-less videofilter plugin --disable-alpha disable dependency-less alpha plugin --disable-apetag disable dependency-less apetag plugin @@ -2266,20 +2122,21 @@ Optional Features: --disable-pulse disable pulseaudio plug-in: pulseaudio --disable-dv1394 disable raw1394 and avc1394 library: 1394 --disable-shout2 disable Shoutcast/Icecast client library: shout2 - --disable-shout2test Do not try to compile and run a test shout2 program --disable-soup disable soup http client plugin (2.4): souphttpsrc --disable-speex disable speex speech codec: speex --disable-taglib disable taglib tagging library: taglib --disable-wavpack disable wavpack plug-in: wavpack - --disable-zlib disable zlib support for id3demux/qtdemux/matroska + --disable-zlib disable zlib support for qtdemux/matroska --disable-bz2 disable bz2 library for matroska Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-autoconf use a different autoconf for regeneration of Makefiles --with-autoheader use a different autoheader for regeneration of @@ -2320,7 +2177,6 @@ Optional Packages: --with-esd-exec-prefix=PFX exec prefix where ESD is installed (optional) --with-jpeg-mmx, path to MMX'ified JPEG library - --with-shout2-prefix=PFX Prefix where libshout2 is installed (optional) Some influential environment variables: CC C compiler command @@ -2343,6 +2199,8 @@ Some influential environment variables: CCASFLAGS assembler compiler flags (defaults to CFLAGS) GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config + GIO_CFLAGS C compiler flags for GIO, overriding pkg-config + GIO_LIBS linker flags for GIO, overriding pkg-config ORC_CFLAGS C compiler flags for ORC, overriding pkg-config ORC_LIBS linker flags for ORC, overriding pkg-config GST_CFLAGS C compiler flags for GST, overriding pkg-config @@ -2435,30 +2293,14 @@ Some influential environment variables: PULSE_CFLAGS C compiler flags for PULSE, overriding pkg-config PULSE_LIBS linker flags for PULSE, overriding pkg-config - PULSE_0_9_11_CFLAGS - C compiler flags for PULSE_0_9_11, overriding pkg-config - PULSE_0_9_11_LIBS - linker flags for PULSE_0_9_11, overriding pkg-config - PULSE_0_9_12_CFLAGS - C compiler flags for PULSE_0_9_12, overriding pkg-config - PULSE_0_9_12_LIBS - linker flags for PULSE_0_9_12, overriding pkg-config - PULSE_0_9_13_CFLAGS - C compiler flags for PULSE_0_9_13, overriding pkg-config - PULSE_0_9_13_LIBS - linker flags for PULSE_0_9_13, overriding pkg-config - PULSE_0_9_15_CFLAGS - C compiler flags for PULSE_0_9_15, overriding pkg-config - PULSE_0_9_15_LIBS - linker flags for PULSE_0_9_15, overriding pkg-config - PULSE_0_9_16_CFLAGS - C compiler flags for PULSE_0_9_16, overriding pkg-config - PULSE_0_9_16_LIBS - linker flags for PULSE_0_9_16, overriding pkg-config PULSE_0_9_20_CFLAGS C compiler flags for PULSE_0_9_20, overriding pkg-config PULSE_0_9_20_LIBS linker flags for PULSE_0_9_20, overriding pkg-config + PULSE_1_0_CFLAGS + C compiler flags for PULSE_1_0, overriding pkg-config + PULSE_1_0_LIBS + linker flags for PULSE_1_0, overriding pkg-config RAW1394_CFLAGS C compiler flags for RAW1394, overriding pkg-config RAW1394_LIBS @@ -2549,8 +2391,8 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GStreamer Good Plug-ins configure 0.10.29 -generated by GNU Autoconf 2.67 +GStreamer Good Plug-ins configure 0.10.31 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -2596,7 +2438,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -2642,7 +2484,7 @@ fi # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -2656,7 +2498,7 @@ ac_fn_c_check_header_compile () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2674,7 +2516,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -2710,7 +2552,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -2752,7 +2594,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -2765,7 +2607,7 @@ ac_fn_c_check_func () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2820,7 +2662,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -2835,7 +2677,7 @@ ac_fn_c_check_decl () as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2866,7 +2708,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl @@ -2903,7 +2745,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -2940,7 +2782,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp @@ -2986,7 +2828,7 @@ fi # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link @@ -3000,7 +2842,7 @@ ac_fn_c_check_type () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -3041,7 +2883,7 @@ fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -3218,7 +3060,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ rm -f conftest.val fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int @@ -3231,10 +3073,10 @@ rm -f conftest.val ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -3301,7 +3143,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -3310,15 +3152,15 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GStreamer Good Plug-ins $as_me 0.10.29, which was -generated by GNU Autoconf 2.67. Invocation command line was +It was created by GStreamer Good Plug-ins $as_me 0.10.31, which was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3576,7 +3418,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;} || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi done @@ -3722,7 +3564,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3809,11 +3651,11 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -3899,7 +3741,7 @@ if test "$cross_compiling" != no; then set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -3939,7 +3781,7 @@ if test -z "$ac_cv_prog_STRIP"; then set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -3992,7 +3834,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4043,7 +3885,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -4083,7 +3925,7 @@ done $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -4141,7 +3983,7 @@ fi # Define the identity of the package. PACKAGE='gst-plugins-good' - VERSION='0.10.29' + VERSION='0.10.31' cat >>confdefs.h <<_ACEOF @@ -4171,21 +4013,21 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' -AMTAR=${AMTAR-"${am_missing_run}tar"} +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - PACKAGE_VERSION_MAJOR=$(echo 0.10.29 | cut -d'.' -f1) - PACKAGE_VERSION_MINOR=$(echo 0.10.29 | cut -d'.' -f2) - PACKAGE_VERSION_MICRO=$(echo 0.10.29 | cut -d'.' -f3) + PACKAGE_VERSION_MAJOR=$(echo 0.10.31 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 0.10.31 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 0.10.31 | cut -d'.' -f3) @@ -4196,7 +4038,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5 $as_echo_n "checking nano version... " >&6; } - NANO=$(echo 0.10.29 | cut -d'.' -f4) + NANO=$(echo 0.10.31 | cut -d'.' -f4) if test x"$NANO" = x || test "x$NANO" = "x0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 @@ -4254,7 +4096,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -4270,7 +4112,7 @@ fi $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -4288,7 +4130,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -4303,7 +4145,7 @@ fi $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -4330,6 +4172,33 @@ yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi AM_BACKSLASH='\' @@ -4349,13 +4218,13 @@ GST_MAJORMINOR=0.10 enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -4395,7 +4264,7 @@ if test -z "$ac_cv_prog_AS"; then set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : +if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then @@ -4447,7 +4316,7 @@ fi set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -4487,7 +4356,7 @@ if test -z "$ac_cv_prog_DLLTOOL"; then set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then @@ -4539,7 +4408,7 @@ fi set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -4579,7 +4448,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -4657,8 +4526,8 @@ esac -macro_version='2.2.6b' -macro_revision='1.3017' +macro_version='2.4.2' +macro_revision='1.3337' @@ -4674,6 +4543,75 @@ macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -4726,6 +4664,7 @@ fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' + am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= @@ -4746,7 +4685,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4786,7 +4725,7 @@ if test -z "$ac_cv_prog_CC"; then set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -4839,7 +4778,7 @@ if test -z "$CC"; then set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4879,7 +4818,7 @@ if test -z "$CC"; then set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4938,7 +4877,7 @@ if test -z "$CC"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -4982,7 +4921,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -5037,7 +4976,7 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -5152,7 +5091,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -5195,7 +5134,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -5254,7 +5193,7 @@ $as_echo "$ac_try_echo"; } >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi fi fi @@ -5265,7 +5204,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5306,7 +5245,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -5316,7 +5255,7 @@ OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5353,7 +5292,7 @@ ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -5431,7 +5370,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -5530,7 +5469,7 @@ depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -5539,6 +5478,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -5598,7 +5538,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -5655,7 +5595,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -5737,7 +5677,7 @@ Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5800,7 +5740,7 @@ $as_echo "$ac_cv_path_GREP" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5867,7 +5807,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } -if test "${ac_cv_path_FGREP+set}" = set; then : +if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 @@ -5998,7 +5938,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then : +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -6038,7 +5978,7 @@ fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then : +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -6065,7 +6005,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then : +if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then @@ -6118,14 +6058,17 @@ if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$ac_tool_prefix"; then - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DUMPBIN+set}" = set; then : +if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then @@ -6163,13 +6106,13 @@ fi fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then @@ -6218,6 +6161,15 @@ esac fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -6232,18 +6184,18 @@ test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } -if test "${lt_cv_nm_interface+set}" = set; then : +if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6240: $ac_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6243: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6246: output\"" >&5) + (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6267,7 +6219,7 @@ fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then : +if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 @@ -6300,6 +6252,11 @@ else lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -6325,6 +6282,11 @@ else lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -6364,8 +6326,8 @@ else # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -6407,8 +6369,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -6457,9 +6419,83 @@ esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then : +if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' @@ -6473,6 +6509,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -6495,7 +6536,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then @@ -6535,7 +6576,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then @@ -6591,7 +6632,7 @@ test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then : +if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -6633,16 +6674,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -6672,6 +6715,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -6680,11 +6727,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -6705,7 +6752,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -6787,6 +6834,21 @@ esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -6802,12 +6864,163 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -6820,7 +7033,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6840,14 +7053,18 @@ $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi -if test -z "$ac_cv_prog_AR"; then +if test -z "$AR"; then ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6860,7 +7077,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" + ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6879,6 +7096,10 @@ else $as_echo "no" >&6; } fi + + test -n "$ac_ct_AR" && break +done + if test "x$ac_ct_AR" = x; then AR="false" else @@ -6890,12 +7111,11 @@ ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi -else - AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru +: ${AR=ar} +: ${AR_FLAGS=cru} + @@ -6906,13 +7126,70 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -6952,7 +7229,7 @@ if test -z "$ac_cv_prog_STRIP"; then set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -7011,7 +7288,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -7051,7 +7328,7 @@ if test -z "$ac_cv_prog_RANLIB"; then set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -7113,15 +7390,27 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + @@ -7168,7 +7457,7 @@ compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : +if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else @@ -7229,8 +7518,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -7254,6 +7543,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -7266,6 +7556,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -7291,8 +7582,8 @@ _LT_EOF test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then @@ -7307,6 +7598,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -7318,7 +7621,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT_DLSYM_CONST struct { const char *name; void *address; } @@ -7344,8 +7647,8 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 @@ -7355,8 +7658,8 @@ _LT_EOF test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi @@ -7393,6 +7696,16 @@ else $as_echo "ok" >&6; } fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + @@ -7415,6 +7728,44 @@ fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; @@ -7446,7 +7797,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7449 "configure"' > conftest.$ac_ext + echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7540,7 +7891,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then : +if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c @@ -7581,7 +7932,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -7592,7 +7943,20 @@ sparc*-*solaris*) case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -7608,6 +7972,123 @@ esac need_locks="$enable_libtool_lock" +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + case $host_os in rhapsody* | darwin*) @@ -7616,7 +8097,7 @@ need_locks="$enable_libtool_lock" set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : +if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then @@ -7656,7 +8137,7 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then @@ -7708,7 +8189,7 @@ fi set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_NMEDIT+set}" = set; then : +if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then @@ -7748,7 +8229,7 @@ if test -z "$ac_cv_prog_NMEDIT"; then set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then @@ -7800,7 +8281,7 @@ fi set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_LIPO+set}" = set; then : +if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then @@ -7840,7 +8321,7 @@ if test -z "$ac_cv_prog_LIPO"; then set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then @@ -7892,7 +8373,7 @@ fi set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL+set}" = set; then : +if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then @@ -7932,7 +8413,7 @@ if test -z "$ac_cv_prog_OTOOL"; then set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then @@ -7984,7 +8465,7 @@ fi set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OTOOL64+set}" = set; then : +if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then @@ -8024,7 +8505,7 @@ if test -z "$ac_cv_prog_OTOOL64"; then set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then @@ -8099,7 +8580,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } -if test "${lt_cv_apple_cc_single_mod+set}" = set; then : +if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no @@ -8115,7 +8596,13 @@ else $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -8126,9 +8613,10 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : +if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no @@ -8158,6 +8646,41 @@ rm -f core conftest.err conftest.$ac_objext \ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -8185,7 +8708,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -8205,7 +8728,7 @@ if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -8321,7 +8844,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -8333,7 +8856,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8464,7 +8987,7 @@ for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " -if test "x$ac_cv_header_dlfcn_h" = x""yes; then : +if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF @@ -8475,6 +8998,8 @@ done + + # Set options @@ -8548,7 +9073,22 @@ fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -8625,6 +9165,11 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + test -z "$LN_S" && LN_S="ln -s" @@ -8646,7 +9191,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then : +if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null @@ -8674,19 +9219,6 @@ _ACEOF - - - - - - - - - - - - - case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some @@ -8699,23 +9231,6 @@ aix3*) ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes @@ -8744,7 +9259,7 @@ for cc_temp in $compiler""; do *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it @@ -8754,7 +9269,7 @@ file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8820,7 +9335,7 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in @@ -8953,11 +9468,16 @@ if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no @@ -8973,15 +9493,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8976: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8980: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes @@ -9010,8 +9530,6 @@ fi lt_prog_compiler_pic= lt_prog_compiler_static= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -9059,6 +9577,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -9101,6 +9625,15 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -9163,7 +9696,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' @@ -9175,25 +9714,40 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' ;; esac ;; @@ -9225,7 +9779,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; @@ -9282,13 +9836,17 @@ case $host_os in lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. @@ -9296,7 +9854,7 @@ $as_echo "$lt_prog_compiler_pic" >&6; } if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : +if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no @@ -9312,15 +9870,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9315: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9319: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes @@ -9349,13 +9907,18 @@ fi + + + + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works+set}" = set; then : +if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no @@ -9368,7 +9931,7 @@ else if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes @@ -9398,7 +9961,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9417,16 +9980,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9420: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9424: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -9453,7 +10016,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no @@ -9472,16 +10035,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9475: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9479: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -9547,7 +10110,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -9591,13 +10153,39 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -9631,11 +10219,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -9671,10 +10260,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -9692,6 +10283,11 @@ _LT_EOF fi ;; + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -9717,15 +10313,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -9736,13 +10333,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; - xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -9758,17 +10359,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -9782,8 +10382,8 @@ _LT_EOF archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -9801,8 +10401,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9848,8 +10448,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9889,8 +10489,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -9978,7 +10580,13 @@ _LT_EOF allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9991,25 +10599,32 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' @@ -10018,7 +10633,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10031,30 +10652,42 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -10086,20 +10719,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac ;; darwin* | rhapsody*) @@ -10109,7 +10786,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in @@ -10117,7 +10799,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -10135,10 +10817,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -10151,7 +10829,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -10160,7 +10838,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -10168,7 +10846,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hpux9*) if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -10183,14 +10861,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes @@ -10202,16 +10879,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -10223,7 +10900,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + ;; esac fi @@ -10251,26 +10967,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo(void) {} +int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -10332,17 +11061,17 @@ rm -f core conftest.err conftest.$ac_objext \ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -10352,13 +11081,13 @@ rm -f core conftest.err conftest.$ac_objext \ osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -10371,9 +11100,9 @@ rm -f core conftest.err conftest.$ac_objext \ no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -10561,44 +11290,50 @@ x|xyes) # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi @@ -10756,11 +11491,6 @@ esac - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } @@ -10769,16 +11499,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -10791,7 +11528,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -10811,7 +11548,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi @@ -10837,7 +11580,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -10846,7 +11589,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -10899,7 +11642,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -10911,7 +11654,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -10930,8 +11673,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10952,36 +11696,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -11002,7 +11793,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -11010,10 +11801,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -11021,7 +11808,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -11039,7 +11826,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -11059,12 +11846,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -11110,12 +11911,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -11131,7 +11934,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -11168,9 +11971,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11178,12 +11981,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -11196,13 +12004,17 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - shlibpath_overrides_runpath=yes + lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -11211,7 +12023,7 @@ rm -f core conftest.err conftest.$ac_objext \ # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -11255,7 +12067,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -11324,7 +12136,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11349,7 +12161,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -11373,7 +12185,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -11404,7 +12216,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -11414,7 +12226,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -11526,6 +12338,11 @@ fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= @@ -11598,7 +12415,7 @@ else # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11632,7 +12449,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -11646,12 +12463,12 @@ fi *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = x""yes; then : +if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then : +if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11685,16 +12502,16 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = x""yes; then : +if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11728,12 +12545,12 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then : +if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11767,12 +12584,12 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then : +if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -11806,7 +12623,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -11847,7 +12664,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then : +if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -11856,7 +12673,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11859 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11897,7 +12714,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -11906,7 +12729,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -11943,7 +12770,7 @@ $as_echo "$lt_cv_dlopen_self" >&6; } wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then : +if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -11952,7 +12779,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11955 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11993,7 +12820,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -12002,7 +12835,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -12171,6 +13008,8 @@ CC="$lt_save_CC" + + ac_config_commands="$ac_config_commands libtool" @@ -12180,8 +13019,8 @@ CC="$lt_save_CC" -GST_REQ=0.10.33 -GSTPB_REQ=0.10.33 +GST_REQ=0.10.36 +GSTPB_REQ=0.10.36 @@ -12299,7 +13138,7 @@ rm -f conf$$.file set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then : +if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in @@ -12340,7 +13179,7 @@ fi set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then : +if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in @@ -12422,7 +13261,7 @@ rm -f conf$$.file set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then : +if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in @@ -12500,7 +13339,7 @@ rm -f conf$$.file set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then : +if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in @@ -12622,7 +13461,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${acl_cv_path_LD+set}" = set; then : +if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -12659,7 +13498,7 @@ fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${acl_cv_prog_gnu_ld+set}" = set; then : +if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. @@ -12679,7 +13518,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } -if test "${acl_cv_rpath+set}" = set; then : +if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13193,7 +14032,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then : +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -13227,7 +14066,7 @@ $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } -if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then : +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" @@ -13303,7 +14142,7 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } -if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : +if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13366,7 +14205,7 @@ $as_echo "$ac_res" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } -if test "${am_cv_func_iconv+set}" = set; then : +if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13423,7 +14262,7 @@ $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } -if test "${am_cv_func_iconv_works+set}" = set; then : +if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else @@ -13974,7 +14813,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } -if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : +if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" @@ -14205,7 +15044,7 @@ if test "${enable_debug+set}" = set; then : case "${enableval}" in yes) USE_DEBUG=yes ;; no) USE_DEBUG=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; esac else @@ -14219,7 +15058,7 @@ if test "${enable_profiling+set}" = set; then : case "${enableval}" in yes) USE_PROFILING=yes ;; no) USE_PROFILING=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;; esac else @@ -14234,7 +15073,7 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in @@ -14277,7 +15116,7 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in @@ -14349,7 +15188,7 @@ if test "${enable_valgrind+set}" = set; then : case "${enableval}" in yes) USE_VALGRIND="$USE_DEBUG" ;; no) USE_VALGRIND=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; esac else @@ -14418,17 +15257,9 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - USE_VALGRIND="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + USE_VALGRIND="no" elif test $pkg_failed = untried; then - - USE_VALGRIND="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + USE_VALGRIND="no" else VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS @@ -14575,7 +15406,7 @@ if test "${enable_examples+set}" = set; then : case "${enableval}" in yes) BUILD_EXAMPLES=yes ;; no) BUILD_EXAMPLES=no ;; - *) as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;; esac else @@ -14609,8 +15440,8 @@ fi if test "${with_package_name+set}" = set; then : withval=$with_package_name; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; *) GST_PACKAGE_NAME="${withval}" ;; esac @@ -14652,8 +15483,8 @@ _ACEOF if test "${with_package_origin+set}" = set; then : withval=$with_package_origin; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; *) GST_PACKAGE_ORIGIN="${withval}" ;; esac @@ -14706,7 +15537,7 @@ if test "${enable_external+set}" = set; then : enableval=$enable_external; case "${enableval}" in yes) USE_EXTERNAL=yes;; no) USE_EXTERNAL=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5 ;; esac else USE_EXTERNAL=yes @@ -14804,7 +15635,7 @@ if test "${enable_experimental+set}" = set; then : enableval=$enable_experimental; case "${enableval}" in yes) USE_EXPERIMENTAL=yes;; no) USE_EXPERIMENTAL=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5 ;; esac else USE_EXPERIMENTAL=no @@ -14893,14 +15724,14 @@ fi case $host_os in solaris*) ac_fn_c_check_decl "$LINENO" "__i386" "ac_cv_have_decl___i386" "$ac_includes_default" -if test "x$ac_cv_have_decl___i386" = x""yes; then : +if test "x$ac_cv_have_decl___i386" = xyes; then : I386_ABI="yes" else I386_ABI="no" fi ac_fn_c_check_decl "$LINENO" "__amd64" "ac_cv_have_decl___amd64" "$ac_includes_default" -if test "x$ac_cv_have_decl___amd64" = x""yes; then : +if test "x$ac_cv_have_decl___amd64" = xyes; then : AMD64_ABI="yes" else AMD64_ABI="no" @@ -15005,7 +15836,7 @@ $as_echo "#define HAVE_CPU_CRISV32 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -15224,7 +16055,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac @@ -15350,7 +16181,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then : +if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown @@ -15569,7 +16400,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac @@ -15584,7 +16415,7 @@ if test -n "$ac_tool_prefix"; then set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -15624,7 +16455,7 @@ if test -z "$ac_cv_prog_CC"; then set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -15677,7 +16508,7 @@ if test -z "$CC"; then set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -15717,7 +16548,7 @@ if test -z "$CC"; then set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -15776,7 +16607,7 @@ if test -z "$CC"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -15820,7 +16651,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -15875,7 +16706,7 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -15904,7 +16735,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15941,7 +16772,7 @@ ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -16019,7 +16850,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -16118,7 +16949,7 @@ depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -16127,6 +16958,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -16186,7 +17018,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -16247,7 +17079,7 @@ fi *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -if test "${ac_cv_prog_cc_c99+set}" = set; then : +if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no @@ -16422,7 +17254,7 @@ if test "x$ac_cv_prog_cc_c99" != xno; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -16518,7 +17350,7 @@ fi esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } - if test "${ac_cv_prog_cc_stdc+set}" = set; then : + if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi @@ -16551,392 +17383,7 @@ if test -z "$CXX"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -16980,7 +17427,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -17058,7 +17505,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -17095,7 +17542,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -17181,7 +17628,7 @@ depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -17190,6 +17637,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -17249,7 +17697,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -17304,7 +17752,17 @@ else fi -if test -n "$CXX" && ( test "X$CXX" != "Xno" && + + +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp @@ -17315,7 +17773,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then : + if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded @@ -17430,7 +17888,8 @@ if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -_lt_caught_CXX_error=yes; } +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -17443,9 +17902,6 @@ else _lt_caught_CXX_error=yes fi - - - ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -17461,7 +17917,6 @@ export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported @@ -17471,6 +17926,8 @@ module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no @@ -17526,6 +17983,7 @@ $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -17543,6 +18001,7 @@ $RM -r conftest* fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do @@ -17553,7 +18012,7 @@ $RM -r conftest* *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then @@ -17616,7 +18075,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if test "${lt_cv_path_LD+set}" = set; then : +if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then @@ -17656,7 +18115,7 @@ fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then : +if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. @@ -17682,8 +18141,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -17715,7 +18174,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -17825,7 +18284,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17838,26 +18303,33 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' @@ -17866,7 +18338,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17879,30 +18357,42 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -17932,28 +18422,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_CXX=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; darwin* | rhapsody*) @@ -17961,7 +18498,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in @@ -17969,7 +18511,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -18003,7 +18545,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac ;; - freebsd[12]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no @@ -18022,6 +18564,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi gnu*) ;; + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: @@ -18046,11 +18593,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no @@ -18111,7 +18658,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -18121,10 +18668,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -18154,7 +18701,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi case $cc_basename in CC*) # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -18165,9 +18712,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes @@ -18196,7 +18743,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -18233,26 +18780,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [1-5]* | *pgcpp\ [1-5]*) + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -18260,7 +18807,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -18279,9 +18826,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -18301,13 +18848,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -18376,7 +18923,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi @@ -18411,15 +18958,15 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; @@ -18435,17 +18982,17 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -18455,7 +19002,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -18491,7 +19038,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' @@ -18512,7 +19059,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac link_all_deplibs_CXX=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -18532,14 +19079,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -18550,7 +19097,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' @@ -18604,6 +19151,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -18665,6 +19216,14 @@ private: }; _LT_EOF + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -18678,7 +19237,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -18687,13 +19246,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -18713,8 +19281,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -18750,6 +19320,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in @@ -18785,7 +19356,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -18850,8 +19421,6 @@ fi lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -18901,6 +19470,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -18950,6 +19524,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; dgux*) case $cc_basename in ec++*) @@ -19039,8 +19618,8 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' @@ -19102,7 +19681,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' @@ -19167,10 +19746,17 @@ case $host_os in lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 -$as_echo "$lt_prog_compiler_pic_CXX" >&6; } - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. @@ -19178,7 +19764,7 @@ $as_echo "$lt_prog_compiler_pic_CXX" >&6; } if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } -if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : +if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no @@ -19194,15 +19780,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19197: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:19201: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes @@ -19228,13 +19814,15 @@ fi + + # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : +if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no @@ -19247,7 +19835,7 @@ else if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes @@ -19274,7 +19862,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no @@ -19293,16 +19881,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19296: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:19300: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes @@ -19326,7 +19914,7 @@ $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : +if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no @@ -19345,16 +19933,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:19348: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:19352: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes @@ -19405,30 +19993,40 @@ fi $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no - ;; + ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } @@ -19460,44 +20058,50 @@ x|xyes) # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - pic_flag=$lt_prog_compiler_pic_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 -$as_echo "$archive_cmds_need_lc_CXX" >&6; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi @@ -19565,8 +20169,6 @@ esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } @@ -19592,7 +20194,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -19601,7 +20203,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -19654,7 +20256,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -19666,7 +20268,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -19685,8 +20287,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -19707,36 +20310,82 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -19756,7 +20405,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -19764,10 +20413,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -19775,7 +20420,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -19793,7 +20438,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -19813,12 +20458,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -19864,12 +20523,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -19885,7 +20546,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -19922,9 +20583,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -19932,12 +20593,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -19950,13 +20616,17 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - shlibpath_overrides_runpath=yes + lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -19965,7 +20635,7 @@ rm -f core conftest.err conftest.$ac_objext \ # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -20009,7 +20679,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -20078,7 +20748,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -20103,7 +20773,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -20127,7 +20797,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -20158,7 +20828,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -20168,7 +20838,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -20229,6 +20899,8 @@ fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= @@ -20276,6 +20948,7 @@ fi fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -20297,7 +20970,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu set dummy $CXX; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_HAVE_CXX+set}" = set; then : +if ${ac_cv_prog_HAVE_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CXX"; then @@ -20340,7 +21013,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then : + if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded @@ -20456,7 +21129,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c @@ -20474,7 +21147,7 @@ if test -n "$ac_tool_prefix"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJC+set}" = set; then : +if ${ac_cv_prog_OBJC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJC"; then @@ -20518,7 +21191,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then : +if ${ac_cv_prog_ac_ct_OBJC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJC"; then @@ -20576,7 +21249,7 @@ depcc="$OBJC" am_compiler_list='gcc3 gcc' { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_OBJC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_OBJC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -20585,6 +21258,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -20642,7 +21316,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -20740,7 +21414,7 @@ depcc="$OBJC" am_compiler_list='gcc3 gcc' { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_OBJC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_OBJC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -20749,6 +21423,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -20806,7 +21481,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -20874,7 +21549,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -21003,7 +21678,7 @@ depcc="$CCAS" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CCAS_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -21012,6 +21687,7 @@ else # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. + rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -21069,7 +21745,7 @@ else break fi ;; - msvisualcpp | msvcmsys) + msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -21129,7 +21805,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working do while(0) macros" >&5 $as_echo_n "checking for working do while(0) macros... " >&6; } -if test "${_cv_g_support_dowhile_macros+set}" = set; then : +if ${_cv_g_support_dowhile_macros+:} false; then : $as_echo_n "(cached) " >&6 else @@ -21169,7 +21845,7 @@ fi set dummy valgrind; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_VALGRIND_PATH+set}" = set; then : +if ${ac_cv_path_VALGRIND_PATH+:} false; then : $as_echo_n "(cached) " >&6 else case $VALGRIND_PATH in @@ -21253,7 +21929,7 @@ if test "${enable_schemas_install+set}" = set; then : enableval=$enable_schemas_install; case "${enableval}" in yes) schemas_install=true ;; no) schemas_install=false ;; - *) as_fn_error $? "bad value ${enableval} for --disable-schemas-install" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --disable-schemas-install" "$LINENO" 5 ;; esac else schemas_install=true @@ -21303,7 +21979,7 @@ fi if test -z "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -21384,7 +22060,7 @@ do set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then : +if ${ac_cv_path_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_CHECK in @@ -21466,7 +22142,7 @@ else: set dummy $python_candidate; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PYTHON+set}" = set; then : +if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in @@ -21593,13 +22269,13 @@ fi LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } -if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : +if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21633,13 +22309,13 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } -if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : +if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then : LIBM="-lmw" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21673,7 +22349,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = x""yes; then : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="$LIBM -lm" fi @@ -21681,7 +22357,7 @@ fi *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then : +if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -21715,7 +22391,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = x""yes; then : +if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="-lm" fi @@ -21728,7 +22404,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -21845,7 +22521,7 @@ $as_echo_n "checking for stdint types... " >&6; } ac_stdint_h=`echo _stdint.h` # try to shortcircuit - if the default include path of the compiler # can find a "stdint.h" header then we assume that all compilers can. -if test "${ac_cv_header_stdint_t+set}" = set; then : +if ${ac_cv_header_stdint_t+:} false; then : $as_echo_n "(cached) " >&6 else @@ -21920,7 +22596,7 @@ ac_cv_stdint_result="(no helpful system typedefs seen)" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5 $as_echo_n "checking for stdint uintptr_t... " >&6; } -if test "${ac_cv_header_stdint_x+set}" = set; then : +if ${ac_cv_header_stdint_x+:} false; then : $as_echo_n "(cached) " >&6 else @@ -21933,7 +22609,7 @@ $as_echo "(..)" >&6; } unset ac_cv_type_uint64_t ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <$i> " -if test "x$ac_cv_type_uintptr_t" = x""yes; then : +if test "x$ac_cv_type_uintptr_t" = xyes; then : ac_cv_header_stdint_x=$i else continue @@ -21941,7 +22617,7 @@ fi ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> " -if test "x$ac_cv_type_uint64_t" = x""yes; then : +if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" @@ -21962,7 +22638,7 @@ if test "_$ac_cv_header_stdint_x" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5 $as_echo_n "checking for stdint uint32_t... " >&6; } -if test "${ac_cv_header_stdint_o+set}" = set; then : +if ${ac_cv_header_stdint_o+:} false; then : $as_echo_n "(cached) " >&6 else @@ -21975,7 +22651,7 @@ $as_echo "(..)" >&6; } unset ac_cv_type_uint64_t ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <$i> " -if test "x$ac_cv_type_uint32_t" = x""yes; then : +if test "x$ac_cv_type_uint32_t" = xyes; then : ac_cv_header_stdint_o=$i else continue @@ -21983,7 +22659,7 @@ fi ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> " -if test "x$ac_cv_type_uint64_t" = x""yes; then : +if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" @@ -22007,7 +22683,7 @@ if test "_$ac_cv_header_stdint_o" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5 $as_echo_n "checking for stdint u_int32_t... " >&6; } -if test "${ac_cv_header_stdint_u+set}" = set; then : +if ${ac_cv_header_stdint_u+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22019,7 +22695,7 @@ $as_echo "(..)" >&6; } unset ac_cv_type_u_int64_t ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <$i> " -if test "x$ac_cv_type_u_int32_t" = x""yes; then : +if test "x$ac_cv_type_u_int32_t" = xyes; then : ac_cv_header_stdint_u=$i else continue @@ -22027,7 +22703,7 @@ fi ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include<$i> " -if test "x$ac_cv_type_u_int64_t" = x""yes; then : +if test "x$ac_cv_type_u_int64_t" = xyes; then : and64="/u_int64_t" else and64="" @@ -22058,7 +22734,7 @@ $as_echo "(..)" >&6; } # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } -if test "${ac_cv_sizeof_char+set}" = set; then : +if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : @@ -22068,7 +22744,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi @@ -22091,7 +22767,7 @@ _ACEOF # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } -if test "${ac_cv_sizeof_short+set}" = set; then : +if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : @@ -22101,7 +22777,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi @@ -22124,7 +22800,7 @@ _ACEOF # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then : +if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : @@ -22134,7 +22810,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi @@ -22157,7 +22833,7 @@ _ACEOF # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then : +if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : @@ -22167,7 +22843,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi @@ -22190,7 +22866,7 @@ _ACEOF # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 $as_echo_n "checking size of void*... " >&6; } -if test "${ac_cv_sizeof_voidp+set}" = set; then : +if ${ac_cv_sizeof_voidp+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : @@ -22200,7 +22876,7 @@ else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void*) -See \`config.log' for more details" "$LINENO" 5 ; } +See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_voidp=0 fi @@ -22269,19 +22945,19 @@ unset ac_cv_type_int_least32_t unset ac_cv_type_int_fast32_t ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <$ac_cv_header_stdint> " -if test "x$ac_cv_type_int_least32_t" = x""yes; then : +if test "x$ac_cv_type_int_least32_t" = xyes; then : fi ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include<$ac_cv_header_stdint> " -if test "x$ac_cv_type_int_fast32_t" = x""yes; then : +if test "x$ac_cv_type_int_fast32_t" = xyes; then : fi ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "#include <$ac_cv_header_stdint> " -if test "x$ac_cv_type_intmax_t" = x""yes; then : +if test "x$ac_cv_type_intmax_t" = xyes; then : fi @@ -22305,7 +22981,7 @@ ac_config_commands="$ac_config_commands $ac_stdint_h" for ac_header in netinet/in.h do : ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" -if test "x$ac_cv_header_netinet_in_h" = x""yes; then : +if test "x$ac_cv_header_netinet_in_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NETINET_IN_H 1 _ACEOF @@ -22317,7 +22993,7 @@ done for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" -if test "x$ac_cv_header_winsock2_h" = x""yes; then : +if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF @@ -22338,7 +23014,7 @@ fi for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_time_h" = x""yes; then : +if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF @@ -22353,7 +23029,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5 $as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } - if test "${_cv_gst_fionread_in_sys_ioctl+set}" = set; then : + if ${_cv_gst_fionread_in_sys_ioctl+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22397,7 +23073,7 @@ $as_echo "#define HAVE_FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/filio.h" >&5 $as_echo_n "checking for FIONREAD in sys/filio.h... " >&6; } - if test "${_cv_gst_fionread_in_sys_filio+set}" = set; then : + if ${_cv_gst_fionread_in_sys_filio+:} false; then : $as_echo_n "(cached) " >&6 else @@ -22515,7 +23191,7 @@ LIBS=$LIBS_SAVE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf" >&5 $as_echo_n "checking for isinf... " >&6; } -if test "${ac_cv_have_isinf+set}" = set; then : +if ${ac_cv_have_isinf+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -22573,7 +23249,7 @@ done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = x""yes; then : +if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF @@ -22583,7 +23259,7 @@ done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -22759,7 +23435,7 @@ fi ac_fn_c_check_type "$LINENO" "struct ip_mreqn" "ac_cv_type_struct_ip_mreqn" "#include " -if test "x$ac_cv_type_struct_ip_mreqn" = x""yes; then : +if test "x$ac_cv_type_struct_ip_mreqn" = xyes; then : $as_echo "#define HAVE_IP_MREQN /**/" >>confdefs.h @@ -22771,7 +23447,7 @@ fi - GLIB_REQ=2.20 + GLIB_REQ=2.24 if test "x$GLIB_REQ" = "x" then as_fn_error $? "Please specify a required version for GLib 2.0" "$LINENO" 5 @@ -22937,6 +23613,79 @@ fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO" >&5 +$as_echo_n "checking for GIO... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GIO_CFLAGS"; then + pkg_cv_GIO_CFLAGS="$GIO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gio-2.0 >= 2.20 \""; } >&5 + ($PKG_CONFIG --exists --print-errors " gio-2.0 >= 2.20 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIO_CFLAGS=`$PKG_CONFIG --cflags " gio-2.0 >= 2.20 " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GIO_LIBS"; then + pkg_cv_GIO_LIBS="$GIO_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gio-2.0 >= 2.20 \""; } >&5 + ($PKG_CONFIG --exists --print-errors " gio-2.0 >= 2.20 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIO_LIBS=`$PKG_CONFIG --libs " gio-2.0 >= 2.20 " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " gio-2.0 >= 2.20 "` + else + GIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " gio-2.0 >= 2.20 "` + fi + # Put the nasty error message in config.log where it belongs + echo "$GIO_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "gio is required" "$LINENO" 5 +elif test $pkg_failed = untried; then + as_fn_error $? "gio is required" "$LINENO" 5 +else + GIO_CFLAGS=$pkg_cv_GIO_CFLAGS + GIO_LIBS=$pkg_cv_GIO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + ORC_REQ=0.4.11 # Check whether --enable-orc was given. @@ -22945,7 +23694,7 @@ if test "${enable_orc+set}" = set; then : auto) enable_orc=auto ;; yes) enable_orc=yes ;; no) enable_orc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;; esac else @@ -23044,17 +23793,27 @@ $as_echo "yes" >&6; } $as_echo "#define HAVE_ORC 1" >>confdefs.h + HAVE_ORC=yes if test "x$ORCC" = "x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable orcc" >&5 +$as_echo_n "checking for usable orcc... " >&6; } ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + if $ORCC --version 1> /dev/null 2> /dev/null; then : + +else + ORCC=`which orcc` +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ORCC" >&5 +$as_echo "$ORCC" >&6; } fi ORCC_FLAGS="--compat $ORC_REQ" - HAVE_ORC=yes - HAVE_ORCC=yes - if test "x$cross_compiling" = "xyes" ; then - HAVE_ORCC=no - fi + if test "x$ORCC" = "x"; then : + HAVE_ORCC=no +else + HAVE_ORCC=yes +fi fi else @@ -23768,7 +24527,7 @@ if test "${with_gtk+set}" = set; then : withval=$with_gtk; case "$with_gtk" in 2.0) GTK_REQ=$GTK2_REQ ;; 3.0) GTK_REQ=$GTK3_REQ ;; - *) as_fn_error $? "invalid gtk+ version specified" "$LINENO" 5 ;; + *) as_fn_error $? "invalid gtk+ version specified" "$LINENO" 5;; esac else with_gtk=2.0 @@ -23956,7 +24715,7 @@ if test "${enable_gconftool+set}" = set; then : enableval=$enable_gconftool; case "${enableval}" in yes) USE_GCONFTOOL=yes;; no) USE_GCONFTOOL=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-gconftool" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gconftool" "$LINENO" 5 ;; esac else USE_GCONFTOOL=yes @@ -23984,7 +24743,7 @@ if test x$USE_GCONFTOOL = xyes; then set dummy gconftool-2; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GCONFTOOL+set}" = set; then : +if ${ac_cv_path_GCONFTOOL+:} false; then : $as_echo_n "(cached) " >&6 else case $GCONFTOOL in @@ -24068,28 +24827,6 @@ fi -# Check whether --enable-divx-drm was given. -if test "${enable_divx_drm+set}" = set; then : - enableval=$enable_divx_drm; - case "${enableval}" in - yes) USE_DIVX_DRM=yes ;; - no) USE_DIVX_DRM=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-divx-drm" "$LINENO" 5 ;; - esac - -else - USE_DIVX_DRM=no -fi - - if test "x$USE_DIVX_DRM" = "xyes"; then - USE_DIVX_DRM_TRUE= - USE_DIVX_DRM_FALSE='#' -else - USE_DIVX_DRM_TRUE='#' - USE_DIVX_DRM_FALSE= -fi - - GST_LICENSE="LGPL" @@ -25531,8 +26268,8 @@ _ACEOF if test "${with_default_audiosink+set}" = set; then : withval=$with_default_audiosink; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; *) DEFAULT_AUDIOSINK="${withval}" ;; esac @@ -25556,8 +26293,8 @@ _ACEOF if test "${with_default_audiosrc+set}" = set; then : withval=$with_default_audiosrc; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; *) DEFAULT_AUDIOSRC="${withval}" ;; esac @@ -25581,8 +26318,8 @@ _ACEOF if test "${with_default_videosink+set}" = set; then : withval=$with_default_videosink; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; *) DEFAULT_VIDEOSINK="${withval}" ;; esac @@ -25606,8 +26343,8 @@ _ACEOF if test "${with_default_videosrc+set}" = set; then : withval=$with_default_videosrc; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; *) DEFAULT_VIDEOSRC="${withval}" ;; esac @@ -25631,8 +26368,8 @@ _ACEOF if test "${with_default_visualizer+set}" = set; then : withval=$with_default_visualizer; case "${withval}" in - yes) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; - no) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; + yes) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; *) DEFAULT_VISUALIZER="${withval}" ;; esac @@ -25664,7 +26401,7 @@ if test "${enable_videofilter+set}" = set; then : case "${enableval}" in yes) gst_use_videofilter=yes ;; no) gst_use_videofilter=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videofilter" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videofilter" "$LINENO" 5 ;; esac else @@ -25704,7 +26441,7 @@ if test "${enable_alpha+set}" = set; then : case "${enableval}" in yes) gst_use_alpha=yes ;; no) gst_use_alpha=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-alpha" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-alpha" "$LINENO" 5 ;; esac else @@ -25744,7 +26481,7 @@ if test "${enable_apetag+set}" = set; then : case "${enableval}" in yes) gst_use_apetag=yes ;; no) gst_use_apetag=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-apetag" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-apetag" "$LINENO" 5 ;; esac else @@ -25784,7 +26521,7 @@ if test "${enable_audiofx+set}" = set; then : case "${enableval}" in yes) gst_use_audiofx=yes ;; no) gst_use_audiofx=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-audiofx" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-audiofx" "$LINENO" 5 ;; esac else @@ -25824,7 +26561,7 @@ if test "${enable_audioparsers+set}" = set; then : case "${enableval}" in yes) gst_use_audioparsers=yes ;; no) gst_use_audioparsers=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-audioparsers" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-audioparsers" "$LINENO" 5 ;; esac else @@ -25864,7 +26601,7 @@ if test "${enable_auparse+set}" = set; then : case "${enableval}" in yes) gst_use_auparse=yes ;; no) gst_use_auparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-auparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-auparse" "$LINENO" 5 ;; esac else @@ -25904,7 +26641,7 @@ if test "${enable_autodetect+set}" = set; then : case "${enableval}" in yes) gst_use_autodetect=yes ;; no) gst_use_autodetect=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-autodetect" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-autodetect" "$LINENO" 5 ;; esac else @@ -25944,7 +26681,7 @@ if test "${enable_avi+set}" = set; then : case "${enableval}" in yes) gst_use_avi=yes ;; no) gst_use_avi=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-avi" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-avi" "$LINENO" 5 ;; esac else @@ -25984,7 +26721,7 @@ if test "${enable_cutter+set}" = set; then : case "${enableval}" in yes) gst_use_cutter=yes ;; no) gst_use_cutter=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-cutter" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cutter" "$LINENO" 5 ;; esac else @@ -26024,7 +26761,7 @@ if test "${enable_debugutils+set}" = set; then : case "${enableval}" in yes) gst_use_debugutils=yes ;; no) gst_use_debugutils=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-debugutils" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debugutils" "$LINENO" 5 ;; esac else @@ -26064,7 +26801,7 @@ if test "${enable_deinterlace+set}" = set; then : case "${enableval}" in yes) gst_use_deinterlace=yes ;; no) gst_use_deinterlace=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-deinterlace" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-deinterlace" "$LINENO" 5 ;; esac else @@ -26104,7 +26841,7 @@ if test "${enable_effectv+set}" = set; then : case "${enableval}" in yes) gst_use_effectv=yes ;; no) gst_use_effectv=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-effectv" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-effectv" "$LINENO" 5 ;; esac else @@ -26144,7 +26881,7 @@ if test "${enable_equalizer+set}" = set; then : case "${enableval}" in yes) gst_use_equalizer=yes ;; no) gst_use_equalizer=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-equalizer" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-equalizer" "$LINENO" 5 ;; esac else @@ -26184,7 +26921,7 @@ if test "${enable_flv+set}" = set; then : case "${enableval}" in yes) gst_use_flv=yes ;; no) gst_use_flv=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-flv" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-flv" "$LINENO" 5 ;; esac else @@ -26224,7 +26961,7 @@ if test "${enable_id3demux+set}" = set; then : case "${enableval}" in yes) gst_use_id3demux=yes ;; no) gst_use_id3demux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-id3demux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-id3demux" "$LINENO" 5 ;; esac else @@ -26264,7 +27001,7 @@ if test "${enable_icydemux+set}" = set; then : case "${enableval}" in yes) gst_use_icydemux=yes ;; no) gst_use_icydemux=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-icydemux" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-icydemux" "$LINENO" 5 ;; esac else @@ -26304,7 +27041,7 @@ if test "${enable_interleave+set}" = set; then : case "${enableval}" in yes) gst_use_interleave=yes ;; no) gst_use_interleave=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-interleave" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-interleave" "$LINENO" 5 ;; esac else @@ -26344,7 +27081,7 @@ if test "${enable_flx+set}" = set; then : case "${enableval}" in yes) gst_use_flx=yes ;; no) gst_use_flx=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-flx" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-flx" "$LINENO" 5 ;; esac else @@ -26384,7 +27121,7 @@ if test "${enable_goom+set}" = set; then : case "${enableval}" in yes) gst_use_goom=yes ;; no) gst_use_goom=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-goom" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-goom" "$LINENO" 5 ;; esac else @@ -26424,7 +27161,7 @@ if test "${enable_goom2k1+set}" = set; then : case "${enableval}" in yes) gst_use_goom2k1=yes ;; no) gst_use_goom2k1=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-goom2k1" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-goom2k1" "$LINENO" 5 ;; esac else @@ -26464,7 +27201,7 @@ if test "${enable_imagefreeze+set}" = set; then : case "${enableval}" in yes) gst_use_imagefreeze=yes ;; no) gst_use_imagefreeze=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-imagefreeze" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-imagefreeze" "$LINENO" 5 ;; esac else @@ -26504,7 +27241,7 @@ if test "${enable_isomp4+set}" = set; then : case "${enableval}" in yes) gst_use_isomp4=yes ;; no) gst_use_isomp4=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-isomp4" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-isomp4" "$LINENO" 5 ;; esac else @@ -26544,7 +27281,7 @@ if test "${enable_law+set}" = set; then : case "${enableval}" in yes) gst_use_law=yes ;; no) gst_use_law=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-law" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-law" "$LINENO" 5 ;; esac else @@ -26584,7 +27321,7 @@ if test "${enable_level+set}" = set; then : case "${enableval}" in yes) gst_use_level=yes ;; no) gst_use_level=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-level" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-level" "$LINENO" 5 ;; esac else @@ -26624,7 +27361,7 @@ if test "${enable_matroska+set}" = set; then : case "${enableval}" in yes) gst_use_matroska=yes ;; no) gst_use_matroska=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-matroska" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-matroska" "$LINENO" 5 ;; esac else @@ -26664,7 +27401,7 @@ if test "${enable_monoscope+set}" = set; then : case "${enableval}" in yes) gst_use_monoscope=yes ;; no) gst_use_monoscope=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-monoscope" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-monoscope" "$LINENO" 5 ;; esac else @@ -26704,7 +27441,7 @@ if test "${enable_multifile+set}" = set; then : case "${enableval}" in yes) gst_use_multifile=yes ;; no) gst_use_multifile=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-multifile" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-multifile" "$LINENO" 5 ;; esac else @@ -26744,7 +27481,7 @@ if test "${enable_multipart+set}" = set; then : case "${enableval}" in yes) gst_use_multipart=yes ;; no) gst_use_multipart=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-multipart" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-multipart" "$LINENO" 5 ;; esac else @@ -26784,7 +27521,7 @@ if test "${enable_replaygain+set}" = set; then : case "${enableval}" in yes) gst_use_replaygain=yes ;; no) gst_use_replaygain=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-replaygain" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-replaygain" "$LINENO" 5 ;; esac else @@ -26824,7 +27561,7 @@ if test "${enable_rtp+set}" = set; then : case "${enableval}" in yes) gst_use_rtp=yes ;; no) gst_use_rtp=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rtp" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtp" "$LINENO" 5 ;; esac else @@ -26864,7 +27601,7 @@ if test "${enable_rtpmanager+set}" = set; then : case "${enableval}" in yes) gst_use_rtpmanager=yes ;; no) gst_use_rtpmanager=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rtpmanager" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtpmanager" "$LINENO" 5 ;; esac else @@ -26904,7 +27641,7 @@ if test "${enable_rtsp+set}" = set; then : case "${enableval}" in yes) gst_use_rtsp=yes ;; no) gst_use_rtsp=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-rtsp" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtsp" "$LINENO" 5 ;; esac else @@ -26944,7 +27681,7 @@ if test "${enable_shapewipe+set}" = set; then : case "${enableval}" in yes) gst_use_shapewipe=yes ;; no) gst_use_shapewipe=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-shapewipe" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-shapewipe" "$LINENO" 5 ;; esac else @@ -26984,7 +27721,7 @@ if test "${enable_smpte+set}" = set; then : case "${enableval}" in yes) gst_use_smpte=yes ;; no) gst_use_smpte=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-smpte" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-smpte" "$LINENO" 5 ;; esac else @@ -27024,7 +27761,7 @@ if test "${enable_spectrum+set}" = set; then : case "${enableval}" in yes) gst_use_spectrum=yes ;; no) gst_use_spectrum=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-spectrum" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-spectrum" "$LINENO" 5 ;; esac else @@ -27064,7 +27801,7 @@ if test "${enable_udp+set}" = set; then : case "${enableval}" in yes) gst_use_udp=yes ;; no) gst_use_udp=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-udp" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-udp" "$LINENO" 5 ;; esac else @@ -27104,7 +27841,7 @@ if test "${enable_videobox+set}" = set; then : case "${enableval}" in yes) gst_use_videobox=yes ;; no) gst_use_videobox=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videobox" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videobox" "$LINENO" 5 ;; esac else @@ -27144,7 +27881,7 @@ if test "${enable_videocrop+set}" = set; then : case "${enableval}" in yes) gst_use_videocrop=yes ;; no) gst_use_videocrop=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videocrop" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videocrop" "$LINENO" 5 ;; esac else @@ -27184,7 +27921,7 @@ if test "${enable_videomixer+set}" = set; then : case "${enableval}" in yes) gst_use_videomixer=yes ;; no) gst_use_videomixer=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-videomixer" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videomixer" "$LINENO" 5 ;; esac else @@ -27224,7 +27961,7 @@ if test "${enable_wavenc+set}" = set; then : case "${enableval}" in yes) gst_use_wavenc=yes ;; no) gst_use_wavenc=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-wavenc" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-wavenc" "$LINENO" 5 ;; esac else @@ -27264,7 +28001,7 @@ if test "${enable_wavparse+set}" = set; then : case "${enableval}" in yes) gst_use_wavparse=yes ;; no) gst_use_wavparse=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-wavparse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-wavparse" "$LINENO" 5 ;; esac else @@ -27304,7 +28041,7 @@ if test "${enable_y4m+set}" = set; then : case "${enableval}" in yes) gst_use_y4m=yes ;; no) gst_use_y4m=no ;; - *) as_fn_error $? "bad value ${enableval} for --enable-y4m" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-y4m" "$LINENO" 5 ;; esac else @@ -27335,12 +28072,12 @@ fi ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" -if test "x$ac_cv_func_socket" = x""yes; then : +if test "x$ac_cv_func_socket" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then : +if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -27374,7 +28111,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 $as_echo "$ac_cv_lib_socket_socket" >&6; } -if test "x$ac_cv_lib_socket_socket" = x""yes; then : +if test "x$ac_cv_lib_socket_socket" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF @@ -27389,7 +28126,7 @@ fi for ac_header in sys/socket.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_socket_h" = x""yes; then : +if test "x$ac_cv_header_sys_socket_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_SOCKET_H 1 _ACEOF @@ -27401,7 +28138,7 @@ done for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" -if test "x$ac_cv_header_winsock2_h" = x""yes; then : +if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF @@ -27478,7 +28215,7 @@ if test "${enable_directsound+set}" = set; then : enableval=$enable_directsound; case "${enableval}" in yes) USE_DIRECTSOUND=yes;; no) USE_DIRECTSOUND=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-directsound" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-directsound" "$LINENO" 5 ;; esac else USE_DIRECTSOUND=yes @@ -27605,7 +28342,7 @@ if test "${enable_oss+set}" = set; then : enableval=$enable_oss; case "${enableval}" in yes) USE_OSS=yes;; no) USE_OSS=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-oss" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-oss" "$LINENO" 5 ;; esac else USE_OSS=yes @@ -27631,7 +28368,7 @@ if test x$USE_OSS = xyes; then HAVE_OSS="yes" ac_fn_c_check_header_mongrel "$LINENO" "sys/soundcard.h" "ac_cv_header_sys_soundcard_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_soundcard_h" = x""yes; then : +if test "x$ac_cv_header_sys_soundcard_h" = xyes; then : $as_echo "#define HAVE_OSS_INCLUDE_IN_SYS /**/" >>confdefs.h @@ -27640,7 +28377,7 @@ $as_echo "#define HAVE_OSS_INCLUDE_IN_SYS /**/" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "soundcard.h" "ac_cv_header_soundcard_h" "$ac_includes_default" -if test "x$ac_cv_header_soundcard_h" = x""yes; then : +if test "x$ac_cv_header_soundcard_h" = xyes; then : $as_echo "#define HAVE_OSS_INCLUDE_IN_ROOT /**/" >>confdefs.h @@ -27649,7 +28386,7 @@ $as_echo "#define HAVE_OSS_INCLUDE_IN_ROOT /**/" >>confdefs.h else ac_fn_c_check_header_mongrel "$LINENO" "machine/soundcard.h" "ac_cv_header_machine_soundcard_h" "$ac_includes_default" -if test "x$ac_cv_header_machine_soundcard_h" = x""yes; then : +if test "x$ac_cv_header_machine_soundcard_h" = xyes; then : $as_echo "#define HAVE_OSS_INCLUDE_IN_MACHINE /**/" >>confdefs.h @@ -27728,7 +28465,7 @@ if test "${enable_oss4+set}" = set; then : enableval=$enable_oss4; case "${enableval}" in yes) USE_OSS4=yes;; no) USE_OSS4=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-oss4" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-oss4" "$LINENO" 5 ;; esac else USE_OSS4=yes @@ -27827,7 +28564,7 @@ if test "${enable_sunaudio+set}" = set; then : enableval=$enable_sunaudio; case "${enableval}" in yes) USE_SUNAUDIO=yes;; no) USE_SUNAUDIO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-sunaudio" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sunaudio" "$LINENO" 5 ;; esac else USE_SUNAUDIO=yes @@ -27852,7 +28589,7 @@ if test x$USE_SUNAUDIO = xyes; then HAVE_SUNAUDIO=no ac_fn_c_check_header_mongrel "$LINENO" "sys/audioio.h" "ac_cv_header_sys_audioio_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_audioio_h" = x""yes; then : +if test "x$ac_cv_header_sys_audioio_h" = xyes; then : HAVE_SUNAUDIO="yes" else HAVE_SUNAUDIO="no" @@ -27917,7 +28654,7 @@ if test "${enable_osx_audio+set}" = set; then : enableval=$enable_osx_audio; case "${enableval}" in yes) USE_OSX_AUDIO=yes;; no) USE_OSX_AUDIO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-osx_audio" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-osx_audio" "$LINENO" 5 ;; esac else USE_OSX_AUDIO=yes @@ -27942,7 +28679,7 @@ if test x$USE_OSX_AUDIO = xyes; then HAVE_OSX_AUDIO=no ac_fn_c_check_header_mongrel "$LINENO" "CoreAudio/CoreAudio.h" "ac_cv_header_CoreAudio_CoreAudio_h" "$ac_includes_default" -if test "x$ac_cv_header_CoreAudio_CoreAudio_h" = x""yes; then : +if test "x$ac_cv_header_CoreAudio_CoreAudio_h" = xyes; then : HAVE_OSX_AUDIO="yes" else HAVE_OSX_AUDIO="no" @@ -28008,7 +28745,7 @@ if test "${enable_osx_video+set}" = set; then : enableval=$enable_osx_video; case "${enableval}" in yes) USE_OSX_VIDEO=yes;; no) USE_OSX_VIDEO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-osx_video" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-osx_video" "$LINENO" 5 ;; esac else USE_OSX_VIDEO=yes @@ -28033,7 +28770,7 @@ if test x$USE_OSX_VIDEO = xyes; then HAVE_OSX_VIDEO=no ac_fn_c_check_header_mongrel "$LINENO" "OpenGL/gl.h" "ac_cv_header_OpenGL_gl_h" "$ac_includes_default" -if test "x$ac_cv_header_OpenGL_gl_h" = x""yes; then : +if test "x$ac_cv_header_OpenGL_gl_h" = xyes; then : HAVE_OSX_VIDEO="yes" else HAVE_OSX_VIDEO="no" @@ -28106,7 +28843,7 @@ if test "${enable_gst_v4l2+set}" = set; then : enableval=$enable_gst_v4l2; case "${enableval}" in yes) USE_GST_V4L2=yes;; no) USE_GST_V4L2=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l2" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l2" "$LINENO" 5 ;; esac else USE_GST_V4L2=yes @@ -28173,12 +28910,12 @@ $as_echo "no" >&6; } HAVE_VIDEODEV=no ac_fn_c_check_header_mongrel "$LINENO" "linux/videodev2.h" "ac_cv_header_linux_videodev2_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_videodev2_h" = x""yes; then : +if test "x$ac_cv_header_linux_videodev2_h" = xyes; then : HAVE_VIDEODEV=yes else ac_fn_c_check_header_mongrel "$LINENO" "sys/videodev2.h" "ac_cv_header_sys_videodev2_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_videodev2_h" = x""yes; then : +if test "x$ac_cv_header_sys_videodev2_h" = xyes; then : HAVE_VIDEODEV=yes fi @@ -28249,7 +28986,7 @@ $as_echo "#define GST_V4L2_MISSING_BUFDECL 1" >>confdefs.h if test x$HAVE_X = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5 $as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; } -if test "${ac_cv_lib_Xv_pic_XvQueryExtension+set}" = set; then : +if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28283,7 +29020,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5 $as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = x""yes; then : +if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then : HAVE_XVIDEO="yes" else HAVE_XVIDEO="no" @@ -28297,7 +29034,7 @@ fi if test x$HAVE_XVIDEO = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5 $as_echo_n "checking for XvQueryExtension in -lXv... " >&6; } -if test "${ac_cv_lib_Xv_XvQueryExtension+set}" = set; then : +if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28331,7 +29068,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5 $as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_XvQueryExtension" = x""yes; then : +if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then : HAVE_XVIDEO="yes" else HAVE_XVIDEO="no" @@ -28598,8 +29335,8 @@ if test "x$with_x" = xno; then have_x=disabled else case $x_includes,$x_libraries in #( - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. @@ -28793,7 +29530,7 @@ if test "${enable_x+set}" = set; then : enableval=$enable_x; case "${enableval}" in yes) USE_X=yes;; no) USE_X=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-x" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-x" "$LINENO" 5 ;; esac else USE_X=yes @@ -28917,7 +29654,7 @@ if ac_fn_c_try_link "$LINENO"; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28951,14 +29688,14 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -28992,7 +29729,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi @@ -29011,14 +29748,14 @@ rm -f core conftest.err conftest.$ac_objext \ # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = x""yes; then : +if test "x$ac_cv_func_gethostbyname" = xyes; then : fi if test $ac_cv_func_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29052,14 +29789,14 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29093,7 +29830,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } -if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi @@ -29108,14 +29845,14 @@ fi # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -if test "x$ac_cv_func_connect" = x""yes; then : +if test "x$ac_cv_func_connect" = xyes; then : fi if test $ac_cv_func_connect = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then : +if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29149,7 +29886,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } -if test "x$ac_cv_lib_socket_connect" = x""yes; then : +if test "x$ac_cv_lib_socket_connect" = xyes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi @@ -29157,14 +29894,14 @@ fi # Guillermo Gomez says -lposix is necessary on A/UX. ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" -if test "x$ac_cv_func_remove" = x""yes; then : +if test "x$ac_cv_func_remove" = xyes; then : fi if test $ac_cv_func_remove = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } -if test "${ac_cv_lib_posix_remove+set}" = set; then : +if ${ac_cv_lib_posix_remove+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29198,7 +29935,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } -if test "x$ac_cv_lib_posix_remove" = x""yes; then : +if test "x$ac_cv_lib_posix_remove" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi @@ -29206,14 +29943,14 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" -if test "x$ac_cv_func_shmat" = x""yes; then : +if test "x$ac_cv_func_shmat" = xyes; then : fi if test $ac_cv_func_shmat = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } -if test "${ac_cv_lib_ipc_shmat+set}" = set; then : +if ${ac_cv_lib_ipc_shmat+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29247,7 +29984,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } -if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi @@ -29265,7 +30002,7 @@ fi # John Interrante, Karl Berry { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29299,7 +30036,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi @@ -29313,7 +30050,7 @@ fi CFLAGS="$CFLAGS $X_CFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "X11/Xlib.h" "ac_cv_header_X11_Xlib_h" "$ac_includes_default" -if test "x$ac_cv_header_X11_Xlib_h" = x""yes; then : +if test "x$ac_cv_header_X11_Xlib_h" = xyes; then : HAVE_X="yes" else HAVE_X="no" @@ -29548,7 +30285,7 @@ if test "${enable_xshm+set}" = set; then : enableval=$enable_xshm; case "${enableval}" in yes) USE_XSHM=yes;; no) USE_XSHM=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-xshm" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-xshm" "$LINENO" 5 ;; esac else USE_XSHM=yes @@ -29575,7 +30312,7 @@ if test x$USE_XSHM = xyes; then if test x$HAVE_X = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXext" >&5 $as_echo_n "checking for XShmAttach in -lXext... " >&6; } -if test "${ac_cv_lib_Xext_XShmAttach+set}" = set; then : +if ${ac_cv_lib_Xext_XShmAttach+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29609,7 +30346,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmAttach" >&5 $as_echo "$ac_cv_lib_Xext_XShmAttach" >&6; } -if test "x$ac_cv_lib_Xext_XShmAttach" = x""yes; then : +if test "x$ac_cv_lib_Xext_XShmAttach" = xyes; then : HAVE_XSHM="yes" else HAVE_XSHM="no" @@ -29620,7 +30357,7 @@ fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmAttach in -lXextSam" >&5 $as_echo_n "checking for XShmAttach in -lXextSam... " >&6; } -if test "${ac_cv_lib_XextSam_XShmAttach+set}" = set; then : +if ${ac_cv_lib_XextSam_XShmAttach+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29654,7 +30391,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XextSam_XShmAttach" >&5 $as_echo "$ac_cv_lib_XextSam_XShmAttach" >&6; } -if test "x$ac_cv_lib_XextSam_XShmAttach" = x""yes; then : +if test "x$ac_cv_lib_XextSam_XShmAttach" = xyes; then : HAVE_XSHM="yes" else HAVE_XSHM="no" @@ -29724,7 +30461,7 @@ if test "${enable_xvideo+set}" = set; then : enableval=$enable_xvideo; case "${enableval}" in yes) USE_XVIDEO=yes;; no) USE_XVIDEO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-xvideo" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-xvideo" "$LINENO" 5 ;; esac else USE_XVIDEO=yes @@ -29752,7 +30489,7 @@ if test x$USE_XVIDEO = xyes; then if test x$HAVE_X = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5 $as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; } -if test "${ac_cv_lib_Xv_pic_XvQueryExtension+set}" = set; then : +if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29786,7 +30523,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5 $as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = x""yes; then : +if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then : HAVE_XVIDEO="yes" else HAVE_XVIDEO="no" @@ -29800,7 +30537,7 @@ fi if test x$HAVE_XVIDEO = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5 $as_echo_n "checking for XvQueryExtension in -lXv... " >&6; } -if test "${ac_cv_lib_Xv_XvQueryExtension+set}" = set; then : +if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -29834,7 +30571,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5 $as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_XvQueryExtension" = x""yes; then : +if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then : HAVE_XVIDEO="yes" else HAVE_XVIDEO="no" @@ -29913,7 +30650,7 @@ if test "${enable_aalib+set}" = set; then : enableval=$enable_aalib; case "${enableval}" in yes) USE_AALIB=yes;; no) USE_AALIB=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-aalib" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-aalib" "$LINENO" 5 ;; esac else USE_AALIB=yes @@ -29980,7 +30717,7 @@ fi set dummy aalib-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_AALIB_CONFIG+set}" = set; then : +if ${ac_cv_path_AALIB_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $AALIB_CONFIG in @@ -30247,7 +30984,7 @@ if test "${enable_annodex+set}" = set; then : enableval=$enable_annodex; case "${enableval}" in yes) USE_ANNODEX=yes;; no) USE_ANNODEX=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-annodex" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-annodex" "$LINENO" 5 ;; esac else USE_ANNODEX=yes @@ -30424,7 +31161,7 @@ if test "${enable_cairo+set}" = set; then : enableval=$enable_cairo; case "${enableval}" in yes) USE_CAIRO=yes;; no) USE_CAIRO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-cairo" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cairo" "$LINENO" 5 ;; esac else USE_CAIRO=yes @@ -30601,7 +31338,7 @@ if test "${enable_cairo_gobject+set}" = set; then : enableval=$enable_cairo_gobject; case "${enableval}" in yes) USE_CAIRO_GOBJECT=yes;; no) USE_CAIRO_GOBJECT=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-cairo_gobject" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cairo_gobject" "$LINENO" 5 ;; esac else USE_CAIRO_GOBJECT=yes @@ -30778,7 +31515,7 @@ if test "${enable_esd+set}" = set; then : enableval=$enable_esd; case "${enableval}" in yes) USE_ESD=yes;; no) USE_ESD=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-esd" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-esd" "$LINENO" 5 ;; esac else USE_ESD=yes @@ -30942,7 +31679,7 @@ fi set dummy esd-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ESD_CONFIG+set}" = set; then : +if ${ac_cv_path_ESD_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ESD_CONFIG in @@ -31233,7 +31970,7 @@ if test "${enable_flac+set}" = set; then : enableval=$enable_flac; case "${enableval}" in yes) USE_FLAC=yes;; no) USE_FLAC=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-flac" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-flac" "$LINENO" 5 ;; esac else USE_FLAC=yes @@ -31410,7 +32147,7 @@ if test "${enable_gconf+set}" = set; then : enableval=$enable_gconf; case "${enableval}" in yes) USE_GCONF=yes;; no) USE_GCONF=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-gconf" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gconf" "$LINENO" 5 ;; esac else USE_GCONF=yes @@ -31587,7 +32324,7 @@ if test "${enable_gdk_pixbuf+set}" = set; then : enableval=$enable_gdk_pixbuf; case "${enableval}" in yes) USE_GDK_PIXBUF=yes;; no) USE_GDK_PIXBUF=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-gdk_pixbuf" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gdk_pixbuf" "$LINENO" 5 ;; esac else USE_GDK_PIXBUF=yes @@ -31764,7 +32501,7 @@ if test "${enable_hal+set}" = set; then : enableval=$enable_hal; case "${enableval}" in yes) USE_HAL=yes;; no) USE_HAL=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-hal" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-hal" "$LINENO" 5 ;; esac else USE_HAL=yes @@ -31941,7 +32678,7 @@ if test "${enable_jack+set}" = set; then : enableval=$enable_jack; case "${enableval}" in yes) USE_JACK=yes;; no) USE_JACK=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-jack" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jack" "$LINENO" 5 ;; esac else USE_JACK=yes @@ -32298,7 +33035,7 @@ if test "${enable_jpeg+set}" = set; then : enableval=$enable_jpeg; case "${enableval}" in yes) USE_JPEG=yes;; no) USE_JPEG=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-jpeg" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jpeg" "$LINENO" 5 ;; esac else USE_JPEG=yes @@ -32334,7 +33071,7 @@ fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_set_defaults in -ljpeg-mmx" >&5 $as_echo_n "checking for jpeg_set_defaults in -ljpeg-mmx... " >&6; } -if test "${ac_cv_lib_jpeg_mmx_jpeg_set_defaults+set}" = set; then : +if ${ac_cv_lib_jpeg_mmx_jpeg_set_defaults+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32368,7 +33105,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_mmx_jpeg_set_defaults" >&5 $as_echo "$ac_cv_lib_jpeg_mmx_jpeg_set_defaults" >&6; } -if test "x$ac_cv_lib_jpeg_mmx_jpeg_set_defaults" = x""yes; then : +if test "x$ac_cv_lib_jpeg_mmx_jpeg_set_defaults" = xyes; then : HAVE_JPEG="yes" else HAVE_JPEG="no" @@ -32379,7 +33116,7 @@ fi if test x$HAVE_JPEG != xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_set_defaults in -ljpeg" >&5 $as_echo_n "checking for jpeg_set_defaults in -ljpeg... " >&6; } -if test "${ac_cv_lib_jpeg_jpeg_set_defaults+set}" = set; then : +if ${ac_cv_lib_jpeg_jpeg_set_defaults+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -32413,7 +33150,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_set_defaults" >&5 $as_echo "$ac_cv_lib_jpeg_jpeg_set_defaults" >&6; } -if test "x$ac_cv_lib_jpeg_jpeg_set_defaults" = x""yes; then : +if test "x$ac_cv_lib_jpeg_jpeg_set_defaults" = xyes; then : HAVE_JPEG="yes" else HAVE_JPEG="no" @@ -32480,7 +33217,7 @@ if test "${enable_libcaca+set}" = set; then : enableval=$enable_libcaca; case "${enableval}" in yes) USE_LIBCACA=yes;; no) USE_LIBCACA=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-libcaca" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-libcaca" "$LINENO" 5 ;; esac else USE_LIBCACA=yes @@ -32599,110 +33336,6 @@ $as_echo "yes" >&6; } fi - if test "x$HAVE_LIBCACA" != "xyes"; then - - # Extract the first word of "caca-config", so it can be a program name with args. -set dummy caca-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LIBCACA_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $LIBCACA_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBCACA_CONFIG="$LIBCACA_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LIBCACA_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_LIBCACA_CONFIG" && ac_cv_path_LIBCACA_CONFIG="no" - ;; -esac -fi -LIBCACA_CONFIG=$ac_cv_path_LIBCACA_CONFIG -if test -n "$LIBCACA_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBCACA_CONFIG" >&5 -$as_echo "$LIBCACA_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test x$LIBCACA_CONFIG = xno; then - LIBCACA_LIBS= - LIBCACA_CFLAGS= - HAVE_LIBCACA=no - else - if caca-config --plugin-libs &> /dev/null; then - LIBCACA_LIBS=`caca-config --plugin-libs ` - else - LIBCACA_LIBS=`caca-config --libs ` - fi - LIBCACA_CFLAGS=`caca-config --cflags ` - HAVE_LIBCACA=yes - fi - - - - if test "x$HAVE_LIBCACA" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for caca_init in -lcaca" >&5 -$as_echo_n "checking for caca_init in -lcaca... " >&6; } -if test "${ac_cv_lib_caca_caca_init+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcaca $LIBCACA_LIBS $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char caca_init (); -int -main () -{ -return caca_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_caca_caca_init=yes -else - ac_cv_lib_caca_caca_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_caca_caca_init" >&5 -$as_echo "$ac_cv_lib_caca_caca_init" >&6; } -if test "x$ac_cv_lib_caca_caca_init" = x""yes; then : - HAVE_LIBCACA=yes -else - HAVE_LIBCACA=no -fi - - fi - fi LIBS=$gst_check_save_LIBS @@ -32761,7 +33394,7 @@ if test "${enable_libdv+set}" = set; then : enableval=$enable_libdv; case "${enableval}" in yes) USE_LIBDV=yes;; no) USE_LIBDV=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-libdv" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-libdv" "$LINENO" 5 ;; esac else USE_LIBDV=yes @@ -32938,7 +33571,7 @@ if test "${enable_libpng+set}" = set; then : enableval=$enable_libpng; case "${enableval}" in yes) USE_LIBPNG=yes;; no) USE_LIBPNG=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-libpng" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-libpng" "$LINENO" 5 ;; esac else USE_LIBPNG=yes @@ -33115,7 +33748,7 @@ if test "${enable_pulse+set}" = set; then : enableval=$enable_pulse; case "${enableval}" in yes) USE_PULSE=yes;; no) USE_PULSE=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-pulse" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-pulse" "$LINENO" 5 ;; esac else USE_PULSE=yes @@ -33143,7 +33776,7 @@ if test x$USE_PULSE = xyes; then for ac_header in process.h do : ac_fn_c_check_header_mongrel "$LINENO" "process.h" "ac_cv_header_process_h" "$ac_includes_default" -if test "x$ac_cv_header_process_h" = x""yes; then : +if test "x$ac_cv_header_process_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PROCESS_H 1 _ACEOF @@ -33154,7 +33787,7 @@ done - which="libpulse >= 0.9.10" + which="libpulse >= 0.9.16" required="no" @@ -33249,506 +33882,6 @@ fi - which="libpulse >= 0.9.11" - required="no" - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_0_9_11" >&5 -$as_echo_n "checking for PULSE_0_9_11... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_11_CFLAGS"; then - pkg_cv_PULSE_0_9_11_CFLAGS="$PULSE_0_9_11_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_11_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_11_LIBS"; then - pkg_cv_PULSE_0_9_11_LIBS="$PULSE_0_9_11_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_11_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_0_9_11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` - else - PULSE_0_9_11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_0_9_11_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_PULSE_0_9_11="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_11_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_11_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_11_PKG_ERRORS" >&6;} - fi - -elif test $pkg_failed = untried; then - - HAVE_PULSE_0_9_11="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_11_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_11_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_11_PKG_ERRORS" >&6;} - fi - -else - PULSE_0_9_11_CFLAGS=$pkg_cv_PULSE_0_9_11_CFLAGS - PULSE_0_9_11_LIBS=$pkg_cv_PULSE_0_9_11_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_PULSE_0_9_11="yes" - -fi - - - if test x$HAVE_PULSE_0_9_11 = xyes; then - -$as_echo "#define HAVE_PULSE_0_9_11 1" >>confdefs.h - - fi - - which="libpulse >= 0.9.12" - required="no" - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_0_9_12" >&5 -$as_echo_n "checking for PULSE_0_9_12... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_12_CFLAGS"; then - pkg_cv_PULSE_0_9_12_CFLAGS="$PULSE_0_9_12_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_12_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_12_LIBS"; then - pkg_cv_PULSE_0_9_12_LIBS="$PULSE_0_9_12_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_12_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_0_9_12_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` - else - PULSE_0_9_12_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_0_9_12_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_PULSE_0_9_12="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_12_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_12_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_12_PKG_ERRORS" >&6;} - fi - -elif test $pkg_failed = untried; then - - HAVE_PULSE_0_9_12="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_12_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_12_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_12_PKG_ERRORS" >&6;} - fi - -else - PULSE_0_9_12_CFLAGS=$pkg_cv_PULSE_0_9_12_CFLAGS - PULSE_0_9_12_LIBS=$pkg_cv_PULSE_0_9_12_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_PULSE_0_9_12="yes" - -fi - - - if test x$HAVE_PULSE_0_9_12 = xyes; then - -$as_echo "#define HAVE_PULSE_0_9_12 1" >>confdefs.h - - fi - - which="libpulse >= 0.9.13" - required="no" - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_0_9_13" >&5 -$as_echo_n "checking for PULSE_0_9_13... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_13_CFLAGS"; then - pkg_cv_PULSE_0_9_13_CFLAGS="$PULSE_0_9_13_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_13_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_13_LIBS"; then - pkg_cv_PULSE_0_9_13_LIBS="$PULSE_0_9_13_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_13_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_0_9_13_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` - else - PULSE_0_9_13_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_0_9_13_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_PULSE_0_9_13="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_13_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_13_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_13_PKG_ERRORS" >&6;} - fi - -elif test $pkg_failed = untried; then - - HAVE_PULSE_0_9_13="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_13_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_13_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_13_PKG_ERRORS" >&6;} - fi - -else - PULSE_0_9_13_CFLAGS=$pkg_cv_PULSE_0_9_13_CFLAGS - PULSE_0_9_13_LIBS=$pkg_cv_PULSE_0_9_13_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_PULSE_0_9_13="yes" - -fi - - - if test x$HAVE_PULSE_0_9_13 = xyes; then - -$as_echo "#define HAVE_PULSE_0_9_13 1" >>confdefs.h - - fi - - which="libpulse >= 0.9.15" - required="no" - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_0_9_15" >&5 -$as_echo_n "checking for PULSE_0_9_15... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_15_CFLAGS"; then - pkg_cv_PULSE_0_9_15_CFLAGS="$PULSE_0_9_15_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_15_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_15_LIBS"; then - pkg_cv_PULSE_0_9_15_LIBS="$PULSE_0_9_15_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_15_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_0_9_15_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` - else - PULSE_0_9_15_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_0_9_15_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_PULSE_0_9_15="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_15_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_15_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_15_PKG_ERRORS" >&6;} - fi - -elif test $pkg_failed = untried; then - - HAVE_PULSE_0_9_15="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_15_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_15_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_15_PKG_ERRORS" >&6;} - fi - -else - PULSE_0_9_15_CFLAGS=$pkg_cv_PULSE_0_9_15_CFLAGS - PULSE_0_9_15_LIBS=$pkg_cv_PULSE_0_9_15_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_PULSE_0_9_15="yes" - -fi - - - if test x$HAVE_PULSE_0_9_15 = xyes; then - -$as_echo "#define HAVE_PULSE_0_9_15 1" >>confdefs.h - - fi - - which="libpulse >= 0.9.16" - required="no" - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_0_9_16" >&5 -$as_echo_n "checking for PULSE_0_9_16... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_16_CFLAGS"; then - pkg_cv_PULSE_0_9_16_CFLAGS="$PULSE_0_9_16_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_16_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$PULSE_0_9_16_LIBS"; then - pkg_cv_PULSE_0_9_16_LIBS="$PULSE_0_9_16_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$which") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_PULSE_0_9_16_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - PULSE_0_9_16_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` - else - PULSE_0_9_16_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` - fi - # Put the nasty error message in config.log where it belongs - echo "$PULSE_0_9_16_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_PULSE_0_9_16="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_16_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_16_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_16_PKG_ERRORS" >&6;} - fi - -elif test $pkg_failed = untried; then - - HAVE_PULSE_0_9_16="no" - if test "x$required" = "xyes"; then - as_fn_error $? "$PULSE_0_9_16_PKG_ERRORS" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_0_9_16_PKG_ERRORS" >&5 -$as_echo "$as_me: $PULSE_0_9_16_PKG_ERRORS" >&6;} - fi - -else - PULSE_0_9_16_CFLAGS=$pkg_cv_PULSE_0_9_16_CFLAGS - PULSE_0_9_16_LIBS=$pkg_cv_PULSE_0_9_16_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - HAVE_PULSE_0_9_16="yes" - -fi - - - if test x$HAVE_PULSE_0_9_16 = xyes; then - -$as_echo "#define HAVE_PULSE_0_9_16 1" >>confdefs.h - - fi - which="libpulse >= 0.9.20" required="no" @@ -33849,6 +33982,106 @@ $as_echo "#define HAVE_PULSE_0_9_20 1" >>confdefs.h fi + which="libpulse >= 0.98" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PULSE_1_0" >&5 +$as_echo_n "checking for PULSE_1_0... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$PULSE_1_0_CFLAGS"; then + pkg_cv_PULSE_1_0_CFLAGS="$PULSE_1_0_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PULSE_1_0_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$PULSE_1_0_LIBS"; then + pkg_cv_PULSE_1_0_LIBS="$PULSE_1_0_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PULSE_1_0_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + PULSE_1_0_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + PULSE_1_0_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$PULSE_1_0_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_PULSE_1_0="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$PULSE_1_0_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_1_0_PKG_ERRORS" >&5 +$as_echo "$as_me: $PULSE_1_0_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_PULSE_1_0="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$PULSE_1_0_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $PULSE_1_0_PKG_ERRORS" >&5 +$as_echo "$as_me: $PULSE_1_0_PKG_ERRORS" >&6;} + fi + +else + PULSE_1_0_CFLAGS=$pkg_cv_PULSE_1_0_CFLAGS + PULSE_1_0_LIBS=$pkg_cv_PULSE_1_0_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_PULSE_1_0="yes" + +fi + + + if test x$HAVE_PULSE_1_0 = xyes; then + +$as_echo "#define HAVE_PULSE_1_0 1" >>confdefs.h + + fi + LIBS=$gst_check_save_LIBS LDFLAGS=$gst_check_save_LDFLAGS @@ -33906,7 +34139,7 @@ if test "${enable_dv1394+set}" = set; then : enableval=$enable_dv1394; case "${enableval}" in yes) USE_DV1394=yes;; no) USE_DV1394=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-dv1394" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dv1394" "$LINENO" 5 ;; esac else USE_DV1394=yes @@ -34125,7 +34358,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for avc1394_send_command in -lavc1394" >&5 $as_echo_n "checking for avc1394_send_command in -lavc1394... " >&6; } -if test "${ac_cv_lib_avc1394_avc1394_send_command+set}" = set; then : +if ${ac_cv_lib_avc1394_avc1394_send_command+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -34159,7 +34392,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avc1394_avc1394_send_command" >&5 $as_echo "$ac_cv_lib_avc1394_avc1394_send_command" >&6; } -if test "x$ac_cv_lib_avc1394_avc1394_send_command" = x""yes; then : +if test "x$ac_cv_lib_avc1394_avc1394_send_command" = xyes; then : HAVE_AVC1394=yes else HAVE_AVC1394=no @@ -34167,7 +34400,7 @@ fi if test "x$HAVE_AVC1394" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "libavc1394/avc1394.h" "ac_cv_header_libavc1394_avc1394_h" "$ac_includes_default" -if test "x$ac_cv_header_libavc1394_avc1394_h" = x""yes; then : +if test "x$ac_cv_header_libavc1394_avc1394_h" = xyes; then : : else HAVE_AVC1394=no @@ -34188,7 +34421,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rom1394_free_directory in -lrom1394" >&5 $as_echo_n "checking for rom1394_free_directory in -lrom1394... " >&6; } -if test "${ac_cv_lib_rom1394_rom1394_free_directory+set}" = set; then : +if ${ac_cv_lib_rom1394_rom1394_free_directory+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -34222,7 +34455,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rom1394_rom1394_free_directory" >&5 $as_echo "$ac_cv_lib_rom1394_rom1394_free_directory" >&6; } -if test "x$ac_cv_lib_rom1394_rom1394_free_directory" = x""yes; then : +if test "x$ac_cv_lib_rom1394_rom1394_free_directory" = xyes; then : HAVE_ROM1394=yes else HAVE_ROM1394=no @@ -34230,7 +34463,7 @@ fi if test "x$HAVE_ROM1394" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "libavc1394/rom1394.h" "ac_cv_header_libavc1394_rom1394_h" "$ac_includes_default" -if test "x$ac_cv_header_libavc1394_rom1394_h" = x""yes; then : +if test "x$ac_cv_header_libavc1394_rom1394_h" = xyes; then : : else HAVE_ROM1394=no @@ -34357,7 +34590,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for avc1394_send_command in -lavc1394" >&5 $as_echo_n "checking for avc1394_send_command in -lavc1394... " >&6; } -if test "${ac_cv_lib_avc1394_avc1394_send_command+set}" = set; then : +if ${ac_cv_lib_avc1394_avc1394_send_command+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -34391,7 +34624,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avc1394_avc1394_send_command" >&5 $as_echo "$ac_cv_lib_avc1394_avc1394_send_command" >&6; } -if test "x$ac_cv_lib_avc1394_avc1394_send_command" = x""yes; then : +if test "x$ac_cv_lib_avc1394_avc1394_send_command" = xyes; then : HAVE_AVC1394=yes else HAVE_AVC1394=no @@ -34399,7 +34632,7 @@ fi if test "x$HAVE_AVC1394" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "libavc1394/avc1394.h" "ac_cv_header_libavc1394_avc1394_h" "$ac_includes_default" -if test "x$ac_cv_header_libavc1394_avc1394_h" = x""yes; then : +if test "x$ac_cv_header_libavc1394_avc1394_h" = xyes; then : : else HAVE_AVC1394=no @@ -34420,7 +34653,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rom1394_free_directory in -lrom1394" >&5 $as_echo_n "checking for rom1394_free_directory in -lrom1394... " >&6; } -if test "${ac_cv_lib_rom1394_rom1394_free_directory+set}" = set; then : +if ${ac_cv_lib_rom1394_rom1394_free_directory+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -34454,7 +34687,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rom1394_rom1394_free_directory" >&5 $as_echo "$ac_cv_lib_rom1394_rom1394_free_directory" >&6; } -if test "x$ac_cv_lib_rom1394_rom1394_free_directory" = x""yes; then : +if test "x$ac_cv_lib_rom1394_rom1394_free_directory" = xyes; then : HAVE_ROM1394=yes else HAVE_ROM1394=no @@ -34462,7 +34695,7 @@ fi if test "x$HAVE_ROM1394" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "libavc1394/rom1394.h" "ac_cv_header_libavc1394_rom1394_h" "$ac_includes_default" -if test "x$ac_cv_header_libavc1394_rom1394_h" = x""yes; then : +if test "x$ac_cv_header_libavc1394_rom1394_h" = xyes; then : : else HAVE_ROM1394=no @@ -34561,7 +34794,7 @@ if test "${enable_shout2+set}" = set; then : enableval=$enable_shout2; case "${enableval}" in yes) USE_SHOUT2=yes;; no) USE_SHOUT2=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-shout2" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-shout2" "$LINENO" 5 ;; esac else USE_SHOUT2=yes @@ -34680,145 +34913,6 @@ $as_echo "yes" >&6; } fi - if test $HAVE_SHOUT2 = no - then - -# Check whether --with-shout2-prefix was given. -if test "${with_shout2_prefix+set}" = set; then : - withval=$with_shout2_prefix; shout2_prefix="$withval" -else - shout2_prefix="" -fi - -# Check whether --enable-shout2test was given. -if test "${enable_shout2test+set}" = set; then : - enableval=$enable_shout2test; -else - enable_shout2test=yes -fi - - - if test "x$shout2_prefix" != "xNONE" ; then - SHOUT2_CFLAGS="-I$shout2_prefix/include" - SHOUT2_LIBS="-L$shout2_prefix/lib" - elif test "x$prefix" != "x"; then - SHOUT2_CFLAGS="-I$prefix/include" - SHOUT2_LIBS="-L$prefix/lib" - fi - - SHOUT2_LIBS="$SHOUT2_LIBS -lshout -lpthread" - - case $host in - *-*-solaris*) - SHOUT2_LIBS="$SHOUT2_LIBS -lnsl -lsocket -lresolv" - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shout2" >&5 -$as_echo_n "checking for shout2... " >&6; } - no_shout2="" - - if test "x$enable_shout2test" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SHOUT2_CFLAGS $OGG_CFLAGS $VORBIS_CFLAGS" - LIBS="$LIBS $SHOUT2_LIBS $OGG_LIBS $VORBIS_LIBS" - rm -f conf.shout2test - if test "$cross_compiling" = yes; then : - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include -#include - -int main () -{ - int major, minor, patch; - - system("touch conf.shout2test"); - shout_version(&major, &minor, &patch); - if (major < 2) - return 1; - return 0; -} - - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - no_shout2=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - - if test "x$no_shout2" = "x" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_SHOUT2="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test -f conf.shout2test ; then - : - else - echo "*** Could not run Shout2 test program, checking why..." - CFLAGS="$CFLAGS $SHOUT2_CFLAGS $OGG_CFLAGS $VORBIS_CFLAGS" - LIBS="$LIBS $SHOUT2_LIBS $OGG_LIBS $VORBIS_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include - -int -main () -{ - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding Shout2 or finding the wrong" - echo "*** version of Shout2. If it is not finding Shout2, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means Shout2 was incorrectly installed" - echo "*** or that you have moved Shout2 since it was installed. In the latter case, you" - echo "*** may want to edit the shout-config script: $SHOUT2_CONFIG" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - SHOUT2_CFLAGS="" - SHOUT2_LIBS="" - : - fi - - - rm -f conf.shout2test - - - - fi LIBS=$gst_check_save_LIBS @@ -34877,7 +34971,7 @@ if test "${enable_soup+set}" = set; then : enableval=$enable_soup; case "${enableval}" in yes) USE_SOUP=yes;; no) USE_SOUP=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-soup" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-soup" "$LINENO" 5 ;; esac else USE_SOUP=yes @@ -35189,7 +35283,7 @@ if test "${enable_speex+set}" = set; then : enableval=$enable_speex; case "${enableval}" in yes) USE_SPEEX=yes;; no) USE_SPEEX=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-speex" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-speex" "$LINENO" 5 ;; esac else USE_SPEEX=yes @@ -35313,7 +35407,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for speex_bits_init in -lspeex" >&5 $as_echo_n "checking for speex_bits_init in -lspeex... " >&6; } -if test "${ac_cv_lib_speex_speex_bits_init+set}" = set; then : +if ${ac_cv_lib_speex_speex_bits_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -35347,7 +35441,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_speex_speex_bits_init" >&5 $as_echo "$ac_cv_lib_speex_speex_bits_init" >&6; } -if test "x$ac_cv_lib_speex_speex_bits_init" = x""yes; then : +if test "x$ac_cv_lib_speex_speex_bits_init" = xyes; then : HAVE_SPEEX=yes else HAVE_SPEEX=no @@ -35355,7 +35449,7 @@ fi if test "x$HAVE_SPEEX" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "speex/speex.h" "ac_cv_header_speex_speex_h" "$ac_includes_default" -if test "x$ac_cv_header_speex_speex_h" = x""yes; then : +if test "x$ac_cv_header_speex_speex_h" = xyes; then : : else HAVE_SPEEX=no @@ -35365,12 +35459,12 @@ fi if test "x$HAVE_SPEEX" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "speex/speex_jitter.h" "ac_cv_header_speex_speex_jitter_h" "$ac_includes_default" -if test "x$ac_cv_header_speex_speex_jitter_h" = x""yes; then : +if test "x$ac_cv_header_speex_speex_jitter_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for speex_encode_int in -lspeex" >&5 $as_echo_n "checking for speex_encode_int in -lspeex... " >&6; } -if test "${ac_cv_lib_speex_speex_encode_int+set}" = set; then : +if ${ac_cv_lib_speex_speex_encode_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -35404,7 +35498,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_speex_speex_encode_int" >&5 $as_echo "$ac_cv_lib_speex_speex_encode_int" >&6; } -if test "x$ac_cv_lib_speex_speex_encode_int" = x""yes; then : +if test "x$ac_cv_lib_speex_speex_encode_int" = xyes; then : HAVE_SPEEX=yes else HAVE_SPEEX=no @@ -35412,7 +35506,7 @@ fi if test "x$HAVE_SPEEX" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "speex/speex.h" "ac_cv_header_speex_speex_h" "$ac_includes_default" -if test "x$ac_cv_header_speex_speex_h" = x""yes; then : +if test "x$ac_cv_header_speex_speex_h" = xyes; then : : else HAVE_SPEEX=no @@ -35446,7 +35540,7 @@ else #include " -if test "x$ac_cv_have_decl_SPEEX_GET_LOOKAHEAD" = x""yes; then : +if test "x$ac_cv_have_decl_SPEEX_GET_LOOKAHEAD" = xyes; then : HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex" @@ -35540,7 +35634,7 @@ if test "${enable_taglib+set}" = set; then : enableval=$enable_taglib; case "${enableval}" in yes) USE_TAGLIB=yes;; no) USE_TAGLIB=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-taglib" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-taglib" "$LINENO" 5 ;; esac else USE_TAGLIB=yes @@ -35781,7 +35875,7 @@ if test "${enable_wavpack+set}" = set; then : enableval=$enable_wavpack; case "${enableval}" in yes) USE_WAVPACK=yes;; no) USE_WAVPACK=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-wavpack" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-wavpack" "$LINENO" 5 ;; esac else USE_WAVPACK=yes @@ -36082,8 +36176,8 @@ fi echo -{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: zlib support for id3demux/qtdemux/matroska ***" >&5 -$as_echo "$as_me: *** checking feature: zlib support for id3demux/qtdemux/matroska ***" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: zlib support for qtdemux/matroska ***" >&5 +$as_echo "$as_me: *** checking feature: zlib support for qtdemux/matroska ***" >&6;} if test "x" != "x" then { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ***" >&5 @@ -36098,7 +36192,7 @@ if test "${enable_zlib+set}" = set; then : enableval=$enable_zlib; case "${enableval}" in yes) USE_ZLIB=yes;; no) USE_ZLIB=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-zlib" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-zlib" "$LINENO" 5 ;; esac else USE_ZLIB=yes @@ -36125,7 +36219,7 @@ if test x$USE_ZLIB = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5 $as_echo_n "checking for uncompress in -lz... " >&6; } -if test "${ac_cv_lib_z_uncompress+set}" = set; then : +if ${ac_cv_lib_z_uncompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36159,7 +36253,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_uncompress" >&5 $as_echo "$ac_cv_lib_z_uncompress" >&6; } -if test "x$ac_cv_lib_z_uncompress" = x""yes; then : +if test "x$ac_cv_lib_z_uncompress" = xyes; then : HAVE_ZLIB=yes else HAVE_ZLIB=no @@ -36167,7 +36261,7 @@ fi if test "x$HAVE_ZLIB" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = x""yes; then : +if test "x$ac_cv_header_zlib_h" = xyes; then : : else HAVE_ZLIB=no @@ -36245,7 +36339,7 @@ if test "${enable_bz2+set}" = set; then : enableval=$enable_bz2; case "${enableval}" in yes) USE_BZ2=yes;; no) USE_BZ2=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-bz2" "$LINENO" 5 ;; + *) as_fn_error $? "bad value ${enableval} for --enable-bz2" "$LINENO" 5 ;; esac else USE_BZ2=yes @@ -36272,7 +36366,7 @@ if test x$USE_BZ2 = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 $as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } -if test "${ac_cv_lib_bz2_BZ2_bzCompress+set}" = set; then : +if ${ac_cv_lib_bz2_BZ2_bzCompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -36306,7 +36400,7 @@ LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 $as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } -if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = x""yes; then : +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = xyes; then : HAVE_BZ2=yes else HAVE_BZ2=no @@ -36314,7 +36408,7 @@ fi if test "x$HAVE_BZ2" = "xyes"; then ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" -if test "x$ac_cv_header_bzlib_h" = x""yes; then : +if test "x$ac_cv_header_bzlib_h" = xyes; then : : else HAVE_BZ2=no @@ -36796,10 +36890,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -36940,10 +37045,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37012,10 +37113,6 @@ if test -z "${USE_GCONFTOOL_TRUE}" && test -z "${USE_GCONFTOOL_FALSE}"; then as_fn_error $? "conditional \"USE_GCONFTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${USE_DIVX_DRM_TRUE}" && test -z "${USE_DIVX_DRM_FALSE}"; then - as_fn_error $? "conditional \"USE_DIVX_DRM\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_PLUGIN_VIDEOFILTER_TRUE}" && test -z "${USE_PLUGIN_VIDEOFILTER_FALSE}"; then as_fn_error $? "conditional \"USE_PLUGIN_VIDEOFILTER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37473,7 +37570,7 @@ if test -z "${USE_ZLIB_TRUE}" && test -z "${USE_ZLIB_FALSE}"; then Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -37574,6 +37671,7 @@ fi IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -37880,8 +37978,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GStreamer Good Plug-ins $as_me 0.10.29, which was -generated by GNU Autoconf 2.67. Invocation command line was +This file was extended by GStreamer Good Plug-ins $as_me 0.10.31, which was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -37946,8 +38044,8 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -GStreamer Good Plug-ins config.status 0.10.29 -configured by $0, generated by GNU Autoconf 2.67, +GStreamer Good Plug-ins config.status 0.10.31 +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -38075,186 +38173,212 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' -predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' -postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' -predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' -postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' -LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' -GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' -predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' -postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' -predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' -postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + # Quote evaled strings. -for var in SED \ +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ GREP \ EGREP \ FGREP \ @@ -38266,8 +38390,12 @@ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ +archiver_list_spec \ STRIP \ RANLIB \ CC \ @@ -38277,14 +38405,14 @@ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -SHELL \ -ECHO \ +nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ lt_prog_compiler_pic \ +lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ +MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ @@ -38298,9 +38426,7 @@ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ -fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ @@ -38308,6 +38434,7 @@ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ +install_override_mode \ finish_eval \ old_striplib \ striplib \ @@ -38318,10 +38445,11 @@ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ +reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ -lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ @@ -38331,9 +38459,7 @@ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ -hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ -fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ @@ -38343,9 +38469,9 @@ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -38367,11 +38493,13 @@ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ +postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ @@ -38380,10 +38508,11 @@ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ -prelink_cmds_CXX; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -38391,12 +38520,6 @@ prelink_cmds_CXX; do esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; -esac - ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' @@ -38560,7 +38683,7 @@ do "pkgconfig/gstreamer-plugins-good-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-plugins-good-uninstalled.pc" ;; "gst-plugins-good.spec") CONFIG_FILES="$CONFIG_FILES gst-plugins-good.spec" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -38583,9 +38706,10 @@ fi # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -38593,12 +38717,13 @@ $debug || { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -38620,7 +38745,7 @@ else ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -38648,7 +38773,7 @@ done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -38696,7 +38821,7 @@ t delim rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -38728,7 +38853,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -38762,7 +38887,7 @@ fi # test -n "$CONFIG_FILES" # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -38774,8 +38899,8 @@ _ACEOF # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -38876,7 +39001,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -38895,7 +39020,7 @@ do for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -38904,7 +39029,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -38930,8 +39055,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -39067,21 +39192,22 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -39092,20 +39218,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. @@ -39267,7 +39393,8 @@ $as_echo X"$file" | # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -39300,13 +39427,13 @@ available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Assembler program. -AS=$AS +AS=$lt_AS # DLL creation program. -DLLTOOL=$DLLTOOL +DLLTOOL=$lt_DLLTOOL # Object dumper program. -OBJDUMP=$OBJDUMP +OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version @@ -39324,6 +39451,15 @@ pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -39373,20 +39509,36 @@ SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method -# Command to use when deplibs_check_method == "file_magic". +# Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + +# Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP @@ -39395,6 +39547,9 @@ RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC @@ -39413,14 +39568,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix -# The name of the directory that contains temporary libtool files. -objdir=$objdir +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO +# The name of the directory that contains temporary libtool files. +objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD @@ -39428,6 +39583,9 @@ MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL @@ -39484,6 +39642,9 @@ library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds @@ -39523,6 +39684,10 @@ striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds @@ -39535,12 +39700,12 @@ with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static @@ -39590,10 +39755,6 @@ no_undefined_flag=$lt_no_undefined_flag # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator @@ -39627,9 +39788,6 @@ inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols @@ -39645,6 +39803,9 @@ include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec @@ -39691,212 +39852,169 @@ ltmain="$ac_aux_dir/ltmain.sh" # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $* )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[^=]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$@"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1+=\$2" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1=\$$1\$2" -} - -_LT_EOF - ;; - esac - - - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -39908,6 +40026,10 @@ _LT_EOF # The linker used to build libraries. LD=$lt_LD_CXX +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX @@ -39920,12 +40042,12 @@ with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX @@ -39975,10 +40097,6 @@ no_undefined_flag=$lt_no_undefined_flag_CXX # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX @@ -40012,9 +40130,6 @@ inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path_CXX - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX @@ -40030,6 +40145,9 @@ include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX diff --git a/configure.ac b/configure.ac index 84fb7e4..13a6745 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file dnl initialize autoconf dnl releases only do -Wall, git and prerelease does -Werror too dnl use a three digit version number for releases, and four for git/pre -AC_INIT(GStreamer Good Plug-ins, 0.10.29, +AC_INIT(GStreamer Good Plug-ins, 0.10.31, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gst-plugins-good) @@ -54,8 +54,8 @@ AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL dnl *** required versions of GStreamer stuff *** -GST_REQ=0.10.33 -GSTPB_REQ=0.10.33 +GST_REQ=0.10.36 +GSTPB_REQ=0.10.36 dnl *** autotools stuff **** @@ -207,7 +207,8 @@ AC_CHECK_TYPE([struct ip_mreqn], [ dnl *** checks for dependency libraries *** dnl GLib is required -AG_GST_GLIB_CHECK([2.20]) +AG_GST_GLIB_CHECK([2.24]) +PKG_CHECK_MODULES(GIO, [ gio-2.0 >= 2.20 ], , AC_MSG_ERROR([gio is required])) dnl Orc ORC_CHECK([0.4.11]) @@ -825,15 +826,6 @@ dnl *** libcaca *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true) AG_GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [ AG_GST_PKG_CHECK_MODULES(LIBCACA, caca) - dnl only newer versions of libcaca ship caca.pc, so try caca-config as well - if test "x$HAVE_LIBCACA" != "xyes"; then - AG_GST_CHECK_CONFIGPROG(LIBCACA, caca-config) - dnl see if it compilation works too, might not if we are cross-compiling - if test "x$HAVE_LIBCACA" = "xyes"; then - AC_CHECK_LIB([caca], [caca_init], [HAVE_LIBCACA=yes], - [HAVE_LIBCACA=no], [$LIBCACA_LIBS]) - fi - fi ]) dnl *** libdv *** @@ -855,31 +847,15 @@ AG_GST_CHECK_FEATURE(PULSE, [pulseaudio plug-in], pulseaudio, [ dnl used in ext/pulse/pulseutil.c AC_CHECK_HEADERS([process.h]) - AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.10) - AG_GST_PKG_CHECK_MODULES(PULSE_0_9_11, libpulse >= 0.9.11) - if test x$HAVE_PULSE_0_9_11 = xyes; then - AC_DEFINE(HAVE_PULSE_0_9_11, 1, [defined if pulseaudio >= 0.9.11 is available]) - fi - AG_GST_PKG_CHECK_MODULES(PULSE_0_9_12, libpulse >= 0.9.12) - if test x$HAVE_PULSE_0_9_12 = xyes; then - AC_DEFINE(HAVE_PULSE_0_9_12, 1, [defined if pulseaudio >= 0.9.12 is available]) - fi - AG_GST_PKG_CHECK_MODULES(PULSE_0_9_13, libpulse >= 0.9.13) - if test x$HAVE_PULSE_0_9_13 = xyes; then - AC_DEFINE(HAVE_PULSE_0_9_13, 1, [defined if pulseaudio >= 0.9.13 is available]) - fi - AG_GST_PKG_CHECK_MODULES(PULSE_0_9_15, libpulse >= 0.9.15) - if test x$HAVE_PULSE_0_9_15 = xyes; then - AC_DEFINE(HAVE_PULSE_0_9_15, 1, [defined if pulseaudio >= 0.9.15 is available]) - fi - AG_GST_PKG_CHECK_MODULES(PULSE_0_9_16, libpulse >= 0.9.16) - if test x$HAVE_PULSE_0_9_16 = xyes; then - AC_DEFINE(HAVE_PULSE_0_9_16, 1, [defined if pulseaudio >= 0.9.16 is available]) - fi + AG_GST_PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.16) AG_GST_PKG_CHECK_MODULES(PULSE_0_9_20, libpulse >= 0.9.20) if test x$HAVE_PULSE_0_9_20 = xyes; then AC_DEFINE(HAVE_PULSE_0_9_20, 1, [defined if pulseaudio >= 0.9.20 is available]) fi + AG_GST_PKG_CHECK_MODULES(PULSE_1_0, libpulse >= 0.98) + if test x$HAVE_PULSE_1_0 = xyes; then + AC_DEFINE(HAVE_PULSE_1_0, 1, [defined if pulseaudio >= 1.0 is available]) + fi ]) dnl *** dv1394 *** @@ -937,12 +913,6 @@ dnl *** shout2 *** translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true) AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ AG_GST_PKG_CHECK_MODULES(SHOUT2, shout >= 2.0) - if test $HAVE_SHOUT2 = no - then - AM_PATH_SHOUT2(HAVE_SHOUT2="yes") - AC_SUBST(SHOUT2_CFLAGS) - AC_SUBST(SHOUT2_LIBS) - fi ]) dnl *** soup *** @@ -1036,9 +1006,9 @@ AG_GST_CHECK_FEATURE(WAVPACK, [wavpack plug-in], wavpack, [ AC_SUBST(WAVPACK_LIBS) ]) -dnl *** qtdemux & id3demux & matroska prefer to have zlib *** +dnl *** qtdemux & matroska prefer to have zlib *** translit(dnm, m, l) AM_CONDITIONAL(USE_ZLIB, true) -AG_GST_CHECK_FEATURE(ZLIB, [zlib support for id3demux/qtdemux/matroska],, [ +AG_GST_CHECK_FEATURE(ZLIB, [zlib support for qtdemux/matroska],, [ AG_GST_CHECK_LIBHEADER(ZLIB, z, uncompress,, zlib.h, [ HAVE_ZLIB="yes" diff --git a/debian/changelog b/debian/changelog index 83e8c80..066f9ad 100755 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,462 @@ +gst-plugins-good0.10 (0.10.31-1slp2+1) unstable; urgency=low + + * Upgrade 0.10.29 to 0.10.31 + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.31-1slp2+1 + + -- Hyunseok Lee Wed, 27 Jun 2012 21:17:50 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+21) unstable; urgency=low + + * Adding unified trickplay of matroska demuxer + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+21 + + -- Naveen Ch Tue, 17 Apr 2012 22:30:17 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+20) unstable; urgency=low + + * enable mutipart to use getUserMedia in webkit + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+20 + + -- Jeongmo Yang Thu, 12 Apr 2012 20:16:17 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+19) unstable; urgency=low + + * Adding unified trickplay of QT & AVI demuxers + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+19 + + -- Naveen Ch Fri, 30 Mar 2012 07:30:08 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+18) unstable; urgency=low + + * Add null check after gst_pad_pull_range in avidemux + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+18 + + -- Sunghyun Eum Wed, 15 Feb 2012 07:09:08 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+17) unstable; urgency=low + + * Modify souphttpsrc plugin : adding Range field to request header at very first time with offset 0 + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+17 + + -- YeJin Cho Tue, 07 Feb 2012 15:46:44 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+16) unstable; urgency=low + + * update debian/control for libjpeg(7to8) + * Git: slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+16 + + -- Seungbae Shin Thu, 12 Jan 2012 13:23:16 +0900 + gst-plugins-good0.10 (0.10.29-18slp2+15) unstable; urgency=low - * Initial Release - * Git: 165.213.180.144:pkgs/g/gst-plugins-good0.10 + * Enable interleave for WebAudio API + * Git: slp/pkgs/g/gst-plugins-good0.10 * Tag: gst-plugins-good0.10_0.10.29-18slp2+15 - -- Sangchul Lee Wed, 07 Dec 2011 12:35:33 +0900 + -- Hyunseok Lee Fri, 16 Dec 2011 18:46:33 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+14) unstable; urgency=low + + * Code cleanup for source open + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+14 + + -- Sangchul Lee Tue, 06 Dec 2011 16:18:21 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+13) unstable; urgency=low + + * Modify scale function for fast forward + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+13 + + -- Sunghyun Eum Fri, 25 Nov 2011 19:11:24 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+12) unstable; urgency=low + + * Update gst_qtdemux_find_index function to latest version. + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+12 + + -- Dowan Kim Mon, 07 Nov 2011 10:30:51 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+11) unstable; urgency=low + + * Check the possiblity of H263 in case of mp4v fourCC and correct it. + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+11 + + -- Hyunseok Lee Wed, 12 Oct 2011 10:31:26 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+10) unstable; urgency=low + + * Add dependancy for bz2 + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+10 + + -- Seungbae Shin Fri, 30 Sep 2011 11:38:17 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+9) unstable; urgency=low + + * Fix divx drm commit fails + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+9 + + -- Seungbae Shin Tue, 06 Sep 2011 21:24:19 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+8) unstable; urgency=low + + * Remove GTK dependancy + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+8 + + -- Seungbae Shin > Tue, 06 Sep 2011 19:36:28 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+7) unstable; urgency=low + + * Increase version (already previous version exists) + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+7 + + -- Seungbae Shin Thu, 25 Aug 2011 13:56:03 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+6) unstable; urgency=low + + * Remove divxsdk depedancy and use libmm-divxsdk plugin + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+6 + + -- Seungbae Shin Thu, 25 Aug 2011 13:25:41 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+5) unstable; urgency=low + + * enable wavenc + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+5 + + -- Jeongmo Yang Wed, 22 Jun 2011 11:52:03 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+4) unstable; urgency=low + + * [avi] merge unmerged divx drm related code + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+4 + + -- Seungbae Shin Fri, 10 Jun 2011 19:27:03 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+3) unstable; urgency=low + + * remove old files + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+3 + + -- Younghwan Ahn Wed, 08 Jun 2011 17:01:37 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+2) unstable; urgency=low + + * update changelog + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+2 + + -- Younghwan Ahn Tue, 07 Jun 2011 20:41:03 +0900 + +gst-plugins-good0.10 (0.10.29-18slp2+1) lucid; urgency=low + + * upgrade 17 to 29 + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.29-18slp2+1 + + -- Younghwan Ahn Thu, 12 May 2011 19:44:48 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+12) unstable; urgency=low + + * [avidemux] Fix to get duration from avih in case of push-mode + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+12 + + -- YeJin Cho Wed, 16 Mar 2011 17:25:51 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+11) unstable; urgency=low + + * [avidemux] Return GST_FLOW_ERROR when avidemux fail to parse stream + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+11 + + -- Seungbae Shin Thu, 10 Mar 2011 14:07:20 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+10) unstable; urgency=low + + * [avidemux] Post error when DivX DRM init fails + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+10 + + -- Seungbae Shin Mon, 07 Mar 2011 19:05:09 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+9) unstable; urgency=low + + * Revert Disable matroska plugin + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+9 + + -- Seungbae Shin Wed, 16 Feb 2011 10:50:15 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+8) unstable; urgency=low + + * Disable matroska plugin + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+8 + + -- Seungbae Shin Wed, 09 Feb 2011 15:25:55 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+7) unstable; urgency=low + + * Support DivX JIT DRM + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+7 + + -- Seungbae Shin Wed, 05 Jan 2011 12:09:11 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+6) unstable; urgency=low + + * Modified AVI demux to solved DIVX issues + * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+6 + + -- Naveen Ch Tue, 07 Dec 2010 13:09:22 +0530 + +gst-plugins-good0.10 (0.10.17-18slp2+5) unstable; urgency=low + + * Skip indexing when dd chunk + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+5 + + -- Seungbae.shin Fri, 03 Dec 2010 16:28:06 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+4) unstable; urgency=low + + * Merge max/avg bitrate from latest qtdemux + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+4 + + -- Seungbae.shin Wed, 01 Dec 2010 16:59:38 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+3) unstable; urgency=low + + * Fix for as-needed + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+3 + + -- Seungbae.shin Wed, 24 Nov 2010 21:04:10 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+2) unstable; urgency=low + + * Add dbg package, PIC, as-needed + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+2 + + -- Seungbae.shin Fri, 19 Nov 2010 10:55:49 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+1) unstable; urgency=low + + * fix h264 rtph264payloader not to check sps/pps info (by yoserb.yi) + * enable mulaw,alaw enc/dec to support VoIP via Farsight (by yoserb.yi) + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+1 + + -- Seungbae.shin Wed, 10 Nov 2010 21:30:23 +0900 + +gst-plugins-good0.10 (0.10.17-18slp2+0) unstable; urgency=low + + * Enable FLV demuxer + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-18slp2+0 + + -- Seungbae Shin Fri, 05 Nov 2010 20:26:27 +0900 + +gst-plugins-good0.10 (0.10.17-17slp2+8) unstable; urgency=low + + * Rollback v4l2src to original src except for setting input index + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+8 + + -- Wonhyung Cho Tue, 21 Sep 2010 20:14:45 +0900 + +gst-plugins-good0.10 (0.10.17-17slp2+7) unstable; urgency=low + + * Repackaging for pulse (basesink updated) + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+7 + + -- Seungbae Shin Wed, 01 Sep 2010 13:41:03 +0900 + +gst-plugins-good0.10 (0.10.17-17slp2+6) unstable; urgency=low + + * Replace libsoup2.4-1 with libsoup2.4 in debian/control + * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-good0.10 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+6 + + -- Seungbae Shin Wed, 25 Aug 2010 11:12:53 +0900 + +gst-plugins-good0.10 (0.10.17-17slp2+5) unstable; urgency=low + + * No change in source code + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+5 + + -- Naveen Ch Thu, 24 Jun 2010 08:48:53 +0530 + +gst-plugins-good0.10 (0.10.17-17slp2+4) unstable; urgency=low + + * Matroska Demux: Added WebM support in matroska demuxer + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+4 + + -- Naveen Ch Thu, 17 Jun 2010 16:45:27 +0530 + +gst-plugins-good0.10 (0.10.17-17slp2+3) unstable; urgency=low + + * Matroska Demux: Added reverse trick play functionality + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+3 + + -- Naveen Ch Wed, 02 Jun 2010 13:01:47 +0530 + +gst-plugins-good0.10 (0.10.17-17slp2+2) unstable; urgency=low + + * AVI Demux: Modified the created mp3 caps to avoid selecting "mp3parse" element + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+2 + + -- Prashanth Kumar D Mon, 17 May 2010 18:21:49 +0530 + +gst-plugins-good0.10 (0.10.17-17slp2+1) unstable; urgency=low + + * AVI Demux: Added "framed" field in the caps for AC3 content to avoid selecting ac3parse + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+1 + + -- Prashanth Kumar D Fri, 30 Apr 2010 18:08:54 +0530 + +gst-plugins-good0.10 (0.10.17-17slp2+0) unstable; urgency=low + + * Add pulseaudio dependancy + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-17slp2+0 + + -- Seungbae Shin Mon, 12 Apr 2010 15:52:54 +0900 + +gst-plugins-good0.10 (0.10.17-16slp+1) unstable; urgency=low + + * enable matroska demuxer/muxer + * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-good-0.10.17 + * Tag: gst-plugins-good0.10_0.10.17-16slp+1 + + -- Heungsoon Rim Fri, 09 Apr 2010 13:32:52 +0900 + +gst-plugins-good0.10 (0.10.17-16slp+0) unstable; urgency=low + + * Change package naming rule + + -- Seungbae Shin Thu, 25 Mar 2010 15:13:04 +0900 + +gst-plugins-good0.10 (0.10.17-16) unstable; urgency=low + + * Add uploader list + + -- Wonhyung Cho Mon, 22 Mar 2010 14:56:25 +0900 + +gst-plugins-good0.10 (0.10.17-15) unstable; urgency=low + + * Because gstbasesrc.h was changed, I build and upload this package again. + + -- Wonhyung Cho Mon, 22 Mar 2010 14:31:02 +0900 + +gst-plugins-good0.10 (0.10.17-14) unstable; urgency=low + + * Remove taglib dependancy + + -- Seungbae Shin Tue, 09 Mar 2010 18:05:52 +0900 + +gst-plugins-good0.10 (0.10.17-13) unstable; urgency=low + + * Added support for generating index table with key frames as an alternate approach to CQ issue H0100083573 + + -- Naveen Ch Mon, 08 Mar 2010 16:58:36 +0530 + +gst-plugins-good0.10 (0.10.17-12) unstable; urgency=low + + * Repacking by kishore + + -- YoungHwan Ahn Wed, 24 Feb 2010 21:13:22 +0900 + +gst-plugins-good0.10 (0.10.17-11) unstable; urgency=low + + * avi audio handling for < 4x by kishore + + -- YoungHwan Ahn Tue, 23 Feb 2010 22:33:34 +0900 + +gst-plugins-good0.10 (0.10.17-10) unstable; urgency=low + + * avi fixes added for trick play + + -- Kishore Arepalli Tue, 23 Feb 2010 12:39:42 +0530 + +gst-plugins-good0.10 (0.10.17-9) unstable; urgency=low + + * Trick play added for avidemux by kishore + + -- younghwan ahn Thu, 18 Feb 2010 13:47:03 +0900 + +gst-plugins-good0.10 (0.10.17-8) unstable; urgency=low + + * Repacking due to the build failed + + -- younghwan ahn Sat, 06 Feb 2010 01:42:14 +0900 + +gst-plugins-good0.10 (0.10.17-7) unstable; urgency=low + + * jump to keyframe removed for trick play.. & modified number of lines reduced for trickplay + + -- younghwan ahn Sat, 06 Feb 2010 01:26:15 +0900 + +gst-plugins-good0.10 (0.10.17-6) unstable; urgency=low + + * trick play implementation + + -- younghwan ahn Wed, 02 Dec 2009 10:35:21 +0900 + +gst-plugins-good0.10 (0.10.17-5) unstable; urgency=low + + * check duplicated timestamp after binary sesearch in qtdemux + + -- jongmin lee Wed, 02 Dec 2009 10:35:21 +0900 + +gst-plugins-good0.10 (0.10.17-4) unstable; urgency=low + + * force revision up + + -- sangho park Mon, 30 Nov 2009 11:07:21 +0900 + +gst-plugins-good0.10 (0.10.17-3) unstable; urgency=low + + * change timeout to 3 sec + + -- sangho park Mon, 30 Nov 2009 10:44:16 +0900 + +gst-plugins-good0.10 (0.10.17-2) unstable; urgency=low + + * resolve dependency break + + -- jongmin lee Tue, 17 Nov 2009 17:56:42 +0900 + +gst-plugins-good0.10 (0.10.17-1) unstable; urgency=low + + * Initial release. + + -- jongmin lee The, 17 Nov 2009 12:50:00 +0900 diff --git a/debian/control b/debian/control index 99a8f47..17b5600 100755 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: gst-plugins-good0.10 Section: libs Priority: optional Maintainer: Shin Seung Bae , JongHyuk Choi -Uploaders: younghwan ahn , Naveen Ch , Wonhyung Cho , Heungsoon Rim , Prashanth Kumar D , Jeongmo Yang +Uploaders: younghwan ahn , Naveen Ch , Hyunseok Lee , Jeongmo Yang Build-Depends: libglib2.0-dev (>= 2.16), liboil0.3-dev (>= 0.3.8), libgstreamer0.10-dev (>= 0.10.25), diff --git a/debian/rules b/debian/rules index 2e9d255..0cd87f0 100755 --- a/debian/rules +++ b/debian/rules @@ -13,54 +13,53 @@ LDFLAGS ?= PREFIX ?= /usr DATADIR ?= /opt -CONFIGURE_OPTION += --disable-static \ ---disable-nls \ ---with-html-dir=/tmp/dump \ ---disable-examples \ ---disable-gconftool \ ---disable-alpha \ ---disable-apetag \ ---disable-audiofx \ ---disable-auparse \ ---disable-cutter \ ---disable-debugutils \ ---disable-deinterlace \ ---disable-effectv \ ---disable-equalizer \ ---disable-icydemux \ ---disable-flx \ ---disable-goom \ ---disable-goom2k1 \ ---disable-level \ ---disable-monoscope \ ---disable-multipart \ ---disable-replaygain \ ---disable-smpte \ ---disable-spectrum \ ---disable-videobox \ ---disable-videomixer \ ---disable-y4m \ ---disable-directsound \ ---disable-oss \ ---disable-sunaudio \ ---disable-osx_aidio \ ---disable-osx_video \ ---disable-aalib \ ---disable-aalibtest \ ---disable-annodex \ ---disable-cairo \ ---disable-esd \ ---disable-esdtest \ ---disable-flac \ ---disable-gconf \ ---disable-hal \ ---disable-libcaca \ ---disable-libdv \ ---disable-dv1394 \ ---disable-shout2 \ ---disable-shout2test \ ---disable-speex \ ---disable-taglib +CONFIGURE_OPTION += --disable-static \ + --disable-nls \ + --with-html-dir=/tmp/dump \ + --disable-examples \ + --disable-gconftool \ + --disable-alpha \ + --disable-apetag \ + --disable-audiofx \ + --disable-auparse \ + --disable-cutter \ + --disable-debugutils \ + --disable-deinterlace \ + --disable-effectv \ + --disable-equalizer \ + --disable-icydemux \ + --disable-flx \ + --disable-goom \ + --disable-goom2k1 \ + --disable-level \ + --disable-monoscope \ + --disable-replaygain \ + --disable-smpte \ + --disable-spectrum \ + --disable-videobox \ + --disable-videomixer \ + --disable-y4m \ + --disable-directsound \ + --disable-oss \ + --disable-sunaudio \ + --disable-osx_aidio \ + --disable-osx_video \ + --disable-aalib \ + --disable-aalibtest \ + --disable-annodex \ + --disable-cairo \ + --disable-esd \ + --disable-esdtest \ + --disable-flac \ + --disable-gconf \ + --disable-hal \ + --disable-libcaca \ + --disable-libdv \ + --disable-dv1394 \ + --disable-shout2 \ + --disable-shout2test \ + --disable-speex \ + --disable-taglib #--disable-wavenc \ #--disable-bz2 \ @@ -85,6 +84,7 @@ CONFIGURE_OPTION += --disable-static \ #--disable-xvideo \ #--disable-videocrop \ +CFLAGS += -DGST_EXT_SOUP_MODIFICATION ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 diff --git a/depcomp b/depcomp index df8eea7..bd0ac08 100755 --- a/depcomp +++ b/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ Environment variables: object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ gcc) ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ tru64) rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/docs/Makefile.in b/docs/Makefile.in index 77339db..71c1d5b 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -65,8 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -80,11 +79,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.entities CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -203,7 +202,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -278,7 +280,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -302,6 +303,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -336,18 +338,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -400,6 +394,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -434,7 +429,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -713,10 +707,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 0219ecc..1fc2e07 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -13,33 +13,13 @@ FORMATS=html html: html-build.stamp include $(top_srcdir)/common/upload-doc.mak -# generated basefiles -#basefiles = \ -## $(DOC_MODULE).types \ -# $(DOC_MODULE)-sections.txt \ -# $(DOC_MODULE)-docs.sgml - -# ugly hack to make -unused.sgml work -#unused-build.stamp: -# BUILDDIR=`pwd` && \ -# cd $(srcdir)/tmpl && \ -# ln -sf gstreamer-libs-unused.sgml \ -# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml -# touch unused-build.stamp - -# these rules are added to create parallel docs using GST_MAJORMINOR -#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs% -# cp $< $@ - -#CLEANFILES = $(basefiles) - # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml -# The directory containing the source code. Relative to $(top_srcdir). +# The directory containing the source code. # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. -DOC_SOURCE_DIR = $(top_srcdir) +DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS= @@ -53,14 +33,11 @@ FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \ --extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html # Used for dependencies. -HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h -CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c $(DOC_SOURCE_DIR)/*/*/*.cc $(DOC_SOURCE_DIR)/*/*/*.m - -# this is a wingo addition -# thomasvs: another nice wingo addition would be an explanation on why -# this is useful ;) - -SCANOBJ_DEPS = +HFILE_GLOB= \ + $(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h +CFILE_GLOB= \ + $(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c \ + $(top_srcdir)/ext/*/*.cc $(top_srcdir)/sys/*/*.m # Header files to ignore when scanning. IGNORE_HFILES = @@ -188,6 +165,7 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/monoscope/gstmonoscope.h \ $(top_srcdir)/gst/multifile/gstmultifilesink.h \ $(top_srcdir)/gst/multifile/gstmultifilesrc.h \ + $(top_srcdir)/gst/multifile/gstsplitfilesrc.h \ $(top_srcdir)/gst/multipart/multipartdemux.h \ $(top_srcdir)/gst/multipart/multipartmux.h \ $(top_srcdir)/gst/isomp4/qtdemux.h \ @@ -260,7 +238,7 @@ extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir) -GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS) +GTKDOC_LIBS = $(GST_BASE_LIBS) GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC) GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC) diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in index 5be0bdb..b13d47a 100644 --- a/docs/plugins/Makefile.in +++ b/docs/plugins/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -83,8 +83,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -98,11 +97,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -182,7 +181,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -257,7 +259,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -281,6 +282,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -315,18 +317,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -379,6 +373,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -413,7 +408,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -450,32 +444,13 @@ DOC_SERVER = gstreamer.freedesktop.org DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc DOC_URL = $(DOC_SERVER):$(DOC_BASE) -# generated basefiles -#basefiles = \ -# $(DOC_MODULE)-sections.txt \ -# $(DOC_MODULE)-docs.sgml - -# ugly hack to make -unused.sgml work -#unused-build.stamp: -# BUILDDIR=`pwd` && \ -# cd $(srcdir)/tmpl && \ -# ln -sf gstreamer-libs-unused.sgml \ -# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml -# touch unused-build.stamp - -# these rules are added to create parallel docs using GST_MAJORMINOR -#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs% -# cp $< $@ - -#CLEANFILES = $(basefiles) - # The top-level SGML file. Change it if you want. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml -# The directory containing the source code. Relative to $(top_srcdir). +# The directory containing the source code. # gtk-doc will search all .c & .h files beneath here for inline comments # documenting functions and macros. -DOC_SOURCE_DIR = $(top_srcdir) +DOC_SOURCE_DIR = $(top_srcdir)/gst $(top_srcdir)/ext $(top_srcdir)/sys # Extra options to supply to gtkdoc-scan. SCAN_OPTIONS = @@ -490,13 +465,13 @@ FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \ # Used for dependencies. -HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.h -CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.c $(DOC_SOURCE_DIR)/*/*/*.cc $(DOC_SOURCE_DIR)/*/*/*.m +HFILE_GLOB = \ + $(top_srcdir)/gst/*/*.h $(top_srcdir)/ext/*/*.h $(top_srcdir)/sys/*/*.h + +CFILE_GLOB = \ + $(top_srcdir)/gst/*/*.c $(top_srcdir)/ext/*/*.c $(top_srcdir)/sys/*/*.c \ + $(top_srcdir)/ext/*/*.cc $(top_srcdir)/sys/*/*.m -# this is a wingo addition -# thomasvs: another nice wingo addition would be an explanation on why -# this is useful ;) -SCANOBJ_DEPS = # Header files to ignore when scanning. IGNORE_HFILES = @@ -623,6 +598,7 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/monoscope/gstmonoscope.h \ $(top_srcdir)/gst/multifile/gstmultifilesink.h \ $(top_srcdir)/gst/multifile/gstmultifilesrc.h \ + $(top_srcdir)/gst/multifile/gstsplitfilesrc.h \ $(top_srcdir)/gst/multipart/multipartdemux.h \ $(top_srcdir)/gst/multipart/multipartmux.h \ $(top_srcdir)/gst/isomp4/qtdemux.h \ @@ -697,7 +673,7 @@ extra_files = # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib # contains GtkObjects/GObjects and you want to document signals and properties. GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir) -GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS) +GTKDOC_LIBS = $(GST_BASE_LIBS) GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) @@ -745,12 +721,12 @@ DOC_STAMPS = \ # files generated/updated by gtkdoc-scangobj SCANOBJ_FILES = \ - $(DOC_MODULE).signals \ + $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).types \ - $(DOC_MODULE).args + $(DOC_MODULE).signals \ + $(DOC_MODULE).types SCANOBJ_FILES_O = \ .libs/$(DOC_MODULE)-scan.o @@ -768,12 +744,8 @@ REPORT_FILES = \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt - -# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck -# no idea why FC4 can do without CLEANFILES = \ $(SCANOBJ_FILES_O) \ - $(DOC_MODULE)-scan.c \ $(REPORT_FILES) \ $(DOC_STAMPS) \ inspect-registry.xml @@ -820,6 +792,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -889,10 +862,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: @@ -1053,32 +1031,34 @@ update: @ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp -# update the element and plugin XML descriptions; store in inspect/ -@ENABLE_GTK_DOC_TRUE@inspect: -@ENABLE_GTK_DOC_TRUE@ @-mkdir -p $(INSPECT_DIR) - #### scan gobjects; done by documentation maintainer #### @ENABLE_GTK_DOC_TRUE@scanobj-update: @ENABLE_GTK_DOC_TRUE@ -rm scanobj-build.stamp @ENABLE_GTK_DOC_TRUE@ $(MAKE) scanobj-build.stamp -# TODO: finish elite script that updates the output files of this step -# instead of rewriting them, so that multiple maintainers can generate -# a collective set of args and signals -@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect -@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning GObjects ***' +# gstdoc-scanobj produces 5 output files (.new) +# scangobj-merge.py merges them into the file which we commit later +# TODO: also merge the hierarchy +@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) +@ENABLE_GTK_DOC_TRUE@ @echo " DOC Introspecting gobjects" @ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ @ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ @ENABLE_GTK_DOC_TRUE@ do \ @ENABLE_GTK_DOC_TRUE@ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ mkdir -p $(INSPECT_DIR); \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options=""; \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options="--verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ @ENABLE_GTK_DOC_TRUE@ $(INSPECT_ENVIRONMENT) \ @ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ @ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)" \ @ENABLE_GTK_DOC_TRUE@ LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ -@ENABLE_GTK_DOC_TRUE@ $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)" \ +@ENABLE_GTK_DOC_TRUE@ $(GST_DOC_SCANOBJ) $$scanobj_options --type-init-func="gst_init(NULL,NULL)" \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ +@ENABLE_GTK_DOC_TRUE@ echo " DOC Merging introspection data" && \ @ENABLE_GTK_DOC_TRUE@ $(PYTHON) \ @ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ @ENABLE_GTK_DOC_TRUE@ if test x"$(srcdir)" != x. ; then \ @@ -1094,91 +1074,102 @@ update: ### scan headers; done on every build ### @ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp -@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***' +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Scanning header files' +@ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ +@ENABLE_GTK_DOC_TRUE@ do \ +@ENABLE_GTK_DOC_TRUE@ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ @_source_dir='' ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \ +@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \ +@ENABLE_GTK_DOC_TRUE@ done ; \ @ENABLE_GTK_DOC_TRUE@ gtkdoc-scan \ @ENABLE_GTK_DOC_TRUE@ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ -@ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ +@ENABLE_GTK_DOC_TRUE@ $${_source_dir} \ @ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)"; \ @ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp #### update templates; done on every build #### -### FIXME: make this error out again when docs are fixed for 0.X # in a non-srcdir build, we need to copy files from the previous step # and the files from previous runs of this step @ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) -@ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***' +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Rebuilding template files' @ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ @ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ @ENABLE_GTK_DOC_TRUE@ do \ @ENABLE_GTK_DOC_TRUE@ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ @ENABLE_GTK_DOC_TRUE@ done; \ @ENABLE_GTK_DOC_TRUE@ fi -@ENABLE_GTK_DOC_TRUE@ gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log -@ENABLE_GTK_DOC_TRUE@ $(PYTHON) \ +@ENABLE_GTK_DOC_TRUE@ @gtkdoc-mktmpl --module=$(DOC_MODULE) +@ENABLE_GTK_DOC_TRUE@ @$(PYTHON) \ @ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl -@ENABLE_GTK_DOC_TRUE@ @rm -f tmpl-build.log -@ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp +@ENABLE_GTK_DOC_TRUE@ @touch tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp @ENABLE_GTK_DOC_TRUE@ @true -#### build xml; done on every build #### +#### xml #### -### FIXME: make this error out again when docs are fixed for 0.9 @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files) -@ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***' +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building XML' @ENABLE_GTK_DOC_TRUE@ @-mkdir -p xml @ENABLE_GTK_DOC_TRUE@ @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \ @ENABLE_GTK_DOC_TRUE@ xsltproc --stringparam module $(MODULE) \ @ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done @ENABLE_GTK_DOC_TRUE@ @for f in $(EXAMPLE_CFILES); do \ @ENABLE_GTK_DOC_TRUE@ $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done -@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb \ +@ENABLE_GTK_DOC_TRUE@ @gtkdoc-mkdb \ @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ @ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ @ENABLE_GTK_DOC_TRUE@ --expand-content-files="$(expand_content_files)" \ @ENABLE_GTK_DOC_TRUE@ --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ --output-format=xml \ @ENABLE_GTK_DOC_TRUE@ --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \ -@ENABLE_GTK_DOC_TRUE@ $(MKDB_OPTIONS) \ -@ENABLE_GTK_DOC_TRUE@ | tee sgml-build.log -@ENABLE_GTK_DOC_TRUE@ @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi -@ENABLE_GTK_DOC_TRUE@ cp ../version.entities xml -@ENABLE_GTK_DOC_TRUE@ rm sgml-build.log -@ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp +@ENABLE_GTK_DOC_TRUE@ $(MKDB_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities xml +@ENABLE_GTK_DOC_TRUE@ @touch sgml-build.stamp @ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp @ENABLE_GTK_DOC_TRUE@ @true -#### build html; done on every step #### +#### html #### @ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) -@ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***' -@ENABLE_GTK_DOC_TRUE@ if test -d html; then rm -rf html; fi -@ENABLE_GTK_DOC_TRUE@ mkdir html -@ENABLE_GTK_DOC_TRUE@ cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building HTML' +@ENABLE_GTK_DOC_TRUE@ @rm -rf html +@ENABLE_GTK_DOC_TRUE@ @mkdir html +@ENABLE_GTK_DOC_TRUE@ @cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html @ENABLE_GTK_DOC_TRUE@ @for f in $(content_files); do cp $(srcdir)/$$f html; done -@ENABLE_GTK_DOC_TRUE@ cp -pr xml html -@ENABLE_GTK_DOC_TRUE@ cp ../version.entities html -@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) -@ENABLE_GTK_DOC_TRUE@ mv html/index.sgml html/index.sgml.bak -@ENABLE_GTK_DOC_TRUE@ $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml -@ENABLE_GTK_DOC_TRUE@ rm -f html/index.sgml.bak -@ENABLE_GTK_DOC_TRUE@ rm -f html/$(DOC_MAIN_SGML_FILE) -@ENABLE_GTK_DOC_TRUE@ rm -rf html/xml -@ENABLE_GTK_DOC_TRUE@ rm -f html/version.entities -@ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ +@ENABLE_GTK_DOC_TRUE@ @cp -pr xml html +@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities html +@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) +@ENABLE_GTK_DOC_TRUE@ @mv html/index.sgml html/index.sgml.bak +@ENABLE_GTK_DOC_TRUE@ @$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml +@ENABLE_GTK_DOC_TRUE@ @rm -f html/index.sgml.bak +@ENABLE_GTK_DOC_TRUE@ @rm -f html/$(DOC_MAIN_SGML_FILE) +@ENABLE_GTK_DOC_TRUE@ @rm -rf html/xml +@ENABLE_GTK_DOC_TRUE@ @rm -f html/version.entities +@ENABLE_GTK_DOC_TRUE@ @test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ @ENABLE_GTK_DOC_TRUE@ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done -@ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' -@ENABLE_GTK_DOC_TRUE@ gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) -@ENABLE_GTK_DOC_TRUE@ touch html-build.stamp +@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Fixing cross-references' +@ENABLE_GTK_DOC_TRUE@ @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ @touch html-build.stamp @ENABLE_GTK_DOC_TRUE@clean-local-gtkdoc: -@ENABLE_GTK_DOC_TRUE@ rm -rf xml tmpl html +@ENABLE_GTK_DOC_TRUE@ @rm -rf xml tmpl html # clean files copied for nonsrcdir templates build -@ENABLE_GTK_DOC_TRUE@ if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ @ENABLE_GTK_DOC_TRUE@ rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \ @ENABLE_GTK_DOC_TRUE@ $(MAINTAINER_DOC_STAMPS); \ @ENABLE_GTK_DOC_TRUE@ fi @@ -1186,16 +1177,16 @@ update: @ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc: clean-local: clean-local-gtkdoc - rm -f *~ *.bak - rm -rf .libs + @rm -f *~ *.bak + @rm -rf .libs distclean-local: - rm -f $(REPORT_FILES) \ + @rm -f $(REPORT_FILES) \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - rm -rf tmpl/*.sgml.bak - rm -f $(DOC_MODULE).hierarchy - rm -f *.stamp || true - if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + @rm -rf tmpl/*.sgml.bak + @rm -f $(DOC_MODULE).hierarchy + @rm -f *.stamp || true + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(DOC_MODULE)-docs.sgml ; \ rm -f $(DOC_MODULE).types ; \ rm -f $(DOC_MODULE).interfaces ; \ @@ -1205,7 +1196,7 @@ distclean-local: rm -rf tmpl/*.sgml ; \ rm -rf $(INSPECT_DIR); \ fi - rm -rf *.o + @rm -rf *.o # thomas: make docs parallel installable; devhelp requires majorminor too install-data-local: @@ -1225,9 +1216,7 @@ install-data-local: $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ done; \ fi; \ - echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ - $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ - $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \ if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml index 8b198ac..9f65e21 100644 --- a/docs/plugins/gst-plugins-good-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml @@ -160,6 +160,7 @@ + diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt index f3b4cd3..0f03971 100644 --- a/docs/plugins/gst-plugins-good-plugins-sections.txt +++ b/docs/plugins/gst-plugins-good-plugins-sections.txt @@ -1401,9 +1401,9 @@ gst_multi_file_src_get_type element-multifilesink multifilesink GstMultiFileSink +GstMultiFileSinkNext GstMultiFileSinkClass -GstMultiFileSinkNext GST_MULTI_FILE_SINK GST_MULTI_FILE_SINK_CLASS GST_IS_MULTI_FILE_SINK @@ -1982,6 +1982,20 @@ gst_speex_enc_get_type
+element-splitfilesrc +splitfilesrc +GstSplitFileSrc + +GstSplitFileSrcClass +GST_SPLIT_FILE_SRC +GST_SPLIT_FILE_SRC_CLASS +GST_IS_SPLIT_FILE_SRC +GST_IS_SPLIT_FILE_SRC_CLASS +GST_TYPE_SPLIT_FILE_SRC +gst_split_file_src_get_type +
+ +
element-taginject taginject GstTagInject diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args index acbd788..625e93e 100644 --- a/docs/plugins/gst-plugins-good-plugins.args +++ b/docs/plugins/gst-plugins-good-plugins.args @@ -179,6 +179,26 @@ +GstMultiFileSink::max-files +guint + +rw +Max files +Maximum number of files to keep on disk. Once the maximum is reached,old files start to be deleted to make room for new ones. +0 + + + +GstMultiFileSink::max-file-size +guint64 + +rw +Maximum File Size +Maximum file size before starting a new file in max-size mode. +2147483648 + + + GstMultiFileSrc::caps GstCaps* @@ -209,6 +229,36 @@ +GstMultiFileSrc::loop +gboolean + +rw +Loop +Whether to repeat from the beginning when all files have been read. +FALSE + + + +GstMultiFileSrc::start-index +gint +>= 0 +rw +Start Index +Start value of index. The initial value of index can be set either by setting index or start-index. When the end of the loop is reached, the index will be set to the value start-index. +0 + + + +GstMultiFileSrc::stop-index +gint +>= G_MAXULONG +rw +Start Index +Stop value of index. The special value -1 means no stop. +0 + + + GstOssSrc::device gchar* @@ -779,6 +829,16 @@ +GstRTSPSrc::short-header +gboolean + +rw +Short Header +Only send the basic RTSP headers for broken encoders. +FALSE + + + GstRTPDec::skip gint @@ -1512,7 +1572,7 @@ GstSpeexEnc::abr gint >= 0 -rw +rwx ABR Enable average bit-rate (0 = disabled). 0 @@ -1522,7 +1582,7 @@ GstSpeexEnc::bitrate gint >= 0 -rw +rwx Encoding Bit-rate Specify an encoding bit-rate (in bps). (0 = automatic). 0 @@ -1532,7 +1592,7 @@ GstSpeexEnc::complexity gint >= 0 -rw +rwx Complexity Set encoding complexity. 3 @@ -1542,7 +1602,7 @@ GstSpeexEnc::dtx gboolean -rw +rwx DTX Enable discontinuous transmission. FALSE @@ -1562,7 +1622,7 @@ GstSpeexEnc::nframes gint >= 0 -rw +rwx NFrames Number of frames per buffer. 1 @@ -1572,7 +1632,7 @@ GstSpeexEnc::quality gfloat [0,10] -rw +rwx Quality Encoding quality. 8 @@ -1582,7 +1642,7 @@ GstSpeexEnc::vad gboolean -rw +rwx VAD Enable voice activity detection. FALSE @@ -1592,7 +1652,7 @@ GstSpeexEnc::vbr gboolean -rw +rwx VBR Enable variable bit-rate. FALSE @@ -1602,7 +1662,7 @@ GstSpeexEnc::mode GstSpeexEncMode -rw +rwx Mode The encoding mode. Auto @@ -2224,7 +2284,7 @@ rw Send Config -Send the config parameters in RTP packets as well. +Send the config parameters in RTP packets as well(deprecated see config-interval). FALSE @@ -2359,6 +2419,16 @@ +GstCairoTextOverlay::silent +gboolean + +w +silent +Whether to render the text string. +FALSE + + + GstOssMixerElement::device-name gchar* @@ -2424,7 +2494,7 @@ r Bytes served -Total number of bytes send to all clients. +Total number of bytes sent to all clients. 0 @@ -2729,6 +2799,26 @@ +GstXImageSrc::xid +guint64 + +rw +Window XID +Window XID to capture from. +0 + + + +GstXImageSrc::xname +gchar* + +rw +Window name +Window name to capture from. +NULL + + + GstVideoBalance::brightness gdouble [-1,1] @@ -2789,6 +2879,16 @@ +GstMultipartDemux::single-stream +gboolean + +rw +Single Stream +Assume that there is only one stream whose content-type will not change and emit no-more-pads as soon as the first boundary content is parsed, decoded, and pads are linked. +FALSE + + + GstAviMux::bigfile gboolean @@ -3179,6 +3279,16 @@ +GstV4l2Src::norm +V4L2_TV_norms + +rw +TV norm +video standard. +none + + + GstAudioChebBand::lower-frequency gfloat [0,100000] @@ -19835,7 +19945,7 @@ rw Client The PulseAudio client name to use. -"" +"lt-gst-plugins-good-plugins-scan" @@ -19895,7 +20005,37 @@ rw Client The PulseAudio client_name_to_use. -"" +"lt-gst-plugins-good-plugins-scan" + + + +GstPulseSrc::mute +gboolean + +rw +Mute +Mute state of this stream. +FALSE + + + +GstPulseSrc::source-output-index +guint + +r +source output index +The index of the PulseAudio source output corresponding to this record stream. +4294967295 + + + +GstPulseSrc::volume +gdouble +[0,10] +rw +Volume +Linear volume of this stream, 1.0=100%. +1 @@ -20399,6 +20539,36 @@ +GstDeinterlace::drop-orphans +gboolean + +rw +drop-orphans +Drop orphan fields at the beginning of telecine patterns in active locking mode. +TRUE + + + +GstDeinterlace::ignore-obscure +gboolean + +rw +ignore-obscure +Ignore obscure telecine patterns (only consider P, I and 2:3 variants). +TRUE + + + +GstDeinterlace::locking +GstDeinterlaceLocking + +rw +locking +Pattern locking mode. +No pattern locking + + + GstAgingTV::color-aging gboolean @@ -20619,6 +20789,26 @@ +GstRtpBin::rtcp-sync +GstRTCPSync + +rw +RTCP Sync +Use of RTCP SR in synchronization. +always + + + +GstRtpBin::rtcp-sync-interval +guint + +rw +RTCP Sync Interval +RTCP SR interval synchronization (ms) (0 = always). +0 + + + GstRtpJitterBuffer::do-lost gboolean @@ -20801,7 +20991,7 @@ GstV4l2Sink::device-fd gint ->= G_MAXULONG +>= -1 r File descriptor File descriptor of the device. @@ -21189,6 +21379,16 @@ +GstJackAudioSrc::client-name +gchar* + +rw +Client name +The client name of the Jack instance (NULL = default). +NULL + + + GstJackAudioSink::client JackClient* @@ -21219,6 +21419,16 @@ +GstJackAudioSink::client-name +gchar* + +rw +Client name +The client name of the Jack instance (NULL = default). +NULL + + + GstFlacParse::check-frame-checksums gboolean @@ -21828,3 +22038,383 @@ 0 + +GstSplitFileSrc::location +gchar* + +rw +File Location +Wildcard pattern to match file names of the input files. If the location is an absolute path or contains directory components, only the base file name part will be considered for pattern matching. The results will be sorted. +NULL + + + +GstMatroskaDemux::max-gap-time +guint64 + +rw +Maximum gap time +The demuxer sends out newsegment events for skipping gaps longer than this (0 = disabled). +2000000000 + + + +GstPulseAudioSink::alignment-threshold +guint64 +[1,18446744073709551614] +rw +Alignment Threshold +Timestamp alignment threshold in nanoseconds. +40000000 + + + +GstPulseAudioSink::async +gboolean + +rw +Async +Go asynchronously to PAUSED. +TRUE + + + +GstPulseAudioSink::blocksize +guint + +rw +Block size +Size in bytes to pull per buffer (0 = default). +4096 + + + +GstPulseAudioSink::buffer-time +gint64 +>= 1 +rw +Buffer Time +Size of audio buffer in microseconds. +200000 + + + +GstPulseAudioSink::can-activate-pull +gboolean + +rw +Allow Pull Scheduling +Allow pull-based scheduling. +FALSE + + + +GstPulseAudioSink::client +gchar* + +rw +Client +The PulseAudio client name to use. +"lt-gst-plugins-good-plugins-scan" + + + +GstPulseAudioSink::device +gchar* + +rw +Device +The PulseAudio sink device to connect to. +NULL + + + +GstPulseAudioSink::device-name +gchar* + +r +Device name +Human-readable name of the sound device. +NULL + + + +GstPulseAudioSink::discont-wait +guint64 +<= 18446744073709551614 +rw +Discont Wait +Window of time in nanoseconds to wait before creating a discontinuity. +1000000000 + + + +GstPulseAudioSink::drift-tolerance +gint64 +>= 1 +rw +Drift Tolerance +Tolerance for clock drift in microseconds. +40000 + + + +GstPulseAudioSink::enable-last-buffer +gboolean + +rw +Enable Last Buffer +Enable the last-buffer property. +TRUE + + + +GstPulseAudioSink::last-buffer +GstBuffer* + +r +Last Buffer +The last buffer received in the sink. + + + + +GstPulseAudioSink::latency-time +gint64 +>= 1 +rw +Latency Time +Audio latency in microseconds. +10000 + + + +GstPulseAudioSink::max-lateness +gint64 +>= G_MAXULONG +rw +Max Lateness +Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited). +-1 + + + +GstPulseAudioSink::mute +gboolean + +rw +Mute +Mute state of this stream. +FALSE + + + +GstPulseAudioSink::preroll-queue-len +guint + +rwx +Preroll queue length +Number of buffers to queue during preroll. +0 + + + +GstPulseAudioSink::provide-clock +gboolean + +rw +Provide Clock +Provide a clock to be used as the global pipeline clock. +TRUE + + + +GstPulseAudioSink::qos +gboolean + +rw +Qos +Generate Quality-of-Service events upstream. +FALSE + + + +GstPulseAudioSink::render-delay +guint64 + +rw +Render Delay +Additional render delay of the sink in nanoseconds. +0 + + + +GstPulseAudioSink::server +gchar* + +rw +Server +The PulseAudio server to connect to. +NULL + + + +GstPulseAudioSink::slave-method +GstBaseAudioSinkSlaveMethod + +rw +Slave Method +Algorithm to use to match the rate of the masterclock. +GST_BASE_AUDIO_SINK_SLAVE_SKEW + + + +GstPulseAudioSink::stream-properties +GstStructure* + +rw +stream properties +list of pulseaudio stream properties. + + + + +GstPulseAudioSink::sync +gboolean + +rw +Sync +Sync on the clock. +TRUE + + + +GstPulseAudioSink::throttle-time +guint64 + +rw +Throttle time +The time to keep between rendered buffers (unused). +0 + + + +GstPulseAudioSink::ts-offset +gint64 + +rw +TS Offset +Timestamp offset in nanoseconds. +0 + + + +GstPulseAudioSink::volume +gdouble +[0,10] +rw +Volume +Linear volume of this stream, 1.0=100%. +1 + + + +GstSoupHttpClientSink::automatic-redirect +gboolean + +rw +automatic-redirect +Automatically follow HTTP redirects (HTTP Status Code 3xx). +TRUE + + + +GstSoupHttpClientSink::cookies +GStrv + +rw +Cookies +HTTP request cookies. + + + + +GstSoupHttpClientSink::location +gchar* + +rw +Location +URI to send to. +"" + + + +GstSoupHttpClientSink::proxy +gchar* + +rw +Proxy +HTTP proxy server URI. +"" + + + +GstSoupHttpClientSink::proxy-id +gchar* + +rw +proxy-id +user id for proxy authentication. +"" + + + +GstSoupHttpClientSink::proxy-pw +gchar* + +rw +proxy-pw +user password for proxy authentication. +"" + + + +GstSoupHttpClientSink::session +SoupSession* + +rw +session +SoupSession object to use for communication. + + + + +GstSoupHttpClientSink::user-agent +gchar* + +rw +User-Agent +Value of the User-Agent HTTP request header field. +"GStreamer souphttpclientsink " + + + +GstSoupHttpClientSink::user-id +gchar* + +rw +user-id +user id for authentication. +"" + + + +GstSoupHttpClientSink::user-pw +gchar* + +rw +user-pw +user password for authentication. +"" + + diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy index 9170415..3288bab 100644 --- a/docs/plugins/gst-plugins-good-plugins.hierarchy +++ b/docs/plugins/gst-plugins-good-plugins.hierarchy @@ -1,317 +1,323 @@ GObject + GdkPixbuf + GstCmmlTagClip + GstCmmlTagHead + GstCmmlTagStream + GstColorBalanceChannel + GstMixerTrack + GstMixerOptions GstObject - GstPad - GstVideoMixer2Pad - GstVideoMixerPad - GstInterleavePad - GstPadTemplate - GstPluginFeature - GstElementFactory - GstTypeFindFactory - GstIndexFactory + GstBus + GstClock + GstSystemClock + GstAudioClock GstElement - GstBin - GstPipeline - GstQTMoovRecover - GstSwitchSink - GstGConfVideoSink - GstGConfAudioSink - GstSwitchSrc - GstGConfVideoSrc - GstGConfAudioSrc - GstHalAudioSink - GstHalAudioSrc - GstRtpBin - GstAutoVideoSink - GstAutoVideoSrc - GstAutoAudioSink - GstAutoAudioSrc - GstPushFileSrc - GstRTSPSrc - GstRgVolume - GstAspectRatioCrop - GstCmmlEnc - GstCmmlDec - GstBaseSink - GstAASink - GstBaseAudioSink - GstPulseSink - GstJackAudioSink - GstAudioSink - GstEsdSink - GstOssSink - GstOss4Sink - GstCACASink - GstVideoSink - GstGdkPixbufSink - GstShout2send - GstTest - GstMultiFileSink - GstMultiUDPSink - GstUDPSink - GstDynUDPSink - GstBaseSrc - GstPushSrc - GstDV1394Src - GstHDV1394Src - GstSoupHTTPSrc - GstBaseAudioSrc - GstAudioSrc - GstPulseSrc - GstOssSrc - GstOss4Source - GstJackAudioSrc - GstV4l2Src - GstXImageSrc - GstMultiFileSrc - GstUDPSrc - GstWavpackParse - GstWavpackDec - GstWavpackEnc - GstDVDemux - GstDVDec - GstTagLibMux - GstId3v2Mux - GstApev2Mux - GstFlacEnc - GstFlacDec - GstFlacTag - GstCairoTextOverlay - GstBaseTransform - GstCairoTimeOverlay - GstVideoFilter - GstCairoOverlay - GstEdgeTV - GstAgingTV - GstDiceTV - GstWarpTV - GstShagadelicTV - GstVertigoTV - GstRevTV - GstQuarkTV - GstOpTV - GstRadioacTV - GstStreakTV - GstRippleTV - GstNavigationtest - GstGamma - GstVideoBalance - GstVideoFlip - GstSMPTEAlpha - GstAlpha - GstAlphaColor - GstPixbufScale - GstVideoBox - GstBreakMyData - GstCapsSetter - GstNavSeek - GstProgressReport - GstTagInject - GstCpuReport - GstLevel - GstAudioFilter - GstIirEqualizer - GstIirEqualizerNBands - GstIirEqualizer3Bands - GstIirEqualizer10Bands - GstSpectrum - GstAudioInvert - GstAudioKaraoke - GstAudioAmplify - GstAudioDynamic - GstAudioFXBaseIIRFilter - GstAudioChebLimit - GstAudioChebBand - GstAudioIIRFilter - GstAudioFXBaseFIRFilter - GstAudioWSincLimit - GstAudioWSincBand - GstAudioFIRFilter - GstAudioEcho - GstRgAnalysis - GstRgLimiter - GstVideoCrop - GstAudioPanorama - GstCairoRender - GstPulseMixer - GstSpeexEnc - GstSpeexDec - GstJpegEnc - GstJpegDec - GstSmokeEnc - GstSmokeDec - GstPngDec - GstPngEnc - GstGdkPixbuf - GstOssMixerElement - GstV4l2Radio - GstOss4Mixer - GstShapeWipe + Gst3GPPMux + GstALawDec + GstALawEnc + GstAsteriskh263 + GstAuParse + GstAudioDecoder + GstSpeexDec + GstAudioEncoder + GstFlacEnc + GstSpeexEnc GstAviDemux GstAviMux GstAviSubtitle - GstRTPDepay + GstBaseParse + GstAacParse + GstAc3Parse + GstAmrParse + GstDcaParse + GstFlacParse + GstMpegAudioParse GstBaseRTPDepayload - GstRtpAC3Depay GstRTPBVDepay - GstRtpCELTDepay GstRTPDVDepay - GstRtpGSTDepay + GstRTPGSMDepay + GstRTPSirenDepay GstRTPiLBCDepay + GstRtpAC3Depay + GstRtpAMRDepay + GstRtpCELTDepay GstRtpG722Depay GstRtpG723Depay GstRtpG726Depay GstRtpG729Depay - GstRTPGSMDepay - GstRtpAMRDepay - GstRtpPcmaDepay - GstRtpPcmuDepay - GstRtpMPADepay - GstRtpMPARobustDepay - GstRtpMPVDepay - GstRtpH263PDepay + GstRtpGSTDepay GstRtpH263Depay + GstRtpH263PDepay GstRtpH264Depay GstRtpJ2KDepay GstRtpJPEGDepay GstRtpL16Depay GstRtpMP1SDepay GstRtpMP2TDepay - GstRtpMP4VDepay GstRtpMP4ADepay GstRtpMP4GDepay + GstRtpMP4VDepay + GstRtpMPADepay + GstRtpMPARobustDepay + GstRtpMPVDepay + GstRtpPcmaDepay + GstRtpPcmuDepay GstRtpQCELPDepay GstRtpQDM2Depay - GstRTPSirenDepay GstRtpSPEEXDepay GstRtpSV3VDepay GstRtpTheoraDepay - GstRtpVorbisDepay GstRtpVRawDepay + GstRtpVorbisDepay GstRtpXQTDepay GstBaseRTPPayload - GstRtpAC3Pay GstBaseRTPAudioPayload GstRTPBVPay GstRTPILBCPay + GstRTPSirenPay GstRtpG722Pay GstRtpG726Pay - GstRtpPcmuPay - GstRtpPcmaPay GstRtpL16Pay - GstRTPSirenPay - GstRtpCELTPay + GstRtpPcmaPay + GstRtpPcmuPay GstRTPDVPay - GstRtpGSTPay GstRTPG723Pay GstRTPG729Pay GstRTPGSMPay - GstRtpAMRPay - GstRtpMPAPay + GstRTPMP2TPay GstRTPMPVPay + GstRtpAC3Pay + GstRtpAMRPay + GstRtpCELTPay + GstRtpGSTPay GstRtpH263PPay GstRtpH263Pay GstRtpH264Pay GstRtpJ2KPay GstRtpJPEGPay - GstRTPMP2TPay - GstRtpMP4VPay GstRtpMP4APay GstRtpMP4GPay + GstRtpMP4VPay + GstRtpMPAPay GstRtpSPEEXPay GstRtpTheoraPay - GstRtpVorbisPay GstRtpVRawPay - GstAsteriskh263 - GstGoom - GstGoom2k1 - GstWavEnc - GstRtpJitterBuffer - GstRtpPtDemux - GstRtpSession - GstRtpSsrcDemux - GstRndBufferSize + GstRtpVorbisPay + GstBaseSink + GstAASink + GstBaseAudioSink + GstAudioSink + GstEsdSink + GstOss4Sink + GstOssSink + GstJackAudioSink + GstPulseSink + GstCACASink + GstDynUDPSink + GstMultiFileSink + GstMultiUDPSink + GstUDPSink + GstShout2send + GstSoupHttpClientSink + GstTest + GstVideoSink + GstGdkPixbufSink + GstBaseSrc + GstPushSrc + GstBaseAudioSrc + GstAudioSrc + GstOss4Source + GstOssSrc + GstPulseSrc + GstJackAudioSrc + GstDV1394Src + GstHDV1394Src + GstMultiFileSrc + GstSoupHTTPSrc + GstUDPSrc + GstV4l2Src + GstXImageSrc + GstSplitFileSrc + GstBaseTransform + GstAudioFilter + GstAudioAmplify + GstAudioDynamic + GstAudioEcho + GstAudioFXBaseFIRFilter + GstAudioFIRFilter + GstAudioWSincBand + GstAudioWSincLimit + GstAudioFXBaseIIRFilter + GstAudioChebBand + GstAudioChebLimit + GstAudioIIRFilter + GstAudioInvert + GstAudioKaraoke + GstIirEqualizer + GstIirEqualizer10Bands + GstIirEqualizer3Bands + GstIirEqualizerNBands + GstSpectrum + GstAudioPanorama + GstBreakMyData + GstCairoTimeOverlay + GstCapsSetter + GstCpuReport + GstLevel + GstNavSeek + GstPixbufScale + GstProgressReport + GstRgAnalysis + GstRgLimiter + GstTagInject + GstVideoBox + GstVideoCrop + GstVideoFilter + GstAgingTV + GstAlpha + GstAlphaColor + GstCairoOverlay + GstDiceTV + GstEdgeTV + GstGamma + GstNavigationtest + GstOpTV + GstQuarkTV + GstRadioacTV + GstRevTV + GstRippleTV + GstSMPTEAlpha + GstShagadelicTV + GstStreakTV + GstVertigoTV + GstVideoBalance + GstVideoFlip + GstWarpTV + GstBin + GstAspectRatioCrop + GstAutoAudioSink + GstAutoAudioSrc + GstAutoVideoSink + GstAutoVideoSrc + GstHalAudioSink + GstHalAudioSrc + GstPipeline + GstQTMoovRecover + GstPulseAudioSink + GstPushFileSrc + GstRTSPSrc + GstRgVolume + GstRtpBin + GstSwitchSink + GstGConfAudioSink + GstGConfVideoSink + GstSwitchSrc + GstGConfAudioSrc + GstGConfVideoSrc + GstCairoRender + GstCairoTextOverlay GstCapsDebug - GstEFence + GstCmmlDec + GstCmmlEnc GstCutter + GstDVDec + GstDVDemux + GstDeinterlace + GstDeinterleave + GstEFence + GstFlacDec + GstFlacTag + GstFlvDemux + GstFlvMux + GstFlxDec + GstGPPMux + GstGdkPixbuf + GstGoom + GstGoom2k1 + GstICYDemux + GstISMLMux + GstImageFreeze + GstInterleave + GstJpegDec + GstJpegEnc + GstMJ2Mux + GstMP4Mux GstMatroskaDemux - GstMatroskaParse GstMatroskaMux GstWebMMux - GstRTPDec - GstSMPTE - GstAuParse + GstMatroskaParse + GstMuLawDec + GstMuLawEnc GstMultipartDemux GstMultipartMux - GstALawEnc - GstALawDec - GstMuLawEnc - GstMuLawDec + GstOss4Mixer + GstOssMixerElement + GstPngDec + GstPngEnc + GstPulseMixer + GstQTDemux + GstQTMux + GstRTPDec + GstRTPDepay + GstRndBufferSize + GstRtpJitterBuffer + GstRtpPtDemux + GstRtpSession + GstRtpSsrcDemux + GstSMPTE + GstShapeWipe + GstSmokeDec + GstSmokeEnc GstTagDemux GstApeDemux GstID3Demux - GstFlxDec - GstDeinterlace - GstImageFreeze - GstBaseParse - GstAacParse - GstAmrParse - GstAc3Parse - GstDcaParse - GstFlacParse - GstMpegAudioParse - GstY4mEncode - GstInterleave - GstDeinterleave - GstWavParse - GstFlvDemux - GstFlvMux - GstQTDemux - GstQTMux - GstMP4Mux - GstISMLMux - Gst3GPPMux - GstGPPMux - GstMJ2Mux - GstICYDemux + GstTagLibMux + GstApev2Mux + GstId3v2Mux + GstV4l2Radio GstVideoMixer GstVideoMixer2 - GstBus - GstTask - GstTaskPool - GstClock - GstSystemClock - GstAudioClock + GstWavEnc + GstWavParse + GstWavpackDec + GstWavpackEnc + GstWavpackParse + GstY4mEncode + GstPad + GstInterleavePad + GstVideoMixer2Pad + GstVideoMixerPad + GstPadTemplate GstPlugin + GstPluginFeature + GstElementFactory + GstIndexFactory + GstTypeFindFactory GstRegistry GstRingBuffer - GstAudioSrcRingBuffer GstAudioSinkRingBuffer - GstJackAudioSrcRingBuffer + GstAudioSrcRingBuffer GstJackAudioSinkRingBuffer + GstJackAudioSrcRingBuffer + GstTask + GstTaskPool GstSignalObject - GstCmmlTagStream - GstCmmlTagHead - GstCmmlTagClip - GstColorBalanceChannel - RTPSession - GstMixerTrack - GstMixerOptions - GstTunerNorm GstTunerChannel - GdkPixbuf + GstTunerNorm + RTPSession + SoupSession GInterface + GIcon GTypePlugin GstChildProxy - GstURIHandler - GstPropertyProbe - GstPreset - GstTagSetter - GstStreamVolume + GstColorBalance GstImplementsInterface GstMixer + GstPreset + GstPropertyProbe + GstStreamVolume + GstTagSetter + GstTagXmpWriter GstTuner - GstColorBalance + GstURIHandler GstVideoOrientation - GstTagXmpWriter - GIcon diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces index 8cb7022..b356c99 100644 --- a/docs/plugins/gst-plugins-good-plugins.interfaces +++ b/docs/plugins/gst-plugins-good-plugins.interfaces @@ -1,62 +1,68 @@ +GdkPixbuf GIcon +Gst3GPPMux GstTagSetter GstTagXmpWriter +GstApev2Mux GstTagSetter +GstAspectRatioCrop GstChildProxy +GstAudioEncoder GstPreset +GstAutoAudioSink GstChildProxy +GstAutoAudioSrc GstChildProxy +GstAutoVideoSink GstChildProxy +GstAutoVideoSrc GstChildProxy +GstAviMux GstTagSetter GstBin GstChildProxy -GstPipeline GstChildProxy -GstQTMoovRecover GstChildProxy -GstSwitchSink GstChildProxy -GstGConfVideoSink GstChildProxy +GstDV1394Src GstURIHandler GstPropertyProbe +GstDeinterlace GstChildProxy +GstFlacEnc GstPreset GstTagSetter +GstFlacEnc GstTagSetter GstPreset +GstFlacTag GstTagSetter +GstFlvMux GstTagSetter GstGConfAudioSink GstChildProxy -GstSwitchSrc GstChildProxy -GstGConfVideoSrc GstChildProxy GstGConfAudioSrc GstChildProxy +GstGConfVideoSink GstChildProxy +GstGConfVideoSrc GstChildProxy +GstGPPMux GstTagSetter GstTagXmpWriter +GstHDV1394Src GstURIHandler GstPropertyProbe GstHalAudioSink GstChildProxy GstHalAudioSrc GstChildProxy -GstRtpBin GstChildProxy -GstAutoVideoSink GstChildProxy -GstAutoVideoSrc GstChildProxy -GstAutoAudioSink GstChildProxy -GstAutoAudioSrc GstChildProxy +GstISMLMux GstTagSetter GstTagXmpWriter +GstId3v2Mux GstTagSetter +GstIirEqualizer GstChildProxy +GstIirEqualizer10Bands GstChildProxy GstPreset +GstIirEqualizer3Bands GstChildProxy GstPreset +GstIirEqualizerNBands GstChildProxy +GstMJ2Mux GstTagSetter GstTagXmpWriter +GstMP4Mux GstTagSetter GstTagXmpWriter +GstMatroskaMux GstTagSetter +GstOss4Mixer GstImplementsInterface GstMixer GstPropertyProbe +GstOss4Sink GstStreamVolume GstPropertyProbe +GstOss4Source GstImplementsInterface GstMixer GstPropertyProbe +GstOssMixerElement GstImplementsInterface GstMixer +GstOssSrc GstImplementsInterface GstMixer +GstPipeline GstChildProxy +GstPulseAudioSink GstChildProxy +GstPulseMixer GstImplementsInterface GstMixer GstPropertyProbe +GstPulseSink GstStreamVolume GstImplementsInterface GstPropertyProbe +GstPulseSrc GstImplementsInterface GstMixer GstPropertyProbe +GstPulseSrc GstStreamVolume GstImplementsInterface GstMixer GstPropertyProbe GstPushFileSrc GstChildProxy GstURIHandler +GstQTMoovRecover GstChildProxy +GstQTMux GstTagSetter GstTagXmpWriter GstRTSPSrc GstChildProxy GstURIHandler GstRgVolume GstChildProxy -GstAspectRatioCrop GstChildProxy -GstPulseSink GstStreamVolume GstImplementsInterface GstPropertyProbe -GstOss4Sink GstStreamVolume GstPropertyProbe +GstRtpBin GstChildProxy GstShout2send GstTagSetter -GstUDPSink GstURIHandler -GstDV1394Src GstURIHandler GstPropertyProbe -GstHDV1394Src GstURIHandler GstPropertyProbe GstSoupHTTPSrc GstURIHandler -GstPulseSrc GstImplementsInterface GstMixer GstPropertyProbe -GstOssSrc GstImplementsInterface GstMixer -GstOss4Source GstImplementsInterface GstMixer GstPropertyProbe -GstV4l2Src GstURIHandler GstImplementsInterface GstTuner GstColorBalance GstVideoOrientation GstPropertyProbe -GstUDPSrc GstURIHandler -GstWavpackEnc GstPreset -GstTagLibMux GstTagSetter -GstId3v2Mux GstTagSetter -GstApev2Mux GstTagSetter -GstFlacEnc GstTagSetter GstPreset -GstFlacTag GstTagSetter -GstVideoBalance GstImplementsInterface GstColorBalance -GstIirEqualizer GstChildProxy -GstIirEqualizerNBands GstChildProxy -GstIirEqualizer3Bands GstChildProxy GstPreset -GstIirEqualizer10Bands GstChildProxy GstPreset -GstPulseMixer GstImplementsInterface GstMixer GstPropertyProbe +GstSpeexEnc GstPreset GstTagSetter GstSpeexEnc GstTagSetter GstPreset -GstOssMixerElement GstImplementsInterface GstMixer +GstSwitchSink GstChildProxy +GstSwitchSrc GstChildProxy +GstTagLibMux GstTagSetter +GstUDPSink GstURIHandler +GstUDPSrc GstURIHandler GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe -GstOss4Mixer GstImplementsInterface GstMixer GstPropertyProbe -GstAviMux GstTagSetter -GstMatroskaMux GstTagSetter -GstWebMMux GstTagSetter -GstDeinterlace GstChildProxy -GstFlvMux GstTagSetter -GstQTMux GstTagSetter GstTagXmpWriter -GstMP4Mux GstTagSetter GstTagXmpWriter -GstISMLMux GstTagSetter GstTagXmpWriter -Gst3GPPMux GstTagSetter GstTagXmpWriter -GstGPPMux GstTagSetter GstTagXmpWriter -GstMJ2Mux GstTagSetter GstTagXmpWriter +GstV4l2Sink GstImplementsInterface GstXOverlay GstNavigation GstColorBalance GstVideoOrientation GstPropertyProbe +GstV4l2Src GstURIHandler GstImplementsInterface GstTuner GstColorBalance GstVideoOrientation GstPropertyProbe +GstVideoBalance GstImplementsInterface GstColorBalance GstVideoMixer GstChildProxy GstVideoMixer2 GstChildProxy -GdkPixbuf GIcon +GstWavpackEnc GstPreset +GstWebMMux GstTagSetter diff --git a/docs/plugins/gst-plugins-good-plugins.prerequisites b/docs/plugins/gst-plugins-good-plugins.prerequisites index ec5b5e2..5c212bb 100644 --- a/docs/plugins/gst-plugins-good-plugins.prerequisites +++ b/docs/plugins/gst-plugins-good-plugins.prerequisites @@ -1,10 +1,11 @@ +GIcon GObject GstChildProxy GstObject -GstTagSetter GstElement -GstStreamVolume GObject +GstColorBalance GstImplementsInterface GstElement GstImplementsInterface GstElement GstMixer GstImplementsInterface GstElement +GstStreamVolume GObject +GstTagSetter GstElement +GstTagXmpWriter GstElement GstTuner GstImplementsInterface GstElement -GstColorBalance GstImplementsInterface GstElement GstVideoOrientation GstImplementsInterface GstElement -GstTagXmpWriter GstElement -GIcon GObject +GstXOverlay GstImplementsInterface GstElement diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals index 37613c7..a68d13b 100644 --- a/docs/plugins/gst-plugins-good-plugins.signals +++ b/docs/plugins/gst-plugins-good-plugins.signals @@ -14,7 +14,7 @@ GstGSMEnc *gstgsmenc GstMultiUDPSink::add void -l +la GstMultiUDPSink *gstmultiudpsink gchar *arg1 gint arg2 @@ -23,7 +23,7 @@ gint arg2 GstMultiUDPSink::clear void -l +la GstMultiUDPSink *gstmultiudpsink @@ -48,7 +48,7 @@ gint arg2 GstMultiUDPSink::get-stats GValueArray* -l +la GstMultiUDPSink *gstmultiudpsink gchar *arg1 gint arg2 @@ -57,7 +57,7 @@ gint arg2 GstMultiUDPSink::remove void -l +la GstMultiUDPSink *gstmultiudpsink gchar *arg1 gint arg2 diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/GstIirEqualizer.html index 2e443a1..f2f24cd 100644 --- a/docs/plugins/html/GstIirEqualizer.html +++ b/docs/plugins/html/GstIirEqualizer.html @@ -3,12 +3,12 @@ GstIirEqualizer - + - + @@ -53,9 +53,9 @@ +----GstBaseTransform +----GstAudioFilter +----GstIirEqualizer - +----GstIirEqualizerNBands - +----GstIirEqualizer3Bands +----GstIirEqualizer10Bands + +----GstIirEqualizer3Bands + +----GstIirEqualizerNBands
@@ -81,6 +81,6 @@ GstIirEqualizer implements
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/GstVideoMixer2Pad.html b/docs/plugins/html/GstVideoMixer2Pad.html index 0c3fbce..da05240 100644 --- a/docs/plugins/html/GstVideoMixer2Pad.html +++ b/docs/plugins/html/GstVideoMixer2Pad.html @@ -3,11 +3,11 @@ GstVideoMixer2Pad - + - + @@ -68,6 +68,6 @@ The opaque
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/GstVideoMixerPad.html b/docs/plugins/html/GstVideoMixerPad.html index 1cb84cd..154948a 100644 --- a/docs/plugins/html/GstVideoMixerPad.html +++ b/docs/plugins/html/GstVideoMixerPad.html @@ -3,12 +3,12 @@ GstVideoMixerPad - + - + @@ -111,6 +111,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html index 85d27db..15c6d55 100644 --- a/docs/plugins/html/ch01.html +++ b/docs/plugins/html/ch01.html @@ -3,12 +3,12 @@ gst-plugins-good Elements - + - + @@ -21,7 +21,7 @@

-gst-plugins-good Elements

+gst-plugins-good Elements
3gppmux — Muxer for 3GPP (.3gp) files @@ -450,6 +450,9 @@ speexdec — decode speex streams to audio
+splitfilesrc — Read a sequentially named set of files as if it was one large file +
+
streaktv — StreakTV makes after images of moving objects
@@ -525,6 +528,6 @@
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html index af7edf3..31cd5e8 100644 --- a/docs/plugins/html/ch02.html +++ b/docs/plugins/html/ch02.html @@ -3,12 +3,12 @@ gst-plugins-good Plugins - + - + @@ -21,7 +21,7 @@

-gst-plugins-good Plugins

+gst-plugins-good Plugins
1394 — Source for video data via IEEE1394 interface @@ -195,7 +195,7 @@ smpte — Apply the standard SMPTE transitions on video images
-soup — libsoup HTTP client src +soup — libsoup HTTP client src/sink
spectrum — Run an FFT on the audio signal, output spectrum data @@ -246,6 +246,6 @@
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html index 43c3a32..a2c1535 100644 --- a/docs/plugins/html/ch03.html +++ b/docs/plugins/html/ch03.html @@ -3,12 +3,12 @@ gst-plugins-good Base Classes - + - + @@ -21,7 +21,7 @@

-gst-plugins-good Base Classes

+gst-plugins-good Base Classes
GstIirEqualizer @@ -36,6 +36,6 @@
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html index 01a7815..75db44f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html @@ -3,12 +3,12 @@ 3gppmux - + - + @@ -96,7 +96,7 @@ presentation-timestamp.

-

Example pipelines

+

Example pipelines

@@ -119,7 +119,7 @@ Documentation last reviewed on 2011-04-21

Synopsis

-

Element Information

+

Element Information

@@ -142,7 +142,7 @@ Documentation last reviewed on 2011-04-21
-

Element Pads

+

Element Pads

@@ -241,6 +241,6 @@ Documentation last reviewed on 2011-04-21 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html index 4364a5e..a5f3119 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html @@ -3,12 +3,12 @@ aacparse - + - + @@ -48,7 +48,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstAacParse @@ -65,7 +65,7 @@ can also estimate playback position and clip duration.

-

Example launch line

+

Example launch line

@@ -83,7 +83,7 @@ can also estimate playback position and clip duration.

Synopsis

-

Element Information

+

Element Information

@@ -106,7 +106,7 @@ can also estimate playback position and clip duration.
-

Element Pads

+

Element Pads

@@ -124,7 +124,7 @@ can also estimate playback position and clip duration. - +

details

audio/mpeg, framed=(boolean)false, mpegversion=(int){ 2, 4 }audio/mpeg, mpegversion=(int){ 2, 4 }
@@ -162,10 +162,6 @@ can also estimate playback position and clip duration.

The opaque GstAacParse data structure.

-
-- -
@@ -175,6 +171,6 @@ The opaque GstAacParse data structure.
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html index b30ce24..104b28f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html @@ -3,12 +3,12 @@ aasink - + - + @@ -81,42 +81,10 @@

Description

-

-Displays video as b/w ascii art. -

-

-

-
-

Example launch line

-
- - - - - - - -
1
gst-launch filesrc location=test.avi ! decodebin ! ffmpegcolorspace ! aasink
-
- This pipeline renders a video to ascii art into a separate window. -
- - - - - - - -
1
gst-launch filesrc location=test.avi ! decodebin ! ffmpegcolorspace ! aasink driver=curses
-
- This pipeline renders a video to ascii art into the current terminal. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -139,7 +107,7 @@ Displays video as b/w ascii art.
-

Element Pads

+

Element Pads

@@ -301,13 +269,9 @@ Displays video as b/w ascii art.
-
-

See Also

-GstCACASink -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html index 0cf91a1..f5dd603 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html @@ -3,12 +3,12 @@ ac3parse - + - + @@ -48,7 +48,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstAc3Parse @@ -60,7 +60,7 @@ This is an AC3 parser.

-

Example launch line

+

Example launch line

@@ -78,7 +78,7 @@ This is an AC3 parser.

Synopsis

-

Element Information

+

Element Information

@@ -94,14 +94,14 @@ This is an AC3 parser. - +

class

Codec/Parser/AudioCodec/Parser/Converter/Audio

-

Element Pads

+

Element Pads

@@ -119,15 +119,15 @@ This is an AC3 parser. - + - + - +

details

audio/x-ac3, framed=(boolean)falseaudio/x-ac3

audio/x-eac3, framed=(boolean)false audio/x-eac3

audio/ac3, framed=(boolean)false audio/ac3
@@ -148,11 +148,11 @@ This is an AC3 parser.

details

-audio/x-ac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 32000, 48000 ] +audio/x-ac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 48000 ], alignment=(string){ iec61937, frame }

- audio/x-eac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 32000, 48000 ] + audio/x-eac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 48000 ], alignment=(string){ iec61937, frame }
@@ -178,6 +178,6 @@ The opaque GstAc3Parse object + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html index 7d75299..4562ff7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html @@ -3,12 +3,12 @@ agingtv - + - + @@ -73,7 +73,7 @@ scratches and dust.

-

Example launch line

+

Example launch line

@@ -91,7 +91,7 @@ scratches and dust.

Synopsis

-

Element Information

+

Element Information

@@ -114,7 +114,7 @@ scratches and dust.
-

Element Pads

+

Element Pads

@@ -213,6 +213,6 @@ scratches and dust. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html index 2b0fe68..47d3e15 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html @@ -3,12 +3,12 @@ alawdec - + - + @@ -59,7 +59,7 @@ This element decodes alaw audio. Alaw coding is also known as G.711.

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +82,7 @@ This element decodes alaw audio. Alaw coding is also known as G.711.
-

Element Pads

+

Element Pads

@@ -142,6 +142,6 @@ This element decodes alaw audio. Alaw coding is also known as G.711. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html index f52153b..7e5829a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html @@ -3,12 +3,12 @@ alawenc - + - + @@ -49,7 +49,7 @@ This element encode alaw audio. Alaw coding is also known as G.711.

Synopsis

-

Element Information

+

Element Information

@@ -72,7 +72,7 @@ This element encode alaw audio. Alaw coding is also known as G.711.
-

Element Pads

+

Element Pads

@@ -147,6 +147,6 @@ This element encode alaw audio. Alaw coding is also known as G.711. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html index cf73be3..25023a5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html @@ -3,12 +3,12 @@ alpha - + - + @@ -104,7 +104,7 @@ a snow video stream.

Synopsis

-

Element Information

+

Element Information

@@ -129,7 +129,7 @@ Jan Schmidt <thaytan@noraisin.net>
-

Element Pads

+

Element Pads

@@ -332,14 +332,12 @@ Jan Schmidt <thaytan@noraisin.net>

enum GstAlphaMethod

-
typedef enum
-{
+
typedef enum {
   ALPHA_METHOD_SET,
   ALPHA_METHOD_GREEN,
   ALPHA_METHOD_BLUE,
   ALPHA_METHOD_CUSTOM,
-}
-GstAlphaMethod;
+} GstAlphaMethod;
 
@@ -451,6 +449,6 @@ GstAlphaMethod; + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html index d75b149..d739cca 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html @@ -3,12 +3,12 @@ alphacolor - + - + @@ -81,7 +81,7 @@ Sample pipeline:

Synopsis

-

Element Information

+

Element Information

@@ -104,7 +104,7 @@ Sample pipeline:
-

Element Pads

+

Element Pads

@@ -196,6 +196,6 @@ Sample pipeline: + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html index 3b2246f..f0264fd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html @@ -3,12 +3,12 @@ amrparse - + - + @@ -48,7 +48,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstAmrParse @@ -61,7 +61,7 @@ formats.

-

Example launch line

+

Example launch line

@@ -79,7 +79,7 @@ formats.

Synopsis

-

Element Information

+

Element Information

@@ -102,7 +102,7 @@ formats.
-

Element Pads

+

Element Pads

@@ -179,6 +179,6 @@ The opaque GstAacParse data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html index b92c172..b0e47a8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html @@ -3,12 +3,12 @@ apedemux - + - + @@ -71,7 +71,7 @@ information.

-

Example launch line

+

Example launch line

@@ -91,7 +91,7 @@ the appropriate mime type set on buffers produced from apedemux.

Synopsis

-

Element Information

+

Element Information

@@ -114,7 +114,7 @@ the appropriate mime type set on buffers produced from apedemux.
-

Element Pads

+

Element Pads

@@ -174,6 +174,6 @@ the appropriate mime type set on buffers produced from apedemux. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html index 553a9ee..378e7ad 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html @@ -3,12 +3,12 @@ apev2mux - + - + @@ -62,50 +62,10 @@ GstApev2Mux implements

Description

-

-This element adds APEv2 tags to the beginning of a stream using the taglib -library. -

-

-Applications can set the tags to write using the GstTagSetter interface. -Tags sent by upstream elements will be picked up automatically (and merged -according to the merge mode set via the tag setter interface). -

-

-

-
-

Example pipelines

-
-
- - - - - - -
1
gst-launch -v filesrc location=foo.ogg ! decodebin ! audioconvert ! lame ! apev2mux ! filesink location=foo.mp3
-
- A pipeline that transcodes a file from Ogg/Vorbis to mp3 format with an -APEv2 that contains the same as the the Ogg/Vorbis file. Make sure the -Ogg/Vorbis file actually has comments to preserve. -
- - - - - - - -
1
gst-launch -m filesrc location=foo.mp3 ! apedemux ! fakesink silent=TRUE 2> /dev/null | grep taglist
-
- Verify that tags have been written. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -128,7 +88,7 @@ Ogg/Vorbis file actually has comments to preserve.
-

Element Pads

+

Element Pads

@@ -185,13 +145,9 @@ Ogg/Vorbis file actually has comments to preserve.

-
-

See Also

-GstTagSetter -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html index a00d635..3d27eab 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html @@ -3,12 +3,12 @@ aspectratiocrop - + - + @@ -80,7 +80,7 @@ in pass-through mode.

-

Example launch line

+

Example launch line

@@ -98,7 +98,7 @@ in pass-through mode.

Synopsis

-

Element Information

+

Element Information

@@ -121,7 +121,7 @@ in pass-through mode.
-

Element Pads

+

Element Pads

@@ -337,6 +337,6 @@ in pass-through mode. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html index bc0598b..99fe4d3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html @@ -3,12 +3,12 @@ audioamplify - + - + @@ -71,7 +71,7 @@ The difference between the clipping modes is best evaluated by testing.

-

Example launch line

+

Example launch line

@@ -93,7 +93,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -116,7 +116,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -220,6 +220,6 @@ opposite side, wrap-positive pushes them back from the same side. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html index 53fa67c..050c512 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html @@ -3,12 +3,12 @@ audiochebband - + - + @@ -102,7 +102,7 @@ a cutoff frequency at a quarter of the sampling rate.

-

Example launch line

+

Example launch line

@@ -124,7 +124,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -147,7 +147,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -256,6 +256,6 @@ gst-launch audiotestsrc wave
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html index 648b803..42d15e0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html @@ -3,12 +3,12 @@ audiocheblimit - + - + @@ -99,7 +99,7 @@ a cutoff frequency at a quarter of the sampling rate.

-

Example launch line

+

Example launch line

@@ -121,7 +121,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -144,7 +144,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -245,6 +245,6 @@ gst-launch audiotestsrc wave
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html index 5b978ab..57eb894 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html @@ -3,12 +3,12 @@ audiodynamic - + - + @@ -75,7 +75,7 @@ soft-knee mode is selected the ratio is applied smoothly.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -220,6 +220,6 @@ gst-launch audiotestsrc wave
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html index 2b4913c..b5d8779 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html @@ -3,12 +3,12 @@ audioecho - + - + @@ -58,10 +58,10 @@

Properties

-  "delay"                    guint64               : Read / Write
+  "delay"                    guint64               : Read / Write
   "feedback"                 gfloat                : Read / Write
   "intensity"                gfloat                : Read / Write
-  "max-delay"                guint64               : Read / Write
+  "max-delay"                guint64               : Read / Write
 
@@ -83,7 +83,7 @@ state and will be set to the current delay by default.

-

Example launch line

+

Example launch line

@@ -103,7 +103,7 @@ gst-launch filesrc location

Synopsis

-

Element Information

+

Element Information

@@ -126,7 +126,7 @@ gst-launch filesrc location -

Element Pads

+

Element Pads

@@ -187,7 +187,7 @@ gst-launch filesrc location

Property Details

The "delay" property

-
  "delay"                    guint64               : Read / Write
+
  "delay"                    guint64               : Read / Write

Delay of the echo in nanoseconds.

Allowed values: >= 1

Default value: 1

@@ -211,7 +211,7 @@ gst-launch filesrc location

The "max-delay" property

-
  "max-delay"                guint64               : Read / Write
+
  "max-delay"                guint64               : Read / Write

Maximum delay of the echo in nanoseconds (can't be changed in PLAYING or PAUSED state).

Allowed values: >= 1

Default value: 1

@@ -220,6 +220,6 @@ gst-launch filesrc location
- Generated by GTK-Doc V1.17
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html index a1117d1..be1994d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html @@ -3,12 +3,12 @@ audiofirfilter - + - + @@ -62,7 +62,7 @@

Properties

   "kernel"                   GValueArray*          : Read / Write
-  "latency"                  guint64               : Read / Write
+  "latency"                  guint64               : Read / Write
 
@@ -94,7 +94,7 @@ FIR filters as they're depending on the sampling rate.

-

Example application

+

Example application

@@ -432,7 +432,7 @@ gint

Synopsis

-

Element Information

+

Element Information

@@ -455,7 +455,7 @@ gint
-

Element Pads

+

Element Pads

@@ -523,7 +523,7 @@ Opaque data structure.

The "latency" property

-
  "latency"                  guint64               : Read / Write
+
  "latency"                  guint64               : Read / Write

Filter latency in samples.

Default value: 0

@@ -562,6 +562,6 @@ stop until the event is handled. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html index e6697d4..155ae0c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html @@ -3,12 +3,12 @@ audioiirfilter - + - + @@ -90,7 +90,7 @@ IIR filters as they're depending on the sampling rate.

-

Example application

+

Example application

@@ -380,7 +380,7 @@ gint

Synopsis

-

Element Information

+

Element Information

@@ -403,7 +403,7 @@ gint
-

Element Pads

+

Element Pads

@@ -509,6 +509,6 @@ stop until the event is handled. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html index 2e6e57a..f36f003 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html @@ -3,12 +3,12 @@ audioinvert - + - + @@ -71,7 +71,7 @@ Creating a stereo sample from a mono source, with one channel inverted produces

-

Example launch line

+

Example launch line

@@ -93,7 +93,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -116,7 +116,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -194,6 +194,6 @@ gst-launch audiotestsrc wave
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html index a4b0798..ba0fa6a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html @@ -3,12 +3,12 @@ audiokaraoke - + - + @@ -73,7 +73,7 @@ This plugin is useful for karaoke applications.

-

Example launch line

+

Example launch line

@@ -91,7 +91,7 @@ This plugin is useful for karaoke applications.

Synopsis

-

Element Information

+

Element Information

@@ -114,7 +114,7 @@ This plugin is useful for karaoke applications.
-

Element Pads

+

Element Pads

@@ -216,6 +216,6 @@ This plugin is useful for karaoke applications. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html index 337810b..c889a0c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html @@ -3,12 +3,12 @@ audiopanorama - + - + @@ -70,7 +70,7 @@ which keeps the same perceived loudness, and a simple panning method that just c

-

Example launch line

+

Example launch line

@@ -94,7 +94,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -117,7 +117,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -207,6 +207,6 @@ a matter of taste which method should be chosen. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html index 4e24013..549a85b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html @@ -3,12 +3,12 @@ audiowsincband - + - + @@ -82,7 +82,7 @@ disadvantage is the much slower execution time with larger kernels.

-

Example launch line

+

Example launch line

@@ -104,7 +104,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -127,7 +127,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -228,6 +228,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html index d760c7c..f6df2ca 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html @@ -3,12 +3,12 @@ audiowsinclimit - + - + @@ -82,7 +82,7 @@ disadvantage is the much slower execution time with larger kernels.

-

Example launch line

+

Example launch line

@@ -104,7 +104,7 @@ gst-launch audiotestsrc wave

Synopsis

-

Element Information

+

Element Information

@@ -127,7 +127,7 @@ gst-launch audiotestsrc wave -

Element Pads

+

Element Pads

@@ -228,6 +228,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html index a0fb764..7e7644b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html @@ -3,12 +3,12 @@ auparse - + - + @@ -59,7 +59,7 @@ Parses .au files mostly originating from sun os based computers.

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +82,7 @@ Parses .au files mostly originating from sun os based computers.
-

Element Pads

+

Element Pads

@@ -158,6 +158,6 @@ Parses .au files mostly originating from sun os based computers. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html index 5dc41e8..44afb13 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html @@ -3,12 +3,12 @@ autoaudiosink - + - + @@ -79,7 +79,7 @@ of their element information, and also have a non-zero autoplugging rank.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ of their element information, and also have a non-zero autoplugging rank.

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ of their element information, and also have a non-zero autoplugging rank.
-

Element Pads

+

Element Pads

@@ -179,6 +179,6 @@ autovideosink, alsasink, osssink + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html index e2f92f2..d1db3c8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html @@ -3,12 +3,12 @@ autoaudiosrc - + - + @@ -79,7 +79,7 @@ of their element information, and also have a non-zero autoplugging rank.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ of their element information, and also have a non-zero autoplugging rank.

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ of their element information, and also have a non-zero autoplugging rank.
-

Element Pads

+

Element Pads

@@ -179,6 +179,6 @@ autovideosrc, alsasrc, osssrc + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html index 3e92e50..249af93 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html @@ -3,12 +3,12 @@ autovideosink - + - + @@ -79,7 +79,7 @@ of their element information, and also have a non-zero autoplugging rank.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ of their element information, and also have a non-zero autoplugging rank.

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ of their element information, and also have a non-zero autoplugging rank.
-

Element Pads

+

Element Pads

@@ -179,6 +179,6 @@ autoaudiosink, ximagesink, xvimagesink, sdlvideosink + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html index d40ecf4..7d2c275 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html @@ -3,12 +3,12 @@ autovideosrc - + - + @@ -79,7 +79,7 @@ of their element information, and also have a non-zero autoplugging rank.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ of their element information, and also have a non-zero autoplugging rank.

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ of their element information, and also have a non-zero autoplugging rank.
-

Element Pads

+

Element Pads

@@ -179,6 +179,6 @@ autoaudiosrc, v4l2src, v4lsrc + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html index d3e5088..3ef3c06 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html @@ -3,12 +3,12 @@ avidemux - + - + @@ -63,7 +63,7 @@ capabilities of the upstream elements.

-

Example launch line

+

Example launch line

@@ -87,7 +87,7 @@ Last reviewed on 2006-12-29 (0.10.6)

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +110,7 @@ Last reviewed on 2006-12-29 (0.10.6)
-

Element Pads

+

Element Pads

@@ -640,6 +640,6 @@ Last reviewed on 2006-12-29 (0.10.6) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html index 15916cf..b8477bc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html @@ -3,12 +3,12 @@ avimux - + - + @@ -75,7 +75,7 @@ Muxes raw or compressed audio and/or video streams into an AVI file.

-

Example launch lines

+

Example launch lines

(write everything in one line, without the backslash characters)

@@ -129,7 +129,7 @@ only work if you have the necessary encoder elements installed of course.

Synopsis

-

Element Information

+

Element Information

@@ -152,7 +152,7 @@ only work if you have the necessary encoder elements installed of course.
-

Element Pads

+

Element Pads

@@ -259,10 +259,6 @@ only work if you have the necessary encoder elements installed of course. - - - - @@ -322,6 +318,6 @@ only work if you have the necessary encoder elements installed of course. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html index c2afe81..962d75a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html @@ -3,12 +3,12 @@ avisubtitle - + - + @@ -56,7 +56,7 @@

-

Example launch line

+

Example launch line

Parses the subtitle stream from an avi file.

@@ -77,7 +77,7 @@ Last reviewed on 2008-02-01

Synopsis

-

Element Information

+

Element Information

video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]
@@ -100,7 +100,7 @@ Last reviewed on 2008-02-01
-

Element Pads

+

Element Pads

@@ -160,6 +160,6 @@ Last reviewed on 2008-02-01 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html index dd9e844..c070a2a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html @@ -3,12 +3,12 @@ cacasink - + - + @@ -65,43 +65,10 @@

Description

-

-Displays video as color ascii art. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
CACA_GEOMETRY=160x60 CACA_FONT=5x7 gst-launch filesrc location=test.avi ! decodebin ! ffmpegcolorspace ! cacasink
-
- This pipeline renders a video to ascii art into a separate window using a -small font and specifying the ascii resolution. -
- - - - - - - -
1
CACA_DRIVER=ncurses gst-launch filesrc location=test.avi ! decodebin ! ffmpegcolorspace ! cacasink
-
- This pipeline renders a video to ascii art into the current terminal. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -124,7 +91,7 @@ small font and specifying the ascii resolution.
-

Element Pads

+

Element Pads

@@ -204,13 +171,9 @@ small font and specifying the ascii resolution.

Default value: 80

-
-

See Also

-GstAASink -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html index 98b86c5..721188e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html @@ -3,12 +3,12 @@ cairooverlay - + - + @@ -64,138 +64,10 @@

Description

-

-cairooverlay renders an overlay using a application provided render function. -

-

-The full example can be found in tests/examples/cairo/cairo_overlay.c -

-
-

Example code

-
-
- - - - - - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
#include <gst/gst.h>
-#include <gst/video/video.h>
-
-...
-
-typedef struct {
-  gboolean valid;
-  int width;
-  int height;
-} CairoOverlayState;
-
-...
-
-static void
-prepare_overlay (GstElement * overlay, GstCaps * caps, gpointer user_data)
-{
-  CairoOverlayState *state = (CairoOverlayState *)user_data;
-
-  gst_video_format_parse_caps (caps, NULL, &state->width, &state->height);
-  state->valid = TRUE;
-}
-
-static void
-draw_overlay (GstElement * overlay, cairo_t * cr, guint64 timestamp, 
-  guint64 duration, gpointer user_data)
-{
-  CairoOverlayState *s = (CairoOverlayState *)user_data;
-  double scale;
-
-  if (!s->valid)
-    return;
-
-  scale = 2*(((timestamp/(int)1e7) % 70)+30)/100.0;
-  cairo_translate(cr, s->width/2, (s->height/2)-30);
-  cairo_scale (cr, scale, scale);
-
-  cairo_move_to (cr, 0, 0);
-  cairo_curve_to (cr, 0,-30, -50,-30, -50,0);
-  cairo_curve_to (cr, -50,30, 0,35, 0,60 );
-  cairo_curve_to (cr, 0,35, 50,30, 50,0 ); *  
-  cairo_curve_to (cr, 50,-30, 0,-30, 0,0 );
-  cairo_set_source_rgba (cr, 0.9, 0.0, 0.1, 0.7);
-  cairo_fill (cr);
-}
-
-...
-
-cairo_overlay = gst_element_factory_make ("cairooverlay", "overlay");
-
-g_signal_connect (cairo_overlay, "draw", G_CALLBACK (draw_overlay),
-  overlay_state);
-g_signal_connect (cairo_overlay, "caps-changed", 
-  G_CALLBACK (prepare_overlay), overlay_state);
-...
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -218,7 +90,7 @@ cairo_overlay = -

Element Pads

+

Element Pads

@@ -287,22 +159,17 @@ cairo_overlay =

Signal Details

The "caps-changed" signal

-
void                user_function                      (GstCairoOverlay *overlay,
-                                                        GstCaps         *caps,
+
void                user_function                      (GstCairoOverlay *gstcairooverlay,
+                                                        GstCaps         *arg1,
                                                         gpointer         user_data)

-This signal is emitted when the caps of the element has changed.

- - - - - - + + @@ -314,32 +181,19 @@ This signal is emitted when the caps of the element has changed.

The "draw" signal

-
void                user_function                      (GstCairoOverlay *overlay,
-                                                        CairoContext    *cr,
-                                                        guint64          timestamp,
-                                                        guint64          duration,
+
void                user_function                      (GstCairoOverlay *gstcairooverlay,
+                                                        CairoContext    *arg1,
+                                                        guint64          arg2,
+                                                        guint64          arg3,
                                                         gpointer         user_data)

-This signal is emitted when the overlay should be drawn.

overlay :

Overlay element emitting the signal.

caps :

The GstCaps of the element.

gstcairooverlay :

the object which received the signal.

user_data :

- - - - - - - - - - - - - - + + @@ -352,6 +206,6 @@ This signal is emitted when the overlay should be drawn. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairorender.html b/docs/plugins/html/gst-plugins-good-plugins-cairorender.html index edd00e1..c05b46d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairorender.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairorender.html @@ -3,12 +3,12 @@ cairorender - + - + @@ -53,31 +53,10 @@

Description

-

-cairorender encodes a video stream into PDF, SVG, PNG or Postscript -

-

-

-
-

Example launch line

-
-

overlay :

Overlay element emitting the signal.

cr :

Cairo context to draw to.

timestamp :

Timestamp (see GstClockTime) of the current buffer.

duration :

Duration (see GstClockTime) of the current buffer.

gstcairooverlay :

the object which received the signal.

user_data :

- - - - - - -
1
gst-launch videotestsrc num-buffers=3 ! cairorender ! "application/pdf" ! filesink location=test.pdf
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +79,7 @@ cairorender encodes a video stream into PDF, SVG, PNG or Postscript
-

Element Pads

+

Element Pads

@@ -188,6 +167,6 @@ cairorender encodes a video stream into PDF, SVG, PNG or Postscript + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairotextoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairotextoverlay.html index 1c05cae..909f327 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairotextoverlay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairotextoverlay.html @@ -3,12 +3,12 @@ cairotextoverlay - + - + @@ -65,35 +65,15 @@ "valign" gchar* : Write "xpad" gint : Write "ypad" gint : Write + "silent" gboolean : Write

Description

-

-cairotextoverlay renders the text on top of the video frames. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch videotestsrc ! cairotextoverlay text="hello" ! autovideosink
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -116,7 +96,7 @@ cairotextoverlay renders the text on top of the video frames.
-

Element Pads

+

Element Pads

@@ -258,10 +238,17 @@ cairotextoverlay renders the text on top of the video frames.

Vertical padding when using top/bottom alignment.

Default value: 25

+
+
+

The "silent" property

+
  "silent"                   gboolean              : Write
+

Whether to render the text string.

+

Default value: FALSE

+
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairotimeoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairotimeoverlay.html index 6baf4b0..02e7dbe 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairotimeoverlay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairotimeoverlay.html @@ -3,12 +3,12 @@ cairotimeoverlay - + - + @@ -54,32 +54,10 @@

Description

-

-cairotimeoverlay renders the buffer timestamp for each frame on top of -the frame. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch videotestsrc ! cairotimeoverlay ! autovideosink
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -102,7 +80,7 @@ the frame.
-

Element Pads

+

Element Pads

@@ -162,6 +140,6 @@ the frame. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html index 9528b2d..af6903a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html @@ -3,12 +3,12 @@ capssetter - + - + @@ -67,7 +67,7 @@

-

+

Sets or merges caps on a stream's buffers. That is, a buffer's caps are updated using (fields of) caps. Note that this may @@ -98,7 +98,7 @@ alike.

Synopsis

-

Element Information

+

Element Information

@@ -121,7 +121,7 @@ alike.
-

Element Pads

+

Element Pads

@@ -203,6 +203,6 @@ alike. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cmmldec.html b/docs/plugins/html/gst-plugins-good-plugins-cmmldec.html index f1cc58b..ee2fde8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cmmldec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cmmldec.html @@ -3,12 +3,12 @@ cmmldec - + - + @@ -61,32 +61,10 @@

Description

-

-Cmmldec extracts a CMML document from a CMML bitstream.CMML is -an XML markup language for time-continuous data maintained by the Annodex Foundation. -

-

-

-
-

Example pipeline

-
-
- - - - - - -
1
gst-launch -v filesrc location=annotated.ogg ! oggdemux ! cmmldec ! filesink location=annotations.cmml
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -109,7 +87,7 @@ an XML markup language for time-continuous data maintained by the -

Element Pads

+

Element Pads

@@ -175,13 +153,9 @@ an XML markup language for time-continuous data maintained by the -

See Also

-cmmlenc, oggdemux - + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cmmlenc.html b/docs/plugins/html/gst-plugins-good-plugins-cmmlenc.html index 9520b2c..d61c057 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cmmlenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cmmlenc.html @@ -3,12 +3,12 @@ cmmlenc - + - + @@ -56,39 +56,17 @@

Properties

-  "granule-rate-denominator" gint64                : Read / Write / Construct
-  "granule-rate-numerator"   gint64                : Read / Write / Construct
+  "granule-rate-denominator" gint64                : Read / Write / Construct
+  "granule-rate-numerator"   gint64                : Read / Write / Construct
   "granule-shift"            guchar                : Read / Write / Construct
 

Description

-

-Cmmlenc encodes a CMML document into a CMML stream. CMML is -an XML markup language for time-continuous data maintained by the Annodex Foundation. -

-

-

-
-

Example pipeline

-
-
- - - - - - -
1
gst-launch -v filesrc location=annotations.cmml ! cmmlenc ! oggmux name=mux ! filesink location=annotated.ogg
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +89,7 @@ an XML markup language for time-continuous data maintained by the -

Element Pads

+

Element Pads

@@ -172,7 +150,7 @@ an XML markup language for time-continuous data maintained by the

Property Details

The "granule-rate-denominator" property

-
  "granule-rate-denominator" gint64                : Read / Write / Construct
+
  "granule-rate-denominator" gint64                : Read / Write / Construct

Granulerate denominator.

Allowed values: >= 0

Default value: 1

@@ -180,7 +158,7 @@ an XML markup language for time-continuous data maintained by the

The "granule-rate-numerator" property

-
  "granule-rate-numerator"   gint64                : Read / Write / Construct
+
  "granule-rate-numerator"   gint64                : Read / Write / Construct

Granulerate numerator.

Allowed values: >= 0

Default value: 1000

@@ -194,13 +172,9 @@ an XML markup language for time-continuous data maintained by the -

See Also

-cmmldec, oggmux -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html index 8408944..9ad5fe5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html @@ -3,12 +3,12 @@ cutter - + - + @@ -57,8 +57,8 @@

Properties

   "leaky"                    gboolean              : Read / Write
-  "pre-length"               guint64               : Read / Write
-  "run-length"               guint64               : Read / Write
+  "pre-length"               guint64               : Read / Write
+  "run-length"               guint64               : Read / Write
   "threshold"                gdouble               : Read / Write
   "threshold-dB"             gdouble               : Read / Write
 
@@ -88,7 +88,7 @@ The message's structure contains two fields:

-

Example launch line

+

Example launch line

@@ -106,7 +106,7 @@ The message's structure contains two fields:

Synopsis

-

Element Information

+

Element Information

@@ -129,7 +129,7 @@ The message's structure contains two fields:
-

Element Pads

+

Element Pads

@@ -197,14 +197,14 @@ The message's structure contains two fields:

The "pre-length" property

-
  "pre-length"               guint64               : Read / Write
+
  "pre-length"               guint64               : Read / Write

Length of pre-recording buffer (in nanoseconds).

Default value: 0


The "run-length" property

-
  "run-length"               guint64               : Read / Write
+
  "run-length"               guint64               : Read / Write

Length of drop below threshold before cut_stop (in nanoseconds).

Default value: 0

@@ -226,6 +226,6 @@ The message's structure contains two fields: + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html index 624a224..469737a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html @@ -3,12 +3,12 @@ dcaparse - + - + @@ -48,7 +48,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstDcaParse @@ -60,7 +60,7 @@ This is a DCA (DTS Coherent Acoustics) parser.

-

Example launch line

+

Example launch line

@@ -78,7 +78,7 @@ This is a DCA (DTS Coherent Acoustics) parser.

Synopsis

-

Element Information

+

Element Information

@@ -101,7 +101,7 @@ This is a DCA (DTS Coherent Acoustics) parser.
-

Element Pads

+

Element Pads

@@ -119,7 +119,7 @@ This is a DCA (DTS Coherent Acoustics) parser. - +

details

audio/x-dts, framed=(boolean)falseaudio/x-dts
@@ -140,7 +140,7 @@ This is a DCA (DTS Coherent Acoustics) parser.

details

-audio/x-dts, framed=(boolean)true, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 192000 ], depth=(int){ 14, 16 }, endianness=(int){ 1234, 4321 } +audio/x-dts, framed=(boolean)true, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 192000 ], depth=(int){ 14, 16 }, endianness=(int){ 1234, 4321 }, block-size=(int)[ 1, 2147483647 ], frame-size=(int)[ 1, 2147483647 ]
@@ -166,6 +166,6 @@ The opaque GstDcaParse object
+ Generated by GTK-Doc V1.18
\ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html index d6bf0af..02b1ce0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html @@ -3,12 +3,12 @@ deinterlace - + - + @@ -68,6 +68,9 @@ GstDeinterlace implements "method" GstDeinterlaceMethods : Read / Write "mode" GstDeinterlaceModes : Read / Write "tff" GstDeinterlaceFieldLayout : Read / Write + "drop-orphans" gboolean : Read / Write + "ignore-obscure" gboolean : Read / Write + "locking" GstDeinterlaceLocking : Read / Write
@@ -79,7 +82,7 @@ For this different algorithms can be selected which will be described later.

-

Example launch line

+

Example launch line

@@ -97,7 +100,7 @@ For this different algorithms can be selected which will be described later.

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +123,7 @@ For this different algorithms can be selected which will be described later.
-

Element Pads

+

Element Pads

@@ -348,10 +351,44 @@ on content that has the "interlaced" flag on the caps.

Deinterlace top field first.

Default value: Auto detection

+
+
+

The "drop-orphans" property

+
  "drop-orphans"             gboolean              : Read / Write
+

+This selects whether to drop orphan fields at the beginning of telecine +patterns in active locking mode. +

+

Default value: TRUE

+

Since 0.10.31

+
+
+
+

The "ignore-obscure" property

+
  "ignore-obscure"           gboolean              : Read / Write
+

+This selects whether to ignore obscure/rare telecine patterns. +NTSC 2:3 pulldown variants are the only really common patterns. +

+

Default value: TRUE

+

Since 0.10.31

+
+
+
+

The "locking" property

+
  "locking"                  GstDeinterlaceLocking  : Read / Write
+

+This selects which approach to pattern locking is used which affects +processing latency and accuracy of timestamp adjustment for telecine +streams. +

+

Default value: No pattern locking

+

Since 0.10.31

+
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html index 51ce5d1..ff669da 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html @@ -3,12 +3,12 @@ deinterleave - + - + @@ -77,7 +77,7 @@ before further processing of the audio data.

-

Example launch line

+

Example launch line

@@ -109,7 +109,7 @@ channels exchanged.

Synopsis

-

Element Information

+

Element Information

@@ -132,7 +132,7 @@ channels exchanged.
-

Element Pads

+

Element Pads

@@ -218,6 +218,6 @@ interleave + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html index 6de4dce..0a83531 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html @@ -3,12 +3,12 @@ dicetv - + - + @@ -82,7 +82,7 @@ consistent between each frame.

-

Example launch line

+

Example launch line

@@ -100,7 +100,7 @@ consistent between each frame.

Synopsis

-

Element Information

+

Element Information

@@ -123,7 +123,7 @@ consistent between each frame.
-

Element Pads

+

Element Pads

@@ -240,6 +240,6 @@ consistent between each frame. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html index 5d503ef..b27a7aa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html @@ -3,12 +3,12 @@ directsoundsink - + - + @@ -42,49 +42,10 @@

Description

-

-This element lets you output sound using the DirectSound API. -

-

-Note that you should almost always use generic audio conversion elements -like audioconvert and audioresample in front of an audiosink to make sure -your pipeline works under all circumstances (those conversion elements will -act in passthrough-mode if no conversion is necessary). -

-

-

-
-

Example pipelines

-
-
- - - - - - -
1
gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.1 ! directsoundsink
-
- will output a sine wave (continuous beep sound) to your sound card (with -a very low volume as precaution). -
- - - - - - - -
1
gst-launch -v filesrc location=music.ogg ! decodebin ! audioconvert ! audioresample ! directsoundsink
-
- will play an Ogg/Vorbis audio file and output it. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -107,7 +68,7 @@ a very low volume as precaution).
-

Element Pads

+

Element Pads

@@ -157,6 +118,6 @@ a very low volume as precaution).

+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html index c6367c8..1f8ac60 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html @@ -3,12 +3,12 @@ dv1394src - + - + @@ -71,7 +71,7 @@ GstDV1394Src implements "channel" gint : Read / Write "consecutive" gint : Read / Write "drop-incomplete" gboolean : Read / Write - "guid" guint64 : Read / Write + "guid" guint64 : Read / Write "port" gint : Read / Write "skip" gint : Read / Write "use-avc" gboolean : Read / Write @@ -86,32 +86,10 @@ GstDV1394Src implements

Description

-

-Read DV (digital video) data from firewire port. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch dv1394src ! queue ! dvdemux name=d ! queue ! dvdec ! xvimagesink d. ! queue ! alsasink
-
- This pipeline captures from the firewire port and displays it (might need -format converters for audio/video). -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -134,7 +112,7 @@ format converters for audio/video).
-

Element Pads

+

Element Pads

@@ -197,7 +175,7 @@ format converters for audio/video).

The "guid" property

-
  "guid"                     guint64               : Read / Write
+
  "guid"                     guint64               : Read / Write

select one of multiple DV devices by its GUID. use a hexadecimal like 0xhhhhhhhhhhhhhhhh. (0 = no guid).

Default value: 0

@@ -228,11 +206,8 @@ format converters for audio/video).

The "device-name" property

  "device-name"              gchar*                : Read
-

-Descriptive name of the currently opened device -

+

user-friendly name of the device.

Default value: "Default"

-

Since 0.10.7

@@ -261,6 +236,6 @@ Descriptive name of the currently opened device
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html index bc186f7..70032aa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html @@ -3,12 +3,12 @@ dvdec - + - + @@ -64,40 +64,10 @@

Description

-

-dvdec decodes DV video into raw video. The element expects a full DV frame -as input, which is 120000 bytes for NTSC and 144000 for PAL video. -

-

-This element can perform simple frame dropping with the "drop-factor" -property. Setting this property to a value N > 1 will only decode every -Nth frame. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch filesrc location=test.dv ! dvdemux name=demux ! dvdec ! xvimagesink
-
- This pipeline decodes and renders the raw DV stream to a videosink. -
-

-

-

-Last reviewed on 2006-02-28 (0.10.3) -

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +90,7 @@ Last reviewed on 2006-02-28 (0.10.3)
-

Element Pads

+

Element Pads

@@ -219,6 +189,6 @@ Last reviewed on 2006-02-28 (0.10.3) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html index 8238c62..d0da8cb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html @@ -3,12 +3,12 @@ dvdemux - + - + @@ -53,39 +53,10 @@

Description

-

-dvdemux splits raw DV into its audio and video components. The audio will be -decoded raw samples and the video will be encoded DV video. -

-

-This element can operate in both push and pull mode depending on the -capabilities of the upstream peer. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch filesrc location=test.dv ! dvdemux name=demux ! queue ! audioconvert ! alsasink demux. ! queue ! dvdec ! xvimagesink
-
- This pipeline decodes and renders the raw DV stream to an audio and a videosink. -
-

-

-

-Last reviewed on 2006-02-27 (0.10.3) -

Synopsis

-

Element Information

+

Element Information

@@ -108,7 +79,7 @@ Last reviewed on 2006-02-27 (0.10.3)
-

Element Pads

+

Element Pads

@@ -189,6 +160,6 @@ Last reviewed on 2006-02-27 (0.10.3) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html index 8d6e71d..b187c17 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html @@ -3,12 +3,12 @@ edgetv - + - + @@ -62,7 +62,7 @@ computer way.

-

Example launch line

+

Example launch line

@@ -80,7 +80,7 @@ computer way.

Synopsis

-

Element Information

+

Element Information

@@ -103,7 +103,7 @@ computer way.
-

Element Pads

+

Element Pads

@@ -171,6 +171,6 @@ computer way. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html index 47c1756..7923f9a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html @@ -3,12 +3,12 @@ equalizer-10bands - + - + @@ -88,7 +88,7 @@ frequency bands between 30 Hz and 15 kHz.

-

Example launch line

+

Example launch line

@@ -106,7 +106,7 @@ frequency bands between 30 Hz and 15 kHz.

Synopsis

-

Element Information

+

Element Information

@@ -129,7 +129,7 @@ frequency bands between 30 Hz and 15 kHz.
-

Element Pads

+

Element Pads

@@ -279,6 +279,6 @@ frequency bands between 30 Hz and 15 kHz. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html index c1d45ec..077f1c5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html @@ -3,12 +3,12 @@ equalizer-3bands - + - + @@ -81,7 +81,7 @@ medium frequency and high frequency band.

-

Example launch line

+

Example launch line

@@ -99,7 +99,7 @@ medium frequency and high frequency band.

Synopsis

-

Element Information

+

Element Information

@@ -122,7 +122,7 @@ medium frequency and high frequency band.
-

Element Pads

+

Element Pads

@@ -216,6 +216,6 @@ medium frequency and high frequency band. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html index 0d629ce..e8ae24a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html @@ -3,12 +3,12 @@ equalizer-nbands - + - + @@ -80,7 +80,7 @@ the center frequency, band width and gain.

-

Example launch line

+

Example launch line

@@ -97,7 +97,7 @@ the center frequency, band width and gain.


-

Example code

+

Example code

@@ -189,7 +189,7 @@ the center frequency, band width and gain.

Synopsis

-

Element Information

+

Element Information

@@ -212,7 +212,7 @@ the center frequency, band width and gain.
-

Element Pads

+

Element Pads

@@ -290,6 +290,6 @@ the center frequency, band width and gain. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-esdsink.html b/docs/plugins/html/gst-plugins-good-plugins-esdsink.html index f387596..756035f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-esdsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-esdsink.html @@ -3,12 +3,12 @@ esdsink - + - + @@ -64,39 +64,10 @@

Description

-

-This element outputs sound to an already-running Enlightened Sound Daemon -(ESound Daemon, esd). Note that a sound daemon will never be auto-spawned -through this element (regardless of the system configuration), since this -is actively prevented by the element. If you must use esd, you need to -make sure it is started automatically with your session or otherwise. -

-

-TODO: insert some comments about how sucky esd is and that all the cool -kids use pulseaudio or whatever these days. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch -v filesrc location=foo.ogg ! decodebin ! audioconvert ! audioresample ! esdsink
-
- play an Ogg/Vorbis audio file via esd -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -119,7 +90,7 @@ kids use pulseaudio or whatever these days.
-

Element Pads

+

Element Pads

@@ -168,13 +139,9 @@ kids use pulseaudio or whatever these days.

Default value: NULL

- + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html index 671b2aa..2b22282 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html @@ -3,12 +3,12 @@ flacdec - + - + @@ -53,44 +53,10 @@

Description

-

-flacdec decodes FLAC streams. -FLAC -is a Free Lossless Audio Codec. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch filesrc location=media/small/dark.441-16-s.flac ! flacdec ! audioconvert ! audioresample ! autoaudiosink
-
- -
- - - - - - - -
1
gst-launch gnomevfssrc location=http://gstreamer.freedesktop.org/media/small/dark.441-16-s.flac ! flacdec ! audioconvert ! audioresample ! queue min-threshold-buffers=10 ! autoaudiosink
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -113,7 +79,7 @@ is a Free Lossless Audio Codec.
-

Element Pads

+

Element Pads

@@ -170,13 +136,9 @@ is a Free Lossless Audio Codec.

-
-

See Also

-GstFlacEnc -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html index 741dc75..1f9fb26 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html @@ -3,12 +3,12 @@ flacenc - + - + @@ -52,7 +52,8 @@ GObject +----GstObject +----GstElement - +----GstFlacEnc + +----GstAudioEncoder + +----GstFlacEnc
@@ -83,33 +84,10 @@ GstFlacEnc implements

Description

-

-flacenc encodes FLAC streams. -FLAC -is a Free Lossless Audio Codec. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch audiotestsrc num-buffers=100 ! flacenc ! filesink location=beep.flac
-
- -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -132,7 +110,7 @@ is a Free Lossless Audio Codec.
-

Element Pads

+

Element Pads

@@ -299,32 +277,21 @@ is a Free Lossless Audio Codec.

The "padding" property

  "padding"                  guint                 : Read / Write / Construct
-

-Write a PADDING block with this length in bytes -

+

Write a PADDING block with this length in bytes.

Default value: 0

-

Since 0.10.16


The "seekpoints" property

  "seekpoints"               gint                  : Read / Write / Construct
-

-Write a SEEKTABLE block with a specific number of seekpoints -or with a specific interval spacing. -

+

Add SEEKTABLE metadata (if > 0, number of entries, if < 0, interval in sec).

Allowed values: >= -2147483647

Default value: 0

-

Since 0.10.18

-
-
-

See Also

-GstFlacDec
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html index ed3a143..fd3d7d9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html @@ -3,12 +3,12 @@ flacparse - + - + @@ -50,7 +50,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstFlacParse @@ -79,7 +79,7 @@ format file to an ogg bitstream.

-

Example pipelines

+

Example pipelines

@@ -101,7 +101,7 @@ buffer has the timestamp, duration, offset, and offset_end set.

Synopsis

-

Element Information

+

Element Information

@@ -124,7 +124,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
-

Element Pads

+

Element Pads

@@ -142,7 +142,7 @@ buffer has the timestamp, duration, offset, and offset_end set. - +

details

audio/x-flac, framed=(boolean)falseaudio/x-flac
@@ -197,6 +197,6 @@ flacdec, oggdemux, vorbisparse
+ Generated by GTK-Doc V1.18
\ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html index 86c5dc9..f6b80bd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html @@ -3,12 +3,12 @@ flactag - + - + @@ -61,41 +61,10 @@ GstFlacTag implements

Description

-

-The flactag element can change the tag contained within a raw -FLAC stream. Specifically, it modifies the comments header packet -of the FLAC stream. -

-

-Applications can set the tags to write using the GstTagSetter interface. -Tags contained withing the FLAC bitstream will be picked up -automatically (and merged according to the merge mode set via the tag -setter interface). -

-

-

-
-

Example pipelines

-
- - - - - - - -
1
gst-launch -v filesrc location=foo.flac ! flactag ! filesink location=bar.flac
-
- This element is not useful with gst-launch, because it does not support -setting the tags on a GstTagSetter interface. Conceptually, the element -will usually be used in this order though. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -118,7 +87,7 @@ will usually be used in this order though.
-

Element Pads

+

Element Pads

@@ -175,13 +144,9 @@ will usually be used in this order though.

-
-

See Also

-flacenc, flacdec, GstTagSetter -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html index 5ed0711..72434be 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html @@ -3,12 +3,12 @@ flvdemux - + - + @@ -59,7 +59,7 @@ flvdemux demuxes an FLV file into the different contained streams.

-

Example launch line

+

Example launch line

@@ -77,7 +77,7 @@ flvdemux demuxes an FLV file into the different contained streams.

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +100,7 @@ flvdemux demuxes an FLV file into the different contained streams.
-

Element Pads

+

Element Pads

@@ -147,7 +147,7 @@ flvdemux demuxes an FLV file into the different contained streams. - + @@ -229,6 +229,6 @@ flvdemux demuxes an FLV file into the different contained streams. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html index 0b5d2bb..445df1e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html @@ -3,12 +3,12 @@ flvmux - + - + @@ -76,7 +76,7 @@ flvmux muxes different streams into an FLV file.

-

Example launch line

+

Example launch line

audio/mpeg, mpegversion=(int)4, framed=(boolean)true audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true

@@ -94,7 +94,7 @@ flvmux muxes different streams into an FLV file.

Synopsis

-

Element Information

+

Element Information

@@ -117,7 +117,7 @@ flvmux muxes different streams into an FLV file.
-

Element Pads

+

Element Pads

@@ -143,7 +143,11 @@ flvmux muxes different streams into an FLV file. - + + + + + @@ -266,6 +270,6 @@ duration) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html index 05abea5..0097c85 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html @@ -3,12 +3,12 @@ flxdec - + - + @@ -59,7 +59,7 @@ This element decodes fli/flc/flx-video into raw video

Synopsis

-

Element Information

+

Element Information

audio/mpeg, mpegversion=(int)4, framed=(boolean)true audio/mpeg, mpegversion=(int)2, framed=(boolean)true

audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true

@@ -82,7 +82,7 @@ This element decodes fli/flc/flx-video into raw video
-

Element Pads

+

Element Pads

@@ -142,6 +142,6 @@ This element decodes fli/flc/flx-video into raw video + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html index 78b2934..0abcee6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html @@ -3,12 +3,12 @@ gamma - + - + @@ -69,7 +69,7 @@ Performs gamma correction on a video stream.

-

Example launch line

+

Example launch line

@@ -101,7 +101,7 @@ Last reviewed on 2010-04-18 (0.10.22)

Synopsis

-

Element Information

+

Element Information

@@ -113,7 +113,7 @@ Last reviewed on 2010-04-18 (0.10.22) - + @@ -124,7 +124,7 @@ Last reviewed on 2010-04-18 (0.10.22)
-

Element Pads

+

Element Pads

author

Arwed v. Merkatz <v.merkatz@gmx.netArwed v. Merkatz <v.merkatz@gmx.net>

class

@@ -363,6 +363,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosink.html index 77a9d0f..6ac779b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosink.html @@ -3,12 +3,12 @@ gconfaudiosink - + - + @@ -71,32 +71,10 @@ GstGConfAudioSink implements

Description

-

-This element outputs sound to the audiosink that has been configured in -GConf by the user. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch filesrc location=foo.ogg ! decodebin ! audioconvert ! audioresample ! gconfaudiosink
-
- Play on configured audiosink -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -119,7 +97,7 @@ GConf by the user.
-

Element Pads

+

Element Pads

@@ -146,6 +124,6 @@ GConf by the user.

+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosrc.html index 0d80f25..8700a51 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gconfaudiosrc.html @@ -3,12 +3,12 @@ gconfaudiosrc - + - + @@ -63,32 +63,10 @@ GstGConfAudioSrc implements

Description

-

-This element records sound from the audiosink that has been configured in -GConf by the user. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch gconfaudiosrc ! audioconvert ! wavenc ! filesink location=record.wav
-
- Record from configured audioinput -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +89,7 @@ GConf by the user.
-

Element Pads

+

Element Pads

@@ -126,13 +104,9 @@ GConf by the user.

- + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gconfvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-gconfvideosink.html index 0a45445..652393e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gconfvideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gconfvideosink.html @@ -3,12 +3,12 @@ gconfvideosink - + - + @@ -63,32 +63,10 @@ GstGConfVideoSink implements

Description

-

-This element outputs video to the videosink that has been configured in -GConf by the user. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch filesrc location=foo.ogg ! decodebin ! ffmpegcolorspace ! gconfvideosink
-
- Play on configured videosink -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +89,7 @@ GConf by the user.
-

Element Pads

+

Element Pads

@@ -129,6 +107,6 @@ GConf by the user.

+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gconfvideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-gconfvideosrc.html index ba41ced..763706e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gconfvideosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gconfvideosrc.html @@ -3,12 +3,12 @@ gconfvideosrc - + - + @@ -63,32 +63,10 @@ GstGConfVideoSrc implements

Description

-

-This element records video from the videosink that has been configured in -GConf by the user. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch gconfvideosrc ! theoraenc ! oggmux ! filesink location=record.ogg
-
- Record from configured videoinput -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -111,7 +89,7 @@ GConf by the user.
-

Element Pads

+

Element Pads

@@ -126,13 +104,9 @@ GConf by the user.

- + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html index d520af6..c5a6beb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html @@ -3,12 +3,12 @@ gdkpixbufsink - + - + @@ -65,97 +65,10 @@

Description

-

-This sink element takes RGB or RGBA images as input and wraps them into -GdkPixbuf objects, for easy saving to file via the -GdkPixbuf library API or displaying in Gtk+ applications (e.g. using -the GtkImage widget). -

-

-There are two ways to use this element and obtain the GdkPixbuf objects -created: -

-
    -
  • -Watching for element messages named "preroll-pixbuf" - or "pixbuf" on the bus, which -will be posted whenever an image would usually be rendered. See below for -more details on these messages and how to extract the pixbuf object -contained in them. -
  • -
  • -Retrieving the current pixbuf via the "last-pixbuf" property -when needed. -
  • -
-

-

-

-The primary purpose of this element is to abstract away the GstBuffer to -GdkPixbuf conversion. Other than that it's very similar to the fakesink -element. -

-

-This element is meant for easy no-hassle video snapshotting. It is not -suitable for video playback or video display at high framerates. Use -ximagesink, xvimagesink or some other suitable video sink in connection -with the GstXOverlay interface instead if you want to do video playback. -

-

-

-
-

Message details

-As mentioned above, this element will by default post element messages -containing structures named "preroll-pixbuf" - or "pixbuf" on the bus (this -can be disabled by setting the "post-messages" property -to FALSE though). The element message structure has the following fields: -
    -
  • -"pixbuf": the GdkPixbuf object -
  • -
  • -"pixel-aspect-ratio": the pixel aspect - ratio (PAR) of the input image (this field contains a GstFraction); the - PAR is usually 1:1 for images, but is often something non-1:1 in the case - of video input. In this case the image may be distorted and you may need - to rescale it accordingly before saving it to file or displaying it. This - can easily be done using gdk_pixbuf_scale() (the reason this is not done - automatically is that the application will often scale the image anyway - according to the size of the output window, in which case it is much more - efficient to only scale once rather than twice). You can put a videoscale - element and a capsfilter element with - video/x-raw-rgb,pixel-aspect-ratio=(fraction)1/1 caps - in front of this element to make sure the pixbufs always have a 1:1 PAR. -
  • -
-
-

-

-

-

-
-

Example pipeline

-
-
- - - - - - -
1
gst-launch -m -v videotestsrc num-buffers=1 ! gdkpixbufsink
-
- Process one single test image as pixbuf (note that the output you see will -be slightly misleading. The message structure does contain a valid pixbuf -object even if the structure string says '(NULL)'). -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -178,7 +91,7 @@ object even if the structure string says '(NULL)').
-

Element Pads

+

Element Pads

@@ -215,7 +128,6 @@ object even if the structure string says '(NULL)').

struct GstGdkPixbufSink

struct GstGdkPixbufSink;

-Opaque element structure.

@@ -244,6 +156,6 @@ Opaque element structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html index 033a63b..4eb2a9c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html @@ -3,12 +3,12 @@ goom - + - + @@ -60,7 +60,7 @@ based on the incoming audio signal.

-

Example launch line

+

Example launch line

@@ -78,7 +78,7 @@ based on the incoming audio signal.

Synopsis

-

Element Information

+

Element Information

@@ -101,7 +101,7 @@ based on the incoming audio signal.
-

Element Pads

+

Element Pads

@@ -165,6 +165,6 @@ synaesthesia + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html index 55bc465..761a708 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html @@ -3,12 +3,12 @@ goom2k1 - + - + @@ -61,7 +61,7 @@ visualisation. Also available is goom2k4, with a different look.

-

Example launch line

+

Example launch line

@@ -79,7 +79,7 @@ visualisation. Also available is goom2k4, with a different look.

Synopsis

-

Element Information

+

Element Information

@@ -102,7 +102,7 @@ visualisation. Also available is goom2k4, with a different look.
-

Element Pads

+

Element Pads

@@ -166,6 +166,6 @@ goom, synaesthesia + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gstrtpbin.html b/docs/plugins/html/gst-plugins-good-plugins-gstrtpbin.html index 906baa6..599ff85 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gstrtpbin.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gstrtpbin.html @@ -3,12 +3,12 @@ gstrtpbin - + - + @@ -75,6 +75,8 @@ GstRtpBin implements "buffer-mode" RTPJitterBufferMode : Read / Write "ntp-sync" gboolean : Read / Write "use-pipeline-clock" gboolean : Read / Write + "rtcp-sync" GstRTCPSync : Read / Write + "rtcp-sync-interval" guint : Read / Write
@@ -152,7 +154,7 @@ internal source and other sources.

-

Example pipelines

+

Example pipelines

@@ -249,7 +251,7 @@ Last reviewed on 2007-08-30 (0.10.6)

Synopsis

-

Element Information

+

Element Information

@@ -272,7 +274,7 @@ Last reviewed on 2007-08-30 (0.10.6)
-

Element Pads

+

Element Pads

@@ -469,6 +471,20 @@ Last reviewed on 2007-08-30 (0.10.6)

Use the pipeline clock to set the NTP time in the RTCP SR messages.

Default value: FALSE

+
+
+

The "rtcp-sync" property

+
  "rtcp-sync"                GstRTCPSync           : Read / Write
+

Use of RTCP SR in synchronization.

+

Default value: always

+
+
+
+

The "rtcp-sync-interval" property

+
  "rtcp-sync-interval"       guint                 : Read / Write
+

RTCP SR interval synchronization (ms) (0 = always).

+

Default value: 0

+

Signal Details

@@ -937,6 +953,6 @@ gstrtpjitterbuffer, gstrtpsession, gstrtpptdemux, gstrtpssrcdemux
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html index 8725da0..c16474e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gstrtpjitterbuffer.html @@ -3,12 +3,12 @@ gstrtpjitterbuffer - + - + @@ -61,7 +61,7 @@ "do-lost" gboolean : Read / Write "drop-on-latency" gboolean : Read / Write "latency" guint : Read / Write - "ts-offset" gint64 : Read / Write + "ts-offset" gint64 : Read / Write "mode" RTPJitterBufferMode : Read / Write "percent" gint : Read @@ -100,7 +100,7 @@ This element will automatically be used inside gstrtpbin.

-

Example pipelines

+

Example pipelines

@@ -123,7 +123,7 @@ Last reviewed on 2007-05-28 (0.10.5)

Synopsis

-

Element Information

+

Element Information

@@ -146,7 +146,7 @@ Last reviewed on 2007-05-28 (0.10.5)
-

Element Pads

+

Element Pads

@@ -250,7 +250,7 @@ Opaque jitterbuffer structure.

The "ts-offset" property

-
  "ts-offset"                gint64                : Read / Write
+
  "ts-offset"                gint64                : Read / Write

Adjust buffer timestamps with offset in nanoseconds.

Default value: 0

@@ -374,9 +374,9 @@ Request the payload type as

The "set-active" signal

-
guint64             user_function                      (GstRtpJitterBuffer *buffer,
+
guint64             user_function                      (GstRtpJitterBuffer *buffer,
                                                         gboolean            Returns,
-                                                        guint64             arg2,
+                                                        guint64             arg2,
                                                         gpointer            user_data)      : Action

Start pushing out packets with the given base time. This signal is only @@ -405,6 +405,6 @@ useful in buffering mode.

+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gstrtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-gstrtpptdemux.html index c38c1c5..e02f8d5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gstrtpptdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gstrtpptdemux.html @@ -3,12 +3,12 @@ gstrtpptdemux - + - + @@ -83,7 +83,7 @@ outgoing buffers and pads based on the result of the

-

Example pipelines

+

Example pipelines

@@ -105,7 +105,7 @@ Last reviewed on 2007-05-28 (0.10.5)

Synopsis

-

Element Information

+

Element Information

@@ -128,7 +128,7 @@ Last reviewed on 2007-05-28 (0.10.5)
-

Element Pads

+

Element Pads

@@ -299,6 +299,6 @@ Request the payload type as
- Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gstrtpsession.html b/docs/plugins/html/gst-plugins-good-plugins-gstrtpsession.html index 1b0b1ce..33511f8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gstrtpsession.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gstrtpsession.html @@ -3,12 +3,12 @@ gstrtpsession - + - + @@ -60,7 +60,7 @@
   "bandwidth"                gdouble               : Read / Write
   "internal-session"         RTPSession*           : Read
-  "ntp-ns-base"              guint64               : Read / Write
+  "ntp-ns-base"              guint64               : Read / Write
   "num-active-sources"       guint                 : Read
   "num-sources"              guint                 : Read
   "rtcp-fraction"            gdouble               : Read / Write
@@ -68,7 +68,7 @@
   "rtcp-rr-bandwidth"        gint                  : Read / Write
   "rtcp-rs-bandwidth"        gint                  : Read / Write
   "use-pipeline-clock"       gboolean              : Read / Write
-  "rtcp-min-interval"        guint64               : Read / Write
+  "rtcp-min-interval"        guint64               : Read / Write
 
@@ -146,7 +146,7 @@ signal.

-

Example pipelines

+

Example pipelines

@@ -219,7 +219,7 @@ Last reviewed on 2007-05-28 (0.10.5)

Synopsis

-

Element Information

+

Element Information

@@ -242,7 +242,7 @@ Last reviewed on 2007-05-28 (0.10.5)
-

Element Pads

+

Element Pads

@@ -422,7 +422,7 @@ Last reviewed on 2007-05-28 (0.10.5)

The "ntp-ns-base" property

-
  "ntp-ns-base"              guint64               : Read / Write
+
  "ntp-ns-base"              guint64               : Read / Write

The NTP base time corresponding to running_time 0 (deprecated).

Default value: 0

@@ -480,7 +480,7 @@ Last reviewed on 2007-05-28 (0.10.5)

The "rtcp-min-interval" property

-
  "rtcp-min-interval"        guint64               : Read / Write
+
  "rtcp-min-interval"        guint64               : Read / Write

Minimum interval between Regular RTCP packet (in ns).

Default value: 5000000000

@@ -771,6 +771,6 @@ gstrtpjitterbuffer, gstrtpbin, gstrtpptdemux, gstrtpssrcdemux + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-gstrtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-gstrtpssrcdemux.html index df98de4..c1e2c51 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gstrtpssrcdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gstrtpssrcdemux.html @@ -3,12 +3,12 @@ gstrtpssrcdemux - + - + @@ -75,7 +75,7 @@ For each SSRC that is detected, a new pad will be created and the

-

Example pipelines

+

Example pipelines

@@ -97,7 +97,7 @@ Last reviewed on 2007-05-28 (0.10.5)

Synopsis

-

Element Information

+

Element Information

@@ -120,7 +120,7 @@ Last reviewed on 2007-05-28 (0.10.5)
-

Element Pads

+

Element Pads

@@ -315,6 +315,6 @@ Emited when a SSRC pad has been removed. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-halaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-halaudiosink.html index 0e5249c..e079f25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-halaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-halaudiosink.html @@ -3,12 +3,12 @@ halaudiosink - + - + @@ -70,47 +70,10 @@ GstHalAudioSink implements

Description

-

-HalAudioSink allows access to output of sound devices by specifying the -corresponding persistent Unique Device Id (UDI) from the Hardware Abstraction -Layer (HAL) in the "udi" property. -It currently always embeds alsasink or osssink as HAL doesn't support other -sound systems yet. You can also specify the UDI of a device that has ALSA or -OSS subdevices. If both are present ALSA is preferred. -

-

-

-
-

Examples

-
-
- - - - - - -
1
hal-find-by-property --key alsa.type --string playback
-
- list the UDIs of all your ALSA output devices -
- - - - - - - -
1
gst-launch -v audiotestsrc ! halaudiosink udi=/org/freedesktop/Hal/devices/pci_8086_27d8_alsa_playback_0
-
- test your soundcard by playing a test signal on the specified sound device. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -133,7 +96,7 @@ OSS subdevices. If both are present ALSA is preferred.
-

Element Pads

+

Element Pads

@@ -181,6 +144,6 @@ OSS subdevices. If both are present ALSA is preferred. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-halaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-halaudiosrc.html index 7cc639d..88f0449 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-halaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-halaudiosrc.html @@ -3,12 +3,12 @@ halaudiosrc - + - + @@ -70,48 +70,10 @@ GstHalAudioSrc implements

Description

-

-HalAudioSrc allows access to input of sound devices by specifying the -corresponding persistent Unique Device Id (UDI) from the Hardware Abstraction -Layer (HAL) in the "udi" property. -It currently always embeds alsasrc or osssrc as HAL doesn't support other -sound systems yet. You can also specify the UDI of a device that has ALSA or -OSS subdevices. If both are present ALSA is preferred. -

-

-

-
-

Examples

-
-
- - - - - - -
1
hal-find-by-property --key alsa.type --string capture
-
- list the UDIs of all your ALSA input devices -
- - - - - - - -
1
gst-launch -v halaudiosrc udi=/org/freedesktop/Hal/devices/pci_8086_27d8_alsa_capture_0 ! autoaudiosink
-
- You should now hear yourself with a small delay if you have a microphone -connected to the specified sound device. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -134,7 +96,7 @@ connected to the specified sound device.
-

Element Pads

+

Element Pads

@@ -182,6 +144,6 @@ connected to the specified sound device. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html index 86d2d00..3e6882d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html @@ -3,12 +3,12 @@ hdv1394src - + - + @@ -68,49 +68,17 @@ GstHDV1394Src implements
   "channel"                  gint                  : Read / Write
   "device-name"              gchar*                : Read
-  "guid"                     guint64               : Read / Write
+  "guid"                     guint64               : Read / Write
   "port"                     gint                  : Read / Write
   "use-avc"                  gboolean              : Read / Write
 

Description

-

-Read MPEG-TS data from firewire port. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch hdv1394src ! queue ! decodebin name=d ! queue ! xvimagesink d. ! queue ! alsasink
-
- captures from the firewire port and plays the streams. -
- - - - - - - -
1
gst-launch hdv1394src ! queue ! filesink location=mydump.ts
-
- capture to a disk file -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -133,7 +101,7 @@ Read MPEG-TS data from firewire port.
-

Element Pads

+

Element Pads

@@ -182,16 +150,13 @@ Read MPEG-TS data from firewire port.

The "device-name" property

  "device-name"              gchar*                : Read
-

-Descriptive name of the currently opened device -

+

user-friendly name of the device.

Default value: "Default"

-

Since 0.10.7


The "guid" property

-
  "guid"                     guint64               : Read / Write
+
  "guid"                     guint64               : Read / Write

select one of multiple DV devices by its GUID. use a hexadecimal like 0xhhhhhhhhhhhhhhhh. (0 = no guid).

Default value: 0

@@ -214,6 +179,6 @@ Descriptive name of the currently opened device + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html index cb2e4d1..78c80db 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html @@ -3,12 +3,12 @@ icydemux - + - + @@ -63,7 +63,7 @@ on outgoing buffers.

-

Example launch line

+

Example launch line

@@ -84,7 +84,7 @@ or giosrc instead of souphttpsrc should also work.)

Synopsis

-

Element Information

+

Element Information

@@ -107,7 +107,7 @@ or giosrc instead of souphttpsrc should also work.)
-

Element Pads

+

Element Pads

@@ -167,6 +167,6 @@ or giosrc instead of souphttpsrc should also work.) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html index 577f31a..86e7d04 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html @@ -3,12 +3,12 @@ id3demux - + - + @@ -82,7 +82,7 @@ relied on libid3tag from the MAD project.

-

Example launch line

+

Example launch line

@@ -102,7 +102,7 @@ the appropriate mime type set on buffers produced from id3demux.

Synopsis

-

Element Information

+

Element Information

@@ -125,7 +125,7 @@ the appropriate mime type set on buffers produced from id3demux.
-

Element Pads

+

Element Pads

@@ -194,6 +194,6 @@ the appropriate mime type set on buffers produced from id3demux. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html index dc84e96..d76260e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html @@ -3,12 +3,12 @@ id3v2mux - + - + @@ -62,52 +62,10 @@ GstId3v2Mux implements

Description

-

-This element adds ID3v2 tags to the beginning of a stream using the taglib -library. More precisely, the tags written are ID3 version 2.4.0 tags (which -means in practice that some hardware players or outdated programs might not -be able to read them properly). -

-

-Applications can set the tags to write using the GstTagSetter interface. -Tags sent by upstream elements will be picked up automatically (and merged -according to the merge mode set via the tag setter interface). -

-

-

-
-

Example pipelines

-
-
- - - - - - -
1
gst-launch -v filesrc location=foo.ogg ! decodebin ! audioconvert ! lame ! id3v2mux ! filesink location=foo.mp3
-
- A pipeline that transcodes a file from Ogg/Vorbis to mp3 format with an -ID3v2 that contains the same as the the Ogg/Vorbis file. Make sure the -Ogg/Vorbis file actually has comments to preserve. -
- - - - - - - -
1
gst-launch -m filesrc location=foo.mp3 ! id3demux ! fakesink silent=TRUE 2> /dev/null | grep taglist
-
- Verify that tags have been written. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -130,7 +88,7 @@ Ogg/Vorbis file actually has comments to preserve.
-

Element Pads

+

Element Pads

@@ -187,13 +145,9 @@ Ogg/Vorbis file actually has comments to preserve.

-
-

See Also

-GstID3Demux, GstTagSetter -
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html index e6b03e9..3e3637c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html @@ -3,12 +3,12 @@ imagefreeze - + - + @@ -61,7 +61,7 @@ by downstream, allows seeking and answers queries.

-

Example launch line

+

Example launch line

@@ -79,7 +79,7 @@ by downstream, allows seeking and answers queries.

Synopsis

-

Element Information

+

Element Information

@@ -102,7 +102,7 @@ by downstream, allows seeking and answers queries.
-

Element Pads

+

Element Pads

@@ -178,6 +178,6 @@ by downstream, allows seeking and answers queries. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html index 73391f0..bd7ec7b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html @@ -3,12 +3,12 @@ interleave - + - + @@ -81,7 +81,7 @@ The channel number of every sinkpad in the out can be retrieved from the "channe

-

Example launch line

+

Example launch line

@@ -112,7 +112,7 @@ channels exchanged.

Synopsis

-

Element Information

+

Element Information

@@ -135,7 +135,7 @@ channels exchanged.
-

Element Pads

+

Element Pads

@@ -238,6 +238,6 @@ deinterleave + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html index b9bcb93..0e5ebc7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html @@ -3,12 +3,12 @@ ismlmux - + - + @@ -96,7 +96,7 @@ presentation-timestamp.

-

Example pipelines

+

Example pipelines

@@ -119,7 +119,7 @@ Documentation last reviewed on 2011-04-21

Synopsis

-

Element Information

+

Element Information

@@ -142,7 +142,7 @@ Documentation last reviewed on 2011-04-21
-

Element Pads

+

Element Pads

@@ -214,7 +214,7 @@ Documentation last reviewed on 2011-04-21 - +

details

video/quicktime, variant=(string)isovideo/quicktime, variant=(string)iso-fragmented
@@ -229,6 +229,6 @@ Documentation last reviewed on 2011-04-21
+ Generated by GTK-Doc V1.18
\ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html index cbde74f..0b4cb8e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html @@ -3,12 +3,12 @@ jackaudiosink - + - + @@ -61,63 +61,15 @@ "client" JackClient* : Read / Write "connect" GstJackConnect : Read / Write "server" gchar* : Read / Write + "client-name" gchar* : Read / Write

Description

-

-A Sink that outputs data to Jack ports. -

-

-It will create N Jack ports named out_<name>_<num> where -<name> is the element name and <num> is starting from 1. -Each port corresponds to a gstreamer channel. -

-

-The samplerate as exposed on the caps is always the same as the samplerate of -the jack server. -

-

-When the "connect" property is set to auto, this element -will try to connect each output port to a random physical jack input pin. In -this mode, the sink will expose the number of physical channels on its pad -caps. -

-

-When the "connect" property is set to none, the element will -accept any number of input channels and will create (but not connect) an -output port for each channel. -

-

-The element will generate an error when the Jack server is shut down when it -was PAUSED or PLAYING. This element does not support dynamic rate and buffer -size changes at runtime. -

-

-

-
-

Example launch line

-
- - - - - - - -
1
gst-launch audiotestsrc ! jackaudiosink
-
- Play a sine wave to using jack. -
-

-

-

-Last reviewed on 2006-11-30 (0.10.4) -

Synopsis

-

Element Information

+

Element Information

@@ -140,7 +92,7 @@ Last reviewed on 2006-11-30 (0.10.4)
-

Element Pads

+

Element Pads

@@ -173,7 +125,6 @@ Last reviewed on 2006-11-30 (0.10.4)

struct GstJackAudioSink

struct GstJackAudioSink;

-Opaque GstJackAudioSink.

@@ -198,14 +149,17 @@ Opaque +

The "client-name" property

+
  "client-name"              gchar*                : Read / Write
+

The client name of the Jack instance (NULL = default).

+

Default value: NULL

- + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html index f854044..09f9bf9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html @@ -3,12 +3,12 @@ jackaudiosrc - + - + @@ -62,61 +62,15 @@ "client" JackClient* : Read / Write "connect" GstJackConnect : Read / Write "server" gchar* : Read / Write + "client-name" gchar* : Read / Write

Description

-

-A Src that inputs data from Jack ports. -

-

-It will create N Jack ports named in_<name>_<num> where -<name> is the element name and <num> is starting from 1. -Each port corresponds to a gstreamer channel. -

-

-The samplerate as exposed on the caps is always the same as the samplerate of -the jack server. -

-

-When the "connect" property is set to auto, this element -will try to connect each input port to a random physical jack output pin. -

-

-When the "connect" property is set to none, the element will -accept any number of output channels and will create (but not connect) an -input port for each channel. -

-

-The element will generate an error when the Jack server is shut down when it -was PAUSED or PLAYING. This element does not support dynamic rate and buffer -size changes at runtime. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch jackaudiosrc connect=0 ! jackaudiosink connect=0
-
- Get audio input into gstreamer from jack. -
-

-

-

-Last reviewed on 2008-07-22 (0.10.4) -

Synopsis

-

Element Information

+

Element Information

@@ -139,7 +93,7 @@ Last reviewed on 2008-07-22 (0.10.4)
-

Element Pads

+

Element Pads

@@ -196,14 +150,17 @@ Last reviewed on 2008-07-22 (0.10.4)

The Jack server to connect to (NULL = default).

Default value: NULL

+
+
+

The "client-name" property

+
  "client-name"              gchar*                : Read / Write
+

The client name of the Jack instance (NULL = default).

+

Default value: NULL

- + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html index 58aee0e..5a1170a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html @@ -3,12 +3,12 @@ jpegdec - + - + @@ -62,32 +62,10 @@

Description

-

-Decodes jpeg images. -

-

-

-
-

Example launch line

-
-
- - - - - - -
1
gst-launch -v v4l2src ! jpegdec ! ffmpegcolorspace ! xvimagesink
-
- The above pipeline reads a motion JPEG stream from a v4l2 camera -and renders it to the screen. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -110,7 +88,7 @@ and renders it to the screen.
-

Element Pads

+

Element Pads

@@ -128,7 +106,7 @@ and renders it to the screen. - +

details

image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ]image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ], sof-marker=(int){ 0, 1, 2, 5, 6, 7, 9, 10, 13, 14 }
@@ -207,18 +185,14 @@ and renders it to the screen.

The "max-errors" property

  "max-errors"               gint                  : Read / Write
-

-Error out after receiving N consecutive decoding errors -(-1 = never error out, 0 = automatic, 1 = fail on first error, etc.) -

+

Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).

Allowed values: >= G_MAXULONG

Default value: 0

-

Since 0.10.27

+ Generated by GTK-Doc V1.18
\ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html index 218f586..a041769 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html @@ -3,12 +3,12 @@ jpegenc - + - + @@ -70,32 +70,10 @@

Description

-

-Encodes jpeg images. -

-

-

-
-

Example launch line

-
- - - - - - - -
1
gst-launch videotestsrc num-buffers=50 ! video/x-raw-yuv, framerate='(fraction)'5/1 ! jpegenc ! avimux ! filesink location=mjpeg.avi
-
- a pipeline to mux 5 JPEG frames per second into a 10 sec. long motion jpeg -avi. -
-

-

Synopsis

-

Element Information

+

Element Information

@@ -118,7 +96,7 @@ avi.
-

Element Pads

+

Element Pads

@@ -246,6 +224,6 @@ avi. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html index 08ad9ab..e9a3841 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-level.html @@ -3,12 +3,12 @@ level - + - + @@ -57,10 +57,10 @@

Properties

-  "interval"                 guint64               : Read / Write
+  "interval"                 guint64               : Read / Write
   "message"                  gboolean              : Read / Write
   "peak-falloff"             gdouble               : Read / Write
-  "peak-ttl"                 guint64               : Read / Write
+  "peak-ttl"                 guint64               : Read / Write
 
@@ -126,7 +126,7 @@ The message's structure contains these fields:

-

Example application

+

Example application

@@ -400,7 +400,7 @@ The message's structure contains these fields:

Synopsis

-

Element Information

+

Element Information

@@ -423,7 +423,7 @@ The message's structure contains these fields:
-

Element Pads

+

Element Pads

@@ -493,7 +493,7 @@ Opaque data structure.

Property Details

The "interval" property

-
  "interval"                 guint64               : Read / Write
+
  "interval"                 guint64               : Read / Write

Interval of time between message posts (in nanoseconds).

Allowed values: >= 1

Default value: 100000000

@@ -516,7 +516,7 @@ Opaque data structure.

The "peak-ttl" property

-
  "peak-ttl"                 guint64               : Read / Write
+
  "peak-ttl"                 guint64               : Read / Write

Time To Live of decay peak before it falls back (in nanoseconds).

Default value: 300000000

@@ -524,6 +524,6 @@ Opaque data structure.
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html index 42e5cdc..5a78918 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html @@ -3,12 +3,12 @@ matroskademux - + - + @@ -26,6 +26,8 @@ Description  |  Object Hierarchy +  |  + Properties
@@ -52,6 +54,12 @@
+

Properties

+
+  "max-gap-time"             guint64               : Read / Write
+
+
+

Description

matroskademux demuxes a Matroska file into the different contained streams. @@ -59,7 +67,7 @@ matroskademux demuxes a Matroska file into the different contained streams.

-

Example launch line

+

Example launch line

@@ -77,7 +85,7 @@ matroskademux demuxes a Matroska file into the different contained streams.

Synopsis

-

Element Information

+

Element Information

@@ -100,7 +108,7 @@ matroskademux demuxes a Matroska file into the different contained streams.
-

Element Pads

+

Element Pads

@@ -164,7 +172,7 @@ matroskademux demuxes a Matroska file into the different contained streams. - + @@ -231,9 +239,18 @@ matroskademux demuxes a Matroska file into the different contained streams.

+
+

Property Details

+
+

The "max-gap-time" property

+
  "max-gap-time"             guint64               : Read / Write
+

The demuxer sends out newsegment events for skipping gaps longer than this (0 = disabled).

+

Default value: 2000000000

+
+
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html index 30d94d2..6d291ef 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html @@ -3,12 +3,12 @@ matroskamux - + - + @@ -67,7 +67,7 @@ GstMatroskaMux implements
   "writing-app"              gchar*                : Read / Write
   "version"                  gint                  : Read / Write
-  "min-index-interval"       gint64                : Read / Write
+  "min-index-interval"       gint64                : Read / Write
   "streamable"               gboolean              : Read / Write
 
@@ -79,7 +79,7 @@ matroskamux muxes different input streams into a Matroska file.

-

Example launch line

+

Example launch line

details

text/plaintext/x-pango-markup

@@ -108,7 +108,7 @@ matroskamux muxes different input streams into a Matroska file.

Synopsis

-

Element Information

+

Element Information

@@ -131,7 +131,7 @@ matroskamux muxes different input streams into a Matroska file.
-

Element Pads

+

Element Pads

@@ -149,11 +149,11 @@ matroskamux muxes different input streams into a Matroska file. - + - + @@ -373,7 +373,7 @@ matroskamux muxes different input streams into a Matroska file.

The "min-index-interval" property

-
  "min-index-interval"       gint64                : Read / Write
+
  "min-index-interval"       gint64                : Read / Write

An index entry is created every so many nanoseconds.

Allowed values: >= 0

Default value: 0

@@ -389,6 +389,6 @@ matroskamux muxes different input streams into a Matroska file.
+ Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html index d531125..a140e73 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html @@ -3,12 +3,12 @@ mj2mux - + - + @@ -132,7 +132,7 @@ presentation-timestamp.

-

Example pipelines

+

Example pipelines

details

audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], stream-format=(string){ raw }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]

audio/mpeg, mpegversion=(int){ 2, 4 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ] audio/mpeg, mpegversion=(int){ 2, 4 }, stream-format=(string)raw, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]

@@ -155,7 +155,7 @@ Documentation last reviewed on 2011-04-21

Synopsis

-

Element Information

+

Element Information

@@ -178,7 +178,7 @@ Documentation last reviewed on 2011-04-21
-

Element Pads

+

Element Pads

@@ -333,6 +333,6 @@ Documentation last reviewed on 2011-04-21 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html index 2ba9dfd..8d5f4e3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html @@ -3,12 +3,12 @@ monoscope - + - + @@ -49,7 +49,7 @@ curve of the audio signal like on an oscilloscope.

-

Example launch line

+

Example launch line

@@ -67,7 +67,7 @@ curve of the audio signal like on an oscilloscope.

Synopsis

-

Element Information

+

Element Information

@@ -90,7 +90,7 @@ curve of the audio signal like on an oscilloscope.
-

Element Pads

+

Element Pads

@@ -185,6 +185,6 @@ goom + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html index 54b9489..96021e5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html @@ -3,12 +3,12 @@ mp4mux - + - + @@ -132,7 +132,7 @@ presentation-timestamp.

-

Example pipelines

+

Example pipelines

@@ -155,7 +155,7 @@ Documentation last reviewed on 2011-04-21

Synopsis

-

Element Information

+

Element Information

@@ -178,7 +178,7 @@ Documentation last reviewed on 2011-04-21
-

Element Pads

+

Element Pads

@@ -346,6 +346,6 @@ Documentation last reviewed on 2011-04-21 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html index b4af393..1d851dd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html @@ -3,12 +3,12 @@ mpegaudioparse - + - + @@ -48,7 +48,7 @@ GObject +----GstObject +----GstElement - +----GstBaseParse + +----GstBaseParse +----GstMpegAudioParse @@ -60,7 +60,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.

-

Example launch line

+

Example launch line

@@ -78,7 +78,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.

Synopsis

-

Element Information

+

Element Information

@@ -101,7 +101,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.
-

Element Pads

+

Element Pads

@@ -119,7 +119,7 @@ Parses and frames mpeg1 audio streams. Provides seeking. - +

details

audio/mpeg, mpegversion=(int)1, parsed=(boolean)falseaudio/mpeg, mpegversion=(int)1
@@ -140,7 +140,7 @@ Parses and frames mpeg1 audio streams. Provides seeking.

details

-audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true +audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], mpegaudioversion=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true
@@ -166,6 +166,6 @@ The opaque GstMpegAudioParse object
+ Generated by GTK-Doc V1.18
\ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html index 75ea865..ec30965 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html @@ -3,12 +3,12 @@ mulawdec - + - + @@ -59,7 +59,7 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.

Synopsis

-

Element Information

+

Element Information

@@ -82,7 +82,7 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711.
-

Element Pads

+

Element Pads

@@ -142,6 +142,6 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html index e6f29b9..5bde4d5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html @@ -3,12 +3,12 @@ mulawenc - + - + @@ -49,7 +49,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.

Synopsis

-

Element Information

+

Element Information

@@ -72,7 +72,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711.
-

Element Pads

+

Element Pads

@@ -147,6 +147,6 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html index a03abce..7e00d2a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html @@ -3,12 +3,12 @@ multifilesink - + - + @@ -42,6 +42,7 @@

Synopsis

struct              GstMultiFileSink;
+enum                GstMultiFileSinkNext;
 
@@ -59,8 +60,10 @@
   "location"                 gchar*                : Read / Write
   "index"                    gint                  : Read / Write
-  "next-file"                GstMultiFileSinkNext  : Read / Write
+  "next-file"                GstMultiFileSinkNext  : Read / Write
   "post-messages"            gboolean              : Read / Write
+  "max-files"                guint                 : Read / Write
+  "max-file-size"            guint64               : Read / Write
 
@@ -113,12 +116,12 @@ The message's structure contains these fields: the duration of the buffer.

  • - guint64 + guint64 "offset": the offset of the buffer that triggered the message.

  • - guint64 + guint64 "offset-end": the offset-end of the buffer that triggered the message.

  • @@ -128,7 +131,7 @@ The message's structure contains these fields:

    -

    Example launch line

    +

    Example launch line

    @@ -151,7 +154,7 @@ Last reviewed on 2009-09-11 (0.10.17)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -174,7 +177,7 @@ Last reviewed on 2009-09-11 (0.10.17)
    -

    Element Pads

    +

    Element Pads

    @@ -209,6 +212,54 @@ Last reviewed on 2009-09-11 (0.10.17)

    +
    +
    +

    enum GstMultiFileSinkNext

    +
    typedef enum {
    +  GST_MULTI_FILE_SINK_NEXT_BUFFER,
    +  GST_MULTI_FILE_SINK_NEXT_DISCONT,
    +  GST_MULTI_FILE_SINK_NEXT_KEY_FRAME,
    +  GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT,
    +  GST_MULTI_FILE_SINK_NEXT_MAX_SIZE
    +} GstMultiFileSinkNext;
    +
    +

    +File splitting modes. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    GST_MULTI_FILE_SINK_NEXT_BUFFER

    New file for each buffer +

    GST_MULTI_FILE_SINK_NEXT_DISCONT

    New file after each discontinuity +

    GST_MULTI_FILE_SINK_NEXT_KEY_FRAME

    New file at each key frame + (Useful for MPEG-TS segmenting) +

    GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT

    New file after a force key unit + event (Since: 0.10.31) +

    GST_MULTI_FILE_SINK_NEXT_MAX_SIZE

    New file when the configured maximum file + size would be exceeded with the next buffer or buffer list (Since: 0.10.31) +
    +

    Property Details

    @@ -229,7 +280,7 @@ Last reviewed on 2009-09-11 (0.10.17)

    The "next-file" property

    -
      "next-file"                GstMultiFileSinkNext  : Read / Write
    +
      "next-file"                GstMultiFileSinkNext  : Read / Write

    When to start a new file.

    @@ -246,6 +297,27 @@ Post a message on the GstBus for each file.

    Default value: FALSE

    Since 0.10.17

    +
    +
    +

    The "max-files" property

    +
      "max-files"                guint                 : Read / Write
    +

    +Maximum number of files to keep on disk. Once the maximum is reached, old +files start to be deleted to make room for new ones. +

    +

    Default value: 0

    +

    Since 0.10.31

    +
    +
    +
    +

    The "max-file-size" property

    +
      "max-file-size"            guint64               : Read / Write
    +

    +Maximum file size before starting a new file in max-size mode. +

    +

    Default value: 2147483648

    +

    Since 0.10.31

    +

    See Also

    @@ -254,6 +326,6 @@ Post a message on the GstBus for each file.
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html index 2700c78..a544344 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html @@ -3,12 +3,12 @@ multifilesrc - + - + @@ -61,6 +61,9 @@ "caps" GstCaps* : Read / Write "index" gint : Read / Write "location" gchar* : Read / Write + "loop" gboolean : Read / Write + "start-index" gint : Read / Write + "stop-index" gint : Read / Write
    @@ -77,7 +80,7 @@ File names are created by replacing "%d" with the index using -

    Example launch line

    +

    Example launch line

    @@ -100,7 +103,7 @@ files named img.0000.png, img.0001.png, etc.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -123,7 +126,7 @@ files named img.0000.png, img.0001.png, etc.
    -

    Element Pads

    +

    Element Pads

    @@ -181,6 +184,29 @@ files named img.0000.png, img.0001.png, etc.

    Pattern to create file names of input files. File names are created by calling sprintf() with the pattern and the current index.

    Default value: "%05d"

    +
    +
    +

    The "loop" property

    +
      "loop"                     gboolean              : Read / Write
    +

    Whether to repeat from the beginning when all files have been read.

    +

    Default value: FALSE

    +
    +
    +
    +

    The "start-index" property

    +
      "start-index"              gint                  : Read / Write
    +

    Start value of index. The initial value of index can be set either by setting index or start-index. When the end of the loop is reached, the index will be set to the value start-index.

    +

    Allowed values: >= 0

    +

    Default value: 0

    +
    +
    +
    +

    The "stop-index" property

    +
      "stop-index"               gint                  : Read / Write
    +

    Stop value of index. The special value -1 means no stop.

    +

    Allowed values: >= G_MAXULONG

    +

    Default value: 0

    +

    See Also

    @@ -189,6 +215,6 @@ files named img.0000.png, img.0001.png, etc.
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html index d391a21..390cdc2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html @@ -3,12 +3,12 @@ multipartdemux - + - + @@ -58,6 +58,7 @@
       "autoscan"                 gboolean              : Read / Write
       "boundary"                 gchar*                : Read / Write / Construct
    +  "single-stream"            gboolean              : Read / Write
     
    @@ -81,7 +82,7 @@ otherwise it will be autodetected.

    -

    Sample pipelines

    +

    Sample pipelines

    @@ -100,7 +101,7 @@ containing JPEG frames.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -123,7 +124,7 @@ containing JPEG frames.
    -

    Element Pads

    +

    Element Pads

    @@ -196,6 +197,13 @@ The opaque +

    The "single-stream" property

    +
      "single-stream"            gboolean              : Read / Write
    +

    Assume that there is only one stream whose content-type will not change and emit no-more-pads as soon as the first boundary content is parsed, decoded, and pads are linked.

    +

    Default value: FALSE

    +

    See Also

    @@ -204,6 +212,6 @@ The opaque
    - Generated by GTK-Doc V1.17
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html index d71dd04..18cfe17 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html @@ -3,12 +3,12 @@ multipartmux - + - + @@ -69,7 +69,7 @@ multipart streams are sequential JPEG frames.

    -

    Sample pipelines

    +

    Sample pipelines

    @@ -88,7 +88,7 @@ stored to a file.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -111,7 +111,7 @@ stored to a file.
    -

    Element Pads

    +

    Element Pads

    @@ -181,6 +181,6 @@ The opaque
    - Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html index 2d4590b..15784e7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html @@ -3,12 +3,12 @@ multiudpsink - + - + @@ -60,8 +60,8 @@

    Properties

    -  "bytes-served"             guint64               : Read
    -  "bytes-to-serve"           guint64               : Read
    +  "bytes-served"             guint64               : Read
    +  "bytes-to-serve"           guint64               : Read
       "clients"                  gchar*                : Read / Write
       "closefd"                  gboolean              : Read / Write
       "sock"                     gint                  : Read
    @@ -78,12 +78,12 @@
     
     
    @@ -96,7 +96,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -119,7 +119,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.
    -

    Element Pads

    +

    Element Pads

    @@ -159,14 +159,14 @@ It can be combined with rtp payload encoders to implement RTP streaming.

    Property Details

    The "bytes-served" property

    -
      "bytes-served"             guint64               : Read
    -

    Total number of bytes send to all clients.

    +
      "bytes-served"             guint64               : Read
    +

    Total number of bytes sent to all clients.

    Default value: 0


    The "bytes-to-serve" property

    -
      "bytes-to-serve"           guint64               : Read
    +
      "bytes-to-serve"           guint64               : Read

    Number of bytes received to serve to clients.

    Default value: 0

    @@ -261,7 +261,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.
    void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                             gchar           *host,
                                                             gint             port,
    -                                                        gpointer         user_data)            : Run Last
    + gpointer user_data) : Action

    Add a client with destination host and port to the list of clients. When the same host/port pair is added multiple times, the @@ -299,7 +299,7 @@ of destinations.

    The "clear" signal

    void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
    -                                                        gpointer         user_data)            : Run Last
    + gpointer user_data) : Action

    Clear the list of clients.

    @@ -389,7 +389,7 @@ clients.
    GValueArray*        user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                             gchar           *host,
                                                             gint             port,
    -                                                        gpointer         user_data)            : Run Last
    + gpointer user_data) : Action

    Get the statistics of the client with destination host and port.

    @@ -426,7 +426,7 @@ connect_time (in epoch seconds), disconnect_time (in epoch seconds)
    void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                             gchar           *host,
                                                             gint             port,
    -                                                        gpointer         user_data)            : Run Last
    + gpointer user_data) : Action

    Remove the client with destination host and port from the list of clients. @@ -461,6 +461,6 @@ udpsink, multifdsink

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html index 46ae880..288f740 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-optv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html @@ -3,12 +3,12 @@ optv - + - + @@ -73,7 +73,7 @@ various optical pattern.

    -

    Example launch line

    +

    Example launch line

    @@ -91,7 +91,7 @@ various optical pattern.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -114,7 +114,7 @@ various optical pattern.
    -

    Element Pads

    +

    Element Pads

    @@ -206,6 +206,6 @@ various optical pattern. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4mixer.html b/docs/plugins/html/gst-plugins-good-plugins-oss4mixer.html index ad48f95..5231619 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4mixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4mixer.html @@ -3,12 +3,12 @@ oss4mixer - + - + @@ -70,26 +70,10 @@ GstOss4Mixer implements

    Description

    -

    -This element lets you adjust sound input and output levels with the -Open Sound System (OSS) version 4. It supports the GstMixer interface, which -can be used to obtain a list of available mixer tracks. Set the mixer -element to READY state before using the GstMixer interface on it. -

    -

    -

    -
    -

    Example pipelines

    -

    -oss4mixer can't be used in a sensible way in gst-launch. -

    -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -112,7 +96,7 @@ oss4mixer can't be used in a sensible way in gst-launch.
    -

    Element Pads

    +

    Element Pads

    @@ -132,25 +116,20 @@ oss4mixer can't be used in a sensible way in gst-launch.

    The "device" property

      "device"                   gchar*                : Read / Write
    -

    -OSS4 mixer device (e.g. /dev/oss/hdaudio0/mix0 or /dev/mixerN) -

    +

    OSS mixer device (e.g. /dev/oss/hdaudio0/mix0 or /dev/mixerN) (NULL = use first mixer device found).

    Default value: NULL


    The "device-name" property

      "device-name"              gchar*                : Read
    -

    -Human-readable name of the sound device. May be NULL if the device is -not open (ie. when the mixer is in NULL state) -

    +

    Human-readable name of the sound device.

    Default value: NULL

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html index 172b1b5..2d0a4e8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html @@ -3,12 +3,12 @@ oss4sink - + - + @@ -75,51 +75,10 @@ GstOss4Sink implements

    Description

    -

    -This element lets you output sound using the Open Sound System (OSS) -version 4. -

    -

    -Note that you should almost always use generic audio conversion elements -like audioconvert and audioresample in front of an audiosink to make sure -your pipeline works under all circumstances (those conversion elements will -act in passthrough-mode if no conversion is necessary). -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.1 ! oss4sink
    -
    - will output a sine wave (continuous beep sound) to your sound card (with -a very low volume as precaution). -
    - - - - - - - -
    1
    gst-launch -v filesrc location=music.ogg ! decodebin ! audioconvert ! audioresample ! oss4sink
    -
    - will play an Ogg/Vorbis audio file and output it using the Open Sound System -version 4. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -142,7 +101,7 @@ version 4.
    -

    Element Pads

    +

    Element Pads

    @@ -236,6 +195,6 @@ version 4. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html index f99518a..c6d23ef 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html @@ -3,12 +3,12 @@ oss4src - + - + @@ -74,34 +74,10 @@ GstOss4Source implements

    Description

    -

    -This element lets you record sound using the Open Sound System (OSS) -version 4. -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v oss4src ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink location=mymusic.ogg
    -
    - will record sound from your sound card using OSS4 and encode it to an -Ogg/Vorbis file (this will only work if your mixer settings are right -and the right inputs areenabled etc.) -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -124,7 +100,7 @@ and the right inputs areenabled etc.)
    -

    Element Pads

    +

    Element Pads

    @@ -203,6 +179,6 @@ and the right inputs areenabled etc.) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-ossmixer.html b/docs/plugins/html/gst-plugins-good-plugins-ossmixer.html index eb5472d..4968ce2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ossmixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ossmixer.html @@ -3,12 +3,12 @@ ossmixer - + - + @@ -70,26 +70,10 @@ GstOssMixerElement implements

    Description

    -

    -This element lets you adjust sound input and output levels with the -Open Sound System (OSS). It supports the GstMixer interface, which can be -used to obtain a list of available mixer tracks. Set the mixer element to -READY state before using the GstMixer interface on it. -

    -

    -

    -
    -

    Example pipelines

    -

    -ossmixer can't be used in a sensible way in gst-launch. -

    -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -112,7 +96,7 @@ ossmixer can't be used in a sensible way in gst-launch.
    -

    Element Pads

    +

    Element Pads

    @@ -139,16 +123,13 @@ ossmixer can't be used in a sensible way in gst-launch.

    The "device" property

      "device"                   gchar*                : Read / Write
    -

    -OSS mixer device (usually /dev/mixer) -

    +

    OSS mixer device (usually /dev/mixer).

    Default value: "/dev/mixer"

    -

    Since 0.10.5

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html index abe01e5..654b737 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html @@ -3,12 +3,12 @@ osssink - + - + @@ -64,49 +64,10 @@

    Description

    -

    -This element lets you output sound using the Open Sound System (OSS). -

    -

    -Note that you should almost always use generic audio conversion elements -like audioconvert and audioresample in front of an audiosink to make sure -your pipeline works under all circumstances (those conversion elements will -act in passthrough-mode if no conversion is necessary). -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.1 ! osssink
    -
    - will output a sine wave (continuous beep sound) to your sound card (with -a very low volume as precaution). -
    - - - - - - - -
    1
    gst-launch -v filesrc location=music.ogg ! decodebin ! audioconvert ! audioresample ! osssink
    -
    - will play an Ogg/Vorbis audio file and output it using the Open Sound System. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -129,7 +90,7 @@ a very low volume as precaution).
    -

    Element Pads

    +

    Element Pads

    @@ -181,6 +142,6 @@ a very low volume as precaution). + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html index 8d2986b..e61b3a6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html @@ -3,12 +3,12 @@ osssrc - + - + @@ -74,33 +74,10 @@ GstOssSrc implements

    Description

    -

    -This element lets you record sound using the Open Sound System (OSS). -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v osssrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=mymusic.ogg
    -
    - will record sound from your sound card using OSS and encode it to an -Ogg/Vorbis file (this will only work if your mixer settings are right -and the right inputs enabled etc.) -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -123,7 +100,7 @@ and the right inputs enabled etc.)
    -

    Element Pads

    +

    Element Pads

    @@ -182,6 +159,6 @@ and the right inputs enabled etc.) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html index 20366e9..610c686 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html @@ -3,12 +3,12 @@ osxaudiosink - + - + @@ -50,34 +50,10 @@

    Description

    -

    -This element renders raw audio samples using the CoreAudio api. -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch filesrc location=sine.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! osxaudiosink
    -
    - Play an Ogg/Vorbis file. -
    -

    -

    -

    -Last reviewed on 2006-03-01 (0.10.4) -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -100,7 +76,7 @@ Last reviewed on 2006-03-01 (0.10.4)
    -

    Element Pads

    +

    Element Pads

    @@ -135,6 +111,6 @@ Last reviewed on 2006-03-01 (0.10.4)

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html index 97560e1..589752f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html @@ -3,12 +3,12 @@ osxaudiosrc - + - + @@ -50,31 +50,10 @@

    Description

    -

    -This element captures raw audio samples using the CoreAudio api. -

    -

    -

    -
    -

    Example launch line

    -
    -
    - - - - - - -
    1
    gst-launch osxaudiosrc ! wavenc ! filesink location=audio.wav
    -
    - -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -97,7 +76,7 @@ This element captures raw audio samples using the CoreAudio api.
    -

    Element Pads

    +

    Element Pads

    @@ -133,6 +112,6 @@ This element captures raw audio samples using the CoreAudio api.

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html index d071ce5..2ad0b06 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html @@ -3,12 +3,12 @@ osxvideosink - + - + @@ -54,7 +54,7 @@

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -77,7 +77,7 @@
    -

    Element Pads

    +

    Element Pads

    @@ -117,6 +117,6 @@

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html index 21a50be..b34d0d2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html @@ -3,12 +3,12 @@ 1394 - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html index 6564a5c..56adae7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html @@ -3,12 +3,12 @@ aasink - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html index 3657f89..4faaf4a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html @@ -3,12 +3,12 @@ alaw - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html index cdc61f2..79daccb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html @@ -3,12 +3,12 @@ alpha - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html index 010663f..d557204 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html @@ -3,12 +3,12 @@ alphacolor - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-annodex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-annodex.html index 10d4c59..dab88b6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-annodex.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-annodex.html @@ -3,12 +3,12 @@ annodex - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html index b83750f..3eb5e54 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html @@ -3,12 +3,12 @@ apetag - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html index dbe0652..1c0b144 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html @@ -3,12 +3,12 @@ audiofx - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -115,6 +115,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html index 2d42c48..c037824 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html @@ -3,12 +3,12 @@ auparse - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html index 06229fe..7e20a2e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html @@ -3,12 +3,12 @@ autodetect - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html index 871da0c..7741221 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html @@ -3,12 +3,12 @@ avi - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html index 95e5998..56054cb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html @@ -3,12 +3,12 @@ cacasink - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html index 217fdb4..1e8ef9b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html @@ -3,12 +3,12 @@ cairo - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html index f6c87d6..db1fa59 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html @@ -3,12 +3,12 @@ cutter - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html index 7715d07..3213efe 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html @@ -3,12 +3,12 @@ debug - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -107,6 +107,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html index a15e5da..fa6f9a1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html @@ -3,12 +3,12 @@ deinterlace - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html index 9f2a54e..b0ca470 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html @@ -3,12 +3,12 @@ directsound - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -57,7 +57,7 @@
    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html index bbf4961..0b691b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html @@ -3,12 +3,12 @@ dv - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-efence.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-efence.html index c8c1075..75e79cc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-efence.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-efence.html @@ -3,12 +3,12 @@ efence - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html index e85d9f9..4eaa4ce 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html @@ -3,12 +3,12 @@ effectv - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -115,6 +115,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html index ce4cf50..f8aaaa2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html @@ -3,12 +3,12 @@ equalizer - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-esdsink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-esdsink.html index d8681b5..1b0e8db 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-esdsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-esdsink.html @@ -3,12 +3,12 @@ esdsink - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html index b46fdca..d56736f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html @@ -3,12 +3,12 @@ flac - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html index f448918..b8dd007 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html @@ -3,12 +3,12 @@ flv - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html index f94a5cc..6ed6b58 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html @@ -3,12 +3,12 @@ flxdec - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gconfelements.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gconfelements.html index e3db38c..31180b0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gconfelements.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gconfelements.html @@ -3,12 +3,12 @@ gconfelements - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html index 574d55d..13fe2fa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html @@ -3,12 +3,12 @@ gdkpixbuf - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html index 4991f6b..adb3c54 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html @@ -3,12 +3,12 @@ goom - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html index a1d4401..26d3b8d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html @@ -3,12 +3,12 @@ goom2k1 - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gstrtpmanager.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gstrtpmanager.html index 268212b..a72e37e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gstrtpmanager.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gstrtpmanager.html @@ -3,12 +3,12 @@ gstrtpmanager - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -87,6 +87,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-halelements.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-halelements.html index 141c769..badda34 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-halelements.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-halelements.html @@ -3,12 +3,12 @@ halelements - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html index 9149757..90342bb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html @@ -3,12 +3,12 @@ icydemux - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html index 99901e9..eb8afcd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html @@ -3,12 +3,12 @@ id3demux - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html index 5ea37a7..6113f9d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html @@ -3,12 +3,12 @@ imagefreeze - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html index ab25a24..8caca84 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html @@ -3,12 +3,12 @@ interleave - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html index 1b650b3..a395966 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html @@ -3,12 +3,12 @@ isomp4 - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -103,6 +103,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html index f502030..800e8f6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html @@ -3,12 +3,12 @@ jack - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html index 7e210b5..7415ff2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html @@ -3,12 +3,12 @@ jpeg - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html index 5ad75ae..a1c7aa2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html @@ -3,12 +3,12 @@ level - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html index 3912a51..275c762 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html @@ -3,12 +3,12 @@ matroska - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html index 681de58..9946a4f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html @@ -3,12 +3,12 @@ monoscope - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.28.40.10.30.1

    run-time license

    package

    GStreamer Good Plug-ins prereleaseGStreamer Good Plug-ins git

    origin

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html index fdcaf0e..d69f19f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html @@ -3,12 +3,12 @@ mulaw - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html index 22a271f..6a9c8d6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html @@ -3,12 +3,12 @@ multifile - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,12 +69,16 @@ + + + +

    multifilesrc

    Read a sequentially named set of files into buffers

    splitfilesrc

    Read a sequentially named set of files as if it was one large file
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html index 14bea47..00e881a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html @@ -3,12 +3,12 @@ multipart - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html index 89f2d91..2e57d21 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html @@ -3,12 +3,12 @@ navigationtest - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html index a531bb8..a0aae66 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html @@ -3,12 +3,12 @@ oss4 - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html index 1350423..e83ca3d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html @@ -3,12 +3,12 @@ ossaudio - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html index e51d5da..a35b166 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html @@ -3,12 +3,12 @@ osxaudio - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -57,7 +57,7 @@
    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html index 3882f9f..0d7b297 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html @@ -3,12 +3,12 @@ osxvideo - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -57,7 +57,7 @@
    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html index 67413a2..7e104c5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html @@ -3,12 +3,12 @@ png - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html index e802252..7f04c68 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html @@ -3,12 +3,12 @@ pulseaudio - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,11 +57,15 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    + + + + @@ -79,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html index a0e8f4c..1c356f6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html @@ -3,12 +3,12 @@ replaygain - + - + @@ -29,7 +29,7 @@

    pulseaudiosink

    Correctly handles sink changes when streaming compressed formats to pulsesink

    pulsemixer

    Control sound input and output levels for PulseAudio
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html index d867c03..0ffbf6d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html @@ -3,12 +3,12 @@ rtp - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -343,6 +343,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html index c3f5dc8..5f700a9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html @@ -3,12 +3,12 @@ rtsp - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html index ac98601..d499d25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html @@ -3,12 +3,12 @@ shapewipe - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html index 568ec27..6863c5e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html @@ -3,12 +3,12 @@ shout2send - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html index 6223037..13ae5ff 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html @@ -3,12 +3,12 @@ smpte - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html index 3026c6d..c137b09 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html @@ -3,12 +3,12 @@ soup - + - + @@ -24,12 +24,12 @@

    soup

    -

    soup — libsoup HTTP client src

    +

    soup — libsoup HTTP client src/sink

    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,18 +57,24 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    - + + + + + + - + +

    souphttpclientsink

    Sends streams to HTTP server via PUT

    souphttpsrc

    Receive data as a client over the network via HTTP using SOUP
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html index 7014684..516eddf 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html @@ -3,12 +3,12 @@ spectrum - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html index fd5b62a..40dbaae 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html @@ -3,12 +3,12 @@ speex - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html index 42a7bfc..4dadcd2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html @@ -3,12 +3,12 @@ taglib - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html index e0c272e..1e6359e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html @@ -3,12 +3,12 @@ udp - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -83,6 +83,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html index 13f93fe..bc6339e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html @@ -3,12 +3,12 @@ video4linux2 - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html index 430d543..f148bfe 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html @@ -3,12 +3,12 @@ videobox - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html index 6213318..c5d692e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html @@ -3,12 +3,12 @@ videocrop - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html index 38c70ec..510df61 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html @@ -3,12 +3,12 @@ videofilter - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html index cc441da..15cf962 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html @@ -3,12 +3,12 @@ videomixer - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -75,6 +75,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html index 8af2a82..dd6c16a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html @@ -3,12 +3,12 @@ waveform - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -57,7 +57,7 @@
    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html index e0fc9d8..63b88fa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html @@ -3,12 +3,12 @@ wavenc - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html index a6f2cad..7ab63f4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html @@ -3,12 +3,12 @@ wavpack - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -79,6 +79,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html index 55bcde6..e4cfe11 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html @@ -3,12 +3,12 @@ wavparse - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html index d999cfb..eaa9f59 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html @@ -3,12 +3,12 @@ ximagesrc - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html index f685756..8d2a975 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html @@ -3,12 +3,12 @@ y4menc - + - + @@ -29,7 +29,7 @@
    -

    Plugin Information

    +

    Plugin Information

    @@ -39,7 +39,7 @@ - + @@ -57,7 +57,7 @@

    version

    0.10.290.10.31

    run-time license

    -

    Elements

    +

    Elements

    @@ -69,6 +69,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html index 5ceffb4..855980a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html @@ -3,12 +3,12 @@ pngdec - + - + @@ -53,14 +53,10 @@

    Description

    -

    -Decodes png images. If there is no framerate set on sink caps, it sends EOS -after the first picture. -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -83,7 +79,7 @@ after the first picture.
    -

    Element Pads

    +

    Element Pads

    @@ -151,6 +147,6 @@ after the first picture. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html index 50ae9a6..07bd88a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html @@ -3,12 +3,12 @@ pngenc - + - + @@ -62,13 +62,10 @@

    Description

    -

    -Encodes png images. -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -91,7 +88,7 @@ Encodes png images.
    -

    Element Pads

    +

    Element Pads

    @@ -138,7 +135,7 @@ Encodes png images. - +

    details

    image/png, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]image/png, width=(int)[ 16, 1000000 ], height=(int)[ 16, 1000000 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    @@ -176,6 +173,6 @@ Encodes png images.
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html index e2369c9..7705d71 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html +++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html @@ -3,12 +3,12 @@ progressreport - + - + @@ -103,7 +103,7 @@ a whole).

    -

    Example launch line

    +

    Example launch line

    @@ -132,7 +132,7 @@ a whole).

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -155,7 +155,7 @@ a whole).
    -

    Element Pads

    +

    Element Pads

    @@ -246,6 +246,6 @@ a whole). + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsemixer.html b/docs/plugins/html/gst-plugins-good-plugins-pulsemixer.html index f1a3443..7978475 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsemixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsemixer.html @@ -3,12 +3,12 @@ pulsemixer - + - + @@ -71,26 +71,10 @@ GstPulseMixer implements

    Description

    -

    -This element lets you adjust sound input and output levels for the -PulseAudio sound server. It supports the GstMixer interface, which can be -used to obtain a list of available mixer tracks. Set the mixer element to -READY state before using the GstMixer interface on it. -

    -

    -

    -
    -

    Example pipelines

    -

    -pulsemixer can't be used in a sensible way in gst-launch. -

    -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -113,7 +97,7 @@ pulsemixer can't be used in a sensible way in gst-launch.
    -

    Element Pads

    +

    Element Pads

    @@ -151,13 +135,9 @@ pulsemixer can't be used in a sensible way in gst-launch.

    Default value: NULL

    -
    -

    See Also

    -pulsesrc, pulsesink -
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html index c762598..89120dd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html @@ -3,12 +3,12 @@ pulsesink - + - + @@ -77,55 +77,10 @@ GstPulseSink implements

    Description

    -

    -This element outputs audio to a -PulseAudio sound server. -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v filesrc location=sine.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! pulsesink
    -
    - Play an Ogg/Vorbis file. -
    - - - - - - - -
    1
    gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.4 ! pulsesink
    -
    - Play a 440Hz sine wave. -
    - - - - - - - -
    1
    gst-launch -v audiotestsrc ! pulsesink stream-properties="props,media.title=test"
    -
    - Play a sine wave and set a stream property. The property can be checked -with "pactl list". -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -148,7 +103,7 @@ with "pactl list".
    -

    Element Pads

    +

    Element Pads

    @@ -178,6 +133,18 @@ with "pactl list". + + + + + + + + + + + + @@ -186,15 +153,19 @@ with "pactl list". - + - + - + + + + +

    audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]

    audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]

    audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]

    audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)24, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]

    audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ] audio/x-ac3, framed=(boolean)true

    audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ] audio/x-eac3, framed=(boolean)true

    audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ] audio/x-dts, framed=(boolean)true, block-size=(int){ 512, 1024, 2048 }

    audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)[ 1, 2 ], parsed=(boolean)true
    @@ -253,52 +224,19 @@ with "pactl list".

    The "client" property

      "client"                   gchar*                : Read / Write
    -

    -The PulseAudio client name to use. -

    -

    Default value: "<unknown>"

    -

    Since 0.10.27

    +

    The PulseAudio client name to use.

    +

    Default value: "lt-gst-plugins-good-plugins-scan"


    The "stream-properties" property

      "stream-properties"        GstStructure*         : Read / Write
    -

    -List of pulseaudio stream properties. A list of defined properties can be -found in the pulseaudio api docs. -

    -

    -Below is an example for registering as a music application to pulseaudio. -

    -
    - - - - - - - -
    1
    -2
    -3
    -4
    GstStructure *props;
    -props = gst_structure_from_string ("props,media.role=music", NULL);
    -g_object_set (pulse, "stream-properties", props, NULL);
    -gst_structure_free
    +

    list of pulseaudio stream properties.

    - -

    -

    -

    Since 0.10.26

    -
    -
    -
    -

    See Also

    -pulsesrc, pulsemixer
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html index e5ab691..37dcda5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html @@ -3,12 +3,12 @@ pulsesrc - + - + @@ -63,7 +63,7 @@

    Implemented Interfaces

    GstPulseSrc implements - GstImplementsInterface, GstMixer and GstPropertyProbe.

    + GstStreamVolume, GstImplementsInterface, GstMixer and GstPropertyProbe.

    Properties

    @@ -73,36 +73,17 @@ GstPulseSrc implements "device-name" gchar* : Read "stream-properties" GstStructure* : Read / Write "client" gchar* : Read / Write + "mute" gboolean : Read / Write + "source-output-index" guint : Read + "volume" gdouble : Read / Write

    Description

    -

    -This element captures audio from a -PulseAudio sound server. -

    -

    -

    -
    -

    Example pipelines

    -
    - - - - - - - -
    1
    gst-launch -v pulsesrc ! audioconvert ! vorbisenc ! oggmux ! filesink location=alsasrc.ogg
    -
    - Record from a sound card using pulseaudio and encode to Ogg/Vorbis. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -125,7 +106,7 @@ This element captures audio from a
    -

    Element Pads

    +

    Element Pads

    @@ -207,49 +188,41 @@ This element captures audio from a

    The "stream-properties" property

      "stream-properties"        GstStructure*         : Read / Write
    -

    -List of pulseaudio stream properties. A list of defined properties can be -found in the pulseaudio api docs. -

    -

    -Below is an example for registering as a music application to pulseaudio. -

    -
    -
    - - - - - - -
    1
    -2
    -3
    -4
    GstStructure *props;
    -props = gst_structure_from_string ("props,media.role=music", NULL);
    -g_object_set (pulse, "stream-properties", props, NULL);
    -gst_structure_free (props);
    -
    - -

    -

    -

    Since 0.10.26

    +

    list of pulseaudio stream properties.


    The "client" property

      "client"                   gchar*                : Read / Write

    The PulseAudio client_name_to_use.

    -

    Default value: "<unknown>"

    +

    Default value: "lt-gst-plugins-good-plugins-scan"

    +
    +
    +

    The "mute" property

    +
      "mute"                     gboolean              : Read / Write
    +

    Mute state of this stream.

    +

    Default value: FALSE

    +
    +
    +
    +

    The "source-output-index" property

    +
      "source-output-index"      guint                 : Read
    +

    The index of the PulseAudio source output corresponding to this record stream.

    +

    Default value: 4294967295

    +
    +
    +
    +

    The "volume" property

    +
      "volume"                   gdouble               : Read / Write
    +

    Linear volume of this stream, 1.0=100%.

    +

    Allowed values: [0,10]

    +

    Default value: 1

    -
    -

    See Also

    -pulsesink, pulsemixer
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html index 01dce82..79da1d6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html @@ -3,12 +3,12 @@ qtdemux - + - + @@ -71,7 +71,7 @@ capabilities of the upstream elements.

    -

    Example launch line

    +

    Example launch line

    @@ -95,7 +95,7 @@ Last reviewed on 2006-12-29 (0.10.5)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -118,7 +118,7 @@ Last reviewed on 2006-12-29 (0.10.5)
    -

    Element Pads

    +

    Element Pads

    @@ -256,6 +256,6 @@ Last reviewed on 2006-12-29 (0.10.5) + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html index 8842bf8..bbfbfd6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html @@ -3,12 +3,12 @@ qtmoovrecover - + - + @@ -80,7 +80,7 @@ GstQTMoovRecover implements

    -

    Example pipelines

    +

    Example pipelines

    This element recovers quicktime files created with qtmux using the moov recovery feature. @@ -101,7 +101,7 @@ Documentation last reviewed on 2011-04-21

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -124,7 +124,7 @@ Documentation last reviewed on 2011-04-21
    -

    Element Pads

    +

    Element Pads

    @@ -196,6 +196,6 @@ Documentation last reviewed on 2011-04-21

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html index d3abae6..c2affdb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html @@ -3,12 +3,12 @@ qtmux - + - + @@ -132,7 +132,7 @@ presentation-timestamp.

    -

    Example pipelines

    +

    Example pipelines

    @@ -154,7 +154,7 @@ Last reviewed on 2010-12-03

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -177,7 +177,7 @@ Last reviewed on 2010-12-03
    -

    Element Pads

    +

    Element Pads

    @@ -296,6 +296,10 @@ Last reviewed on 2010-12-03 + + + + @@ -408,6 +412,6 @@ Last reviewed on 2010-12-03 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html index 2b4b892..3865d23 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html @@ -3,12 +3,12 @@ quarktv - + - + @@ -70,7 +70,7 @@ the last frames randomly.

    -

    Example launch line

    +

    Example launch line

    video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

    video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    @@ -88,7 +88,7 @@ the last frames randomly.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -111,7 +111,7 @@ the last frames randomly.
    -

    Element Pads

    +

    Element Pads

    @@ -205,6 +205,6 @@ the last frames randomly. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html index 08ebece..df145b6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html @@ -3,12 +3,12 @@ radioactv - + - + @@ -82,7 +82,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.

    -

    Example launch line

    +

    Example launch line

    @@ -100,7 +100,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -123,7 +123,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
    -

    Element Pads

    +

    Element Pads

    @@ -143,6 +143,10 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. + + + +

    details

    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    @@ -164,6 +168,10 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. + + + +

    details

    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    @@ -214,6 +222,6 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html index 0ec7784..87ef34e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html @@ -3,12 +3,12 @@ revtv - + - + @@ -68,7 +68,7 @@

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -91,7 +91,7 @@
    -

    Element Pads

    +

    Element Pads

    @@ -185,6 +185,6 @@ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html index 78d3e69..f54fa4b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html @@ -3,12 +3,12 @@ rganalysis - + - + @@ -89,7 +89,7 @@ an album, not just the last one.

    -

    Example launch lines

    +

    Example launch lines

    @@ -137,7 +137,7 @@ property documentation for more information.


    -

    Acknowledgements

    +

    Acknowledgements

    This element is based on code used in the vorbisgain program and many others. The relevant parts are copyrighted by David Robinson, Glen Sawyer @@ -149,7 +149,7 @@ and Frank Klemm.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -172,7 +172,7 @@ and Frank Klemm.
    -

    Element Pads

    +

    Element Pads

    @@ -352,6 +352,6 @@ tag, which allows to store the used value alongside the gain values. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html index ea5f01d..8e42d29 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html @@ -3,12 +3,12 @@ rglimiter - + - + @@ -70,7 +70,7 @@ threshold of -6 dB. This type of filter is mentioned in the proposed -

    Example launch line

    +

    Example launch line

    @@ -92,7 +92,7 @@ Playback of a file

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -115,7 +115,7 @@ Playback of a file
    -

    Element Pads

    +

    Element Pads

    @@ -189,6 +189,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html index 4e2744f..ea8e6f4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html @@ -3,12 +3,12 @@ rgvolume - + - + @@ -103,7 +103,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.

    -

    Example launch line

    +

    Example launch line

    @@ -123,7 +123,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -146,7 +146,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.
    -

    Element Pads

    +

    Element Pads

    @@ -361,6 +361,6 @@ of the stream + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html index c13e093..dec42a8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html @@ -3,12 +3,12 @@ rippletv - + - + @@ -71,7 +71,7 @@ by motion or random rain drops.

    -

    Example launch line

    +

    Example launch line

    @@ -89,7 +89,7 @@ by motion or random rain drops.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -112,7 +112,7 @@ by motion or random rain drops.
    -

    Element Pads

    +

    Element Pads

    @@ -212,6 +212,6 @@ by motion or random rain drops. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html index f5bc6f5..d06adc2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html @@ -3,12 +3,12 @@ rtpdec - + - + @@ -86,7 +86,7 @@ Last reviewed on 2006-06-20 (0.10.4)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -109,7 +109,7 @@ Last reviewed on 2006-06-20 (0.10.4)
    -

    Element Pads

    +

    Element Pads

    @@ -456,6 +456,6 @@ Notify of an SSRC that has timed out + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html index d28832b..a30f6b0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html @@ -3,12 +3,12 @@ rtpj2kpay - + - + @@ -74,7 +74,7 @@ codestream.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -97,7 +97,7 @@ codestream.
    -

    Element Pads

    +

    Element Pads

    @@ -166,6 +166,6 @@ codestream. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html index 23fc61b..53eb9dd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html @@ -3,12 +3,12 @@ rtpjpegpay - + - + @@ -79,7 +79,7 @@ The payloader assumes that correct width and height is found in the caps.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -102,7 +102,7 @@ The payloader assumes that correct width and height is found in the caps.
    -

    Element Pads

    +

    Element Pads

    @@ -191,6 +191,6 @@ The payloader assumes that correct width and height is found in the caps. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html index 6271f55..a4f30f6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html @@ -3,12 +3,12 @@ rtspsrc - + - + @@ -69,9 +69,9 @@ GstRTSPSrc implements "location" gchar* : Read / Write "protocols" GstRTSPLowerTrans : Read / Write "retry" guint : Read / Write - "timeout" guint64 : Read / Write + "timeout" guint64 : Read / Write "latency" guint : Read / Write - "tcp-timeout" guint64 : Read / Write + "tcp-timeout" guint64 : Read / Write "connection-speed" guint : Read / Write "nat-method" GstRTSPNatMethod : Read / Write "do-rtcp" gboolean : Read / Write @@ -82,6 +82,7 @@ GstRTSPSrc implements "buffer-mode" GstRTSPSrcBufferMode : Read / Write "port-range" gchar* : Read / Write "udp-buffer-size" gint : Read / Write + "short-header" gboolean : Read / Write
    @@ -117,7 +118,7 @@ PLAYING state.

    -

    Example launch line

    +

    Example launch line

    @@ -139,7 +140,7 @@ Last reviewed on 2006-08-18 (0.10.5)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -162,7 +163,7 @@ Last reviewed on 2006-08-18 (0.10.5)
    -

    Element Pads

    +

    Element Pads

    @@ -235,7 +236,7 @@ Last reviewed on 2006-08-18 (0.10.5)

    The "timeout" property

    -
      "timeout"                  guint64               : Read / Write
    +
      "timeout"                  guint64               : Read / Write

    Retry TCP transport after UDP timeout microseconds (0 = disabled).

    Default value: 5000000

    @@ -249,7 +250,7 @@ Last reviewed on 2006-08-18 (0.10.5)

    The "tcp-timeout" property

    -
      "tcp-timeout"              guint64               : Read / Write
    +
      "tcp-timeout"              guint64               : Read / Write

    Fail after timeout microseconds on TCP connections (0 = disabled).

    Default value: 20000000

    @@ -326,10 +327,17 @@ Last reviewed on 2006-08-18 (0.10.5)

    Allowed values: >= 0

    Default value: 524288

    +
    +
    +

    The "short-header" property

    +
      "short-header"             gboolean              : Read / Write
    +

    Only send the basic RTSP headers for broken encoders.

    +

    Default value: FALSE

    +
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html index c386c8e..7b58864 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html @@ -3,12 +3,12 @@ shagadelictv - + - + @@ -61,7 +61,7 @@ Oh behave, ShagedelicTV makes images shagadelic!

    -

    Example launch line

    +

    Example launch line

    @@ -79,7 +79,7 @@ Oh behave, ShagedelicTV makes images shagadelic!

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -102,7 +102,7 @@ Oh behave, ShagedelicTV makes images shagadelic!
    -

    Element Pads

    +

    Element Pads

    @@ -162,6 +162,6 @@ Oh behave, ShagedelicTV makes images shagadelic! + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html index 934dc56..9a0b7fe 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html @@ -3,12 +3,12 @@ shapewipe - + - + @@ -76,7 +76,7 @@ page.

    -

    Example launch line

    +

    Example launch line

    @@ -94,7 +94,7 @@ page.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -117,7 +117,7 @@ page.
    -

    Element Pads

    +

    Element Pads

    @@ -252,6 +252,6 @@ page. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-smokedec.html b/docs/plugins/html/gst-plugins-good-plugins-smokedec.html index a6f2eae..ce0aa17 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smokedec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smokedec.html @@ -3,12 +3,12 @@ smokedec - + - + @@ -53,13 +53,10 @@

    Description

    -

    -Decodes images in smoke format. -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -82,7 +79,7 @@ Decodes images in smoke format.
    -

    Element Pads

    +

    Element Pads

    @@ -142,6 +139,6 @@ Decodes images in smoke format. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html b/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html index 744718b..7aa47b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html @@ -3,12 +3,12 @@ smokeenc - + - + @@ -64,13 +64,10 @@

    Description

    -

    -Encodes images in smoke format. -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -93,7 +90,7 @@ Encodes images in smoke format.
    -

    Element Pads

    +

    Element Pads

    @@ -187,6 +184,6 @@ Encodes images in smoke format. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html index 0bee850..1ad224b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html @@ -3,12 +3,12 @@ smpte - + - + @@ -60,7 +60,7 @@ "depth" gint : Read / Write "fps" gfloat : Read / Write "type" GstSMPTETransitionType : Read / Write - "duration" guint64 : Read / Write + "duration" guint64 : Read / Write "invert" gboolean : Read / Write @@ -79,7 +79,7 @@ banding.

    -

    Sample pipelines

    +

    Sample pipelines

    @@ -100,7 +100,7 @@ edges of the transition are smoothed with a 20000 big border.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -123,7 +123,7 @@ edges of the transition are smoothed with a 20000 big border.
    -

    Element Pads

    +

    Element Pads

    @@ -236,7 +236,7 @@ edges of the transition are smoothed with a 20000 big border.

    The "duration" property

    -
      "duration"                 guint64               : Read / Write
    +
      "duration"                 guint64               : Read / Write

    Duration of the transition effect in nanoseconds.

    Default value: 1000000000

    @@ -251,6 +251,6 @@ edges of the transition are smoothed with a 20000 big border. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html index a5b4d4c..1fe0e50 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html @@ -3,12 +3,12 @@ smptealpha - + - + @@ -86,7 +86,7 @@ avoid banding.

    -

    Sample pipelines

    +

    Sample pipelines

    Here is a pipeline to demonstrate the smpte transition :

    @@ -105,7 +105,7 @@ transparent image. The edges of the transition are smoothed with a

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -128,7 +128,7 @@ transparent image. The edges of the transition are smoothed with a
    -

    Element Pads

    +

    Element Pads

    @@ -271,6 +271,6 @@ Set to TRUE to invert the transition mask (ie. flip it horizontally). + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html index 520204b..574b21e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html @@ -3,12 +3,12 @@ souphttpsrc - + - + @@ -87,98 +87,10 @@ GstSoupHTTPSrc implements

    Description

    -

    -This plugin reads data from a remote location specified by a URI. -Supported protocols are 'http', 'https'. -

    -

    -An HTTP proxy must be specified by its URL. -If the "http_proxy" environment variable is set, its value is used. -If built with libsoup's GNOME integration features, the GNOME proxy -configuration will be used, or failing that, proxy autodetection. -The "proxy" property can be used to override the default. -

    -

    -In case the "iradio-mode" property is set and the location is -an HTTP resource, souphttpsrc will send special Icecast HTTP headers to the -server to request additional Icecast meta-information. -If the server is not an Icecast server, it will behave as if the -"iradio-mode" property were not set. If it is, souphttpsrc will -output data with a media type of application/x-icy, in which case you will -need to use the ICYDemux element as follow-up element to extract the Icecast -metadata and to determine the underlying media type. -

    -

    -

    -
    -

    Example launch line

    -
    -
    - - - - - - -
    1
    -2
    gst-launch -v souphttpsrc location=https://some.server.org/index.html
    -    ! filesink location=/home/joe/server.html
    -
    - The above pipeline reads a web page from a server using the HTTPS protocol -and writes it to a local file. -
    - - - - - - - -
    1
    -2
    -3
    -4
    gst-launch -v souphttpsrc user-agent="FooPlayer 0.99 beta"
    -    automatic-redirect=false proxy=http://proxy.intranet.local:8080
    -    location=http://music.foobar.com/demo.mp3 ! mad ! audioconvert
    -    ! audioresample ! alsasink
    -
    - The above pipeline will read and decode and play an mp3 file from a -web server using the HTTP protocol. If the server sends redirects, -the request fails instead of following the redirect. The specified -HTTP proxy server is used. The User-Agent HTTP request header -is set to a custom string instead of "GStreamer souphttpsrc." -
    - - - - - - - -
    1
    -2
    -3
    -4
    gst-launch -v souphttpsrc location=http://10.11.12.13/mjpeg
    -    do-timestamp=true ! multipartdemux
    -    ! image/jpeg,width=640,height=480 ! matroskamux
    -    ! filesink location=mjpeg.mkv
    -
    - The above pipeline reads a motion JPEG stream from an IP camera -using the HTTP protocol, encoded as mime/multipart image/jpeg -parts, and writes a Matroska motion JPEG file. The width and -height properties are set in the caps to provide the Matroska -multiplexer with the information to set this in the header. -Timestamps are set on the buffers as they arrive from the camera. -These are used by the mime/multipart demultiplexer to emit timestamps -on the JPEG-encoded video frame buffers. This allows the Matroska -multiplexer to timestamp the frames in the resulting file. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -201,7 +113,7 @@ multiplexer to timestamp the frames in the resulting file.
    -

    Element Pads

    +

    Element Pads

    @@ -360,6 +272,6 @@ multiplexer to timestamp the frames in the resulting file. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html index 4cdb556..b8cc22c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html @@ -3,12 +3,12 @@ spectrum - + - + @@ -59,7 +59,7 @@

    Properties

       "bands"                    guint                 : Read / Write
    -  "interval"                 guint64               : Read / Write
    +  "interval"                 guint64               : Read / Write
       "message"                  gboolean              : Read / Write
       "threshold"                gint                  : Read / Write
       "message-magnitude"        gboolean              : Read / Write
    @@ -131,7 +131,7 @@ channels and the second dimension are the values.
     

    -

    Example application

    +

    Example application

    @@ -398,7 +398,7 @@ Last reviewed on 2011-03-10 (0.10.29)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -421,7 +421,7 @@ Last reviewed on 2011-03-10 (0.10.29)
    -

    Element Pads

    +

    Element Pads

    @@ -513,7 +513,7 @@ Last reviewed on 2011-03-10 (0.10.29)

    The "interval" property

    -
      "interval"                 guint64               : Read / Write
    +
      "interval"                 guint64               : Read / Write

    Interval of time between message posts (in nanoseconds).

    Allowed values: >= 1

    Default value: 100000000

    @@ -571,6 +571,6 @@ Send separate results for each channel
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html index cd15b98..23b3804 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html @@ -3,12 +3,12 @@ speexdec - + - - + + @@ -18,7 +18,7 @@ - +
    Up Home GStreamer Good Plugins 0.10 Plugins Reference ManualNextNext
    Top @@ -50,7 +50,8 @@ GObject +----GstObject +----GstElement - +----GstSpeexDec + +----GstAudioDecoder + +----GstSpeexDec
    @@ -61,38 +62,10 @@

    Description

    -

    -This element decodes a Speex stream to raw integer audio. -Speex is a royalty-free -audio codec maintained by the Xiph.org -Foundation. -

    -

    -

    -
    -

    Example pipelines

    -
    - - - - - - - -
    1
    gst-launch -v filesrc location=speex.ogg ! oggdemux ! speexdec ! audioconvert ! audioresample ! alsasink
    -
    - Decode an Ogg/Speex file. To create an Ogg/Speex file refer to the -documentation of speexenc. -
    -

    -

    -

    -Last reviewed on 2006-04-05 (0.10.2) -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -115,7 +88,7 @@ Last reviewed on 2006-04-05 (0.10.2)
    -

    Element Pads

    +

    Element Pads

    @@ -181,13 +154,9 @@ Last reviewed on 2006-04-05 (0.10.2)

    Default value: TRUE

    -
    -

    See Also

    -speexenc, oggdemux -
    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html index deed921..ed62694 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html @@ -3,12 +3,12 @@ speexenc - + - + @@ -52,7 +52,8 @@ GObject +----GstObject +----GstElement - +----GstSpeexEnc + +----GstAudioEncoder + +----GstSpeexEnc
    @@ -64,48 +65,24 @@ GstSpeexEnc implements

    Properties

    -  "abr"                      gint                  : Read / Write
    -  "bitrate"                  gint                  : Read / Write
    -  "complexity"               gint                  : Read / Write
    -  "dtx"                      gboolean              : Read / Write
    +  "abr"                      gint                  : Read / Write / Construct
    +  "bitrate"                  gint                  : Read / Write / Construct
    +  "complexity"               gint                  : Read / Write / Construct
    +  "dtx"                      gboolean              : Read / Write / Construct
       "last-message"             gchar*                : Read
    -  "nframes"                  gint                  : Read / Write
    -  "quality"                  gfloat                : Read / Write
    -  "vad"                      gboolean              : Read / Write
    -  "vbr"                      gboolean              : Read / Write
    -  "mode"                     GstSpeexEncMode       : Read / Write
    +  "nframes"                  gint                  : Read / Write / Construct
    +  "quality"                  gfloat                : Read / Write / Construct
    +  "vad"                      gboolean              : Read / Write / Construct
    +  "vbr"                      gboolean              : Read / Write / Construct
    +  "mode"                     GstSpeexEncMode       : Read / Write / Construct
     

    Description

    -

    -This element encodes audio as a Speex stream. -Speex is a royalty-free -audio codec maintained by the Xiph.org -Foundation. -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch audiotestsrc num-buffers=100 ! speexenc ! oggmux ! filesink location=beep.ogg
    -
    - Encode an Ogg/Speex file. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -128,7 +105,7 @@ Foundation.
    -

    Element Pads

    +

    Element Pads

    @@ -189,7 +166,7 @@ Foundation.

    Property Details

    The "abr" property

    -
      "abr"                      gint                  : Read / Write
    +
      "abr"                      gint                  : Read / Write / Construct

    Enable average bit-rate (0 = disabled).

    Allowed values: >= 0

    Default value: 0

    @@ -197,7 +174,7 @@ Foundation.

    The "bitrate" property

    -
      "bitrate"                  gint                  : Read / Write
    +
      "bitrate"                  gint                  : Read / Write / Construct

    Specify an encoding bit-rate (in bps). (0 = automatic).

    Allowed values: >= 0

    Default value: 0

    @@ -205,7 +182,7 @@ Foundation.

    The "complexity" property

    -
      "complexity"               gint                  : Read / Write
    +
      "complexity"               gint                  : Read / Write / Construct

    Set encoding complexity.

    Allowed values: >= 0

    Default value: 3

    @@ -213,7 +190,7 @@ Foundation.

    The "dtx" property

    -
      "dtx"                      gboolean              : Read / Write
    +
      "dtx"                      gboolean              : Read / Write / Construct

    Enable discontinuous transmission.

    Default value: FALSE

    @@ -227,7 +204,7 @@ Foundation.

    The "nframes" property

    -
      "nframes"                  gint                  : Read / Write
    +
      "nframes"                  gint                  : Read / Write / Construct

    Number of frames per buffer.

    Allowed values: >= 0

    Default value: 1

    @@ -235,7 +212,7 @@ Foundation.

    The "quality" property

    -
      "quality"                  gfloat                : Read / Write
    +
      "quality"                  gfloat                : Read / Write / Construct

    Encoding quality.

    Allowed values: [0,10]

    Default value: 8

    @@ -243,32 +220,28 @@ Foundation.

    The "vad" property

    -
      "vad"                      gboolean              : Read / Write
    +
      "vad"                      gboolean              : Read / Write / Construct

    Enable voice activity detection.

    Default value: FALSE


    The "vbr" property

    -
      "vbr"                      gboolean              : Read / Write
    +
      "vbr"                      gboolean              : Read / Write / Construct

    Enable variable bit-rate.

    Default value: FALSE


    The "mode" property

    -
      "mode"                     GstSpeexEncMode       : Read / Write
    +
      "mode"                     GstSpeexEncMode       : Read / Write / Construct

    The encoding mode.

    Default value: Auto

    -
    -

    See Also

    -speexdec, oggmux -
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html new file mode 100644 index 0000000..229057b --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html @@ -0,0 +1,174 @@ + + + + +splitfilesrc + + + + + + + + + +
    + + + + + + + + + +
    +
    +
    + + +
    +

    splitfilesrc

    +

    splitfilesrc — Read a sequentially named set of files as if it was one large file

    +
    +
    +

    Synopsis

    +
    struct              GstSplitFileSrc;
    +
    +
    +
    +

    Object Hierarchy

    +
    +  GObject
    +   +----GstObject
    +         +----GstElement
    +               +----GstBaseSrc
    +                     +----GstSplitFileSrc
    +
    +
    +
    +

    Properties

    +
    +  "location"                 gchar*                : Read / Write
    +
    +
    +
    +

    Description

    +

    +Reads data from multiple files, presenting those files as one continuous +file to downstream elements. This is useful for reading a large file that +had to be split into multiple parts due to filesystem file size limitations, +for example. +

    +

    +The files to select are chosen via the location property, which supports +(and expects) shell-style wildcards (but only for the filename, not for +directories). The results will be sorted. +

    +

    +

    +
    +

    Example launch line

    +
    + + + + + + + +
    1
    gst-launch splitfilesrc location="/path/to/part-*.mpg" ! decodebin ! ... \
    +
    + Plays the different parts as if they were one single MPEG file. +
    +

    +

    +
    +

    Synopsis

    +
    +

    Element Information

    +
    ++ + + + + + + + + + + + + + +

    plugin

    + multifile +

    author

    Tim-Philipp Müller <tim.muller@collabora.co.uk>

    class

    Source/File
    +
    +
    +
    +

    Element Pads

    +
    ++ + + + + + + + + + + + + + + + + + +

    name

    src

    direction

    source

    presence

    always

    details

    ANY
    +
    +
    +

    +

    +
    +
    +

    Details

    +
    +

    struct GstSplitFileSrc

    +
    struct GstSplitFileSrc;
    +

    +

    +
    +
    +
    +

    Property Details

    +
    +

    The "location" property

    +
      "location"                 gchar*                : Read / Write
    +

    Wildcard pattern to match file names of the input files. If the location is an absolute path or contains directory components, only the base file name part will be considered for pattern matching. The results will be sorted.

    +

    Default value: NULL

    +
    +
    + +
    + + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html index 474ca8c..740e41e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html @@ -3,18 +3,18 @@ streaktv - + - + - + - + @@ -69,7 +69,7 @@ StreakTV makes after images of moving objects.

    -

    Example launch line

    +

    Example launch line

    @@ -87,7 +87,7 @@ StreakTV makes after images of moving objects.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -110,7 +110,7 @@ StreakTV makes after images of moving objects.
    -

    Element Pads

    +

    Element Pads

    @@ -203,6 +203,6 @@ StreakTV makes after images of moving objects. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html index a981eb4..e7076e8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html +++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html @@ -3,12 +3,12 @@ taginject - + - + @@ -69,7 +69,7 @@ unmodified.

    -

    Example launch lines

    +

    Example launch lines

    @@ -98,7 +98,7 @@ unmodified.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -121,7 +121,7 @@ unmodified.
    -

    Element Pads

    +

    Element Pads

    @@ -191,6 +191,6 @@ Opaque
    - Generated by GTK-Doc V1.17 + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html index 7cdba8c..f67550a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html @@ -3,12 +3,12 @@ udpsink - + - + @@ -79,7 +79,7 @@ It can be combined with RTP payloaders to implement RTP streaming.

    -

    Examples

    +

    Examples

    @@ -97,7 +97,7 @@ It can be combined with RTP payloaders to implement RTP streaming.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -120,7 +120,7 @@ It can be combined with RTP payloaders to implement RTP streaming.
    -

    Element Pads

    +

    Element Pads

    @@ -180,6 +180,6 @@ udpsrc, multifdsink + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html index 18f7bd4..1efdf39 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html @@ -3,12 +3,12 @@ udpsrc - + - + @@ -72,7 +72,7 @@ GstUDPSrc implements "uri" gchar* : Read / Write "sockfd" gint : Read / Write "buffer-size" gint : Read / Write - "timeout" guint64 : Read / Write + "timeout" guint64 : Read / Write "closefd" gboolean : Read / Write "skip-first-bytes" gint : Read / Write "sock" gint : Read @@ -138,7 +138,7 @@ if no data was recieved in the given timeout. The message's structure contains one field:

    • - guint64 + guint64 "timeout": the timeout in microseconds that expired when waiting for data.

    @@ -156,7 +156,7 @@ is responsible for closing the file descriptor.

    -

    Examples

    +

    Examples

    @@ -202,7 +202,7 @@ Last reviewed on 2007-09-20 (0.10.7)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -225,7 +225,7 @@ Last reviewed on 2007-09-20 (0.10.7)
    -

    Element Pads

    +

    Element Pads

    @@ -309,7 +309,7 @@ Last reviewed on 2007-09-20 (0.10.7)

    The "timeout" property

    -
      "timeout"                  guint64               : Read / Write
    +
      "timeout"                  guint64               : Read / Write

    Post a message after timeout microseconds (0 = disabled).

    Default value: 0

    @@ -365,6 +365,6 @@ udpsink, multifdsink + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html index a41ac69..46da1e9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html @@ -3,12 +3,12 @@ v4l2radio - + - + @@ -70,36 +70,10 @@ GstV4l2Radio implements

    Description

    -

    -v4l2radio can be used to control radio device -and to tune it to different radiostations. -

    -

    -

    -
    -

    Example launch lines

    -
    -
    - - - - - - -
    1
    -2
    gst-launch v4l2radio device=/dev/radio0 frequency=101200000
    -gst-launch alsasrc device=hw:1 ! audioconvert ! audioresample ! alsasink
    -
    - -First pipeline tunes the radio device /dev/radio0 to station 101.2 MHz, -second pipeline connects digital audio out (hw:1) to default sound card. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -122,7 +96,7 @@ second pipeline connects digital audio out (hw:1) to default sound card.
    -

    Element Pads

    +

    Element Pads

    @@ -134,7 +108,6 @@ second pipeline connects digital audio out (hw:1) to default sound card.

    struct GstV4l2Radio

    struct GstV4l2Radio;

    -Opaque video4linux2 radio tuner element

    @@ -158,6 +131,6 @@ Opaque video4linux2 radio tuner element + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html index bf0fa3f..c0d7a0e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html @@ -3,12 +3,12 @@ v4l2sink - + - + @@ -25,6 +25,8 @@  |  Description  |  + Implemented Interfaces +  |  Properties
    @@ -43,6 +45,12 @@
    +

    Implemented Interfaces

    +

    +GstV4l2Sink implements + GstImplementsInterface, GstXOverlay, GstNavigation, GstColorBalance, GstVideoOrientation and GstPropertyProbe.

    +
    +

    Properties

       "device"                   gchar*                : Read / Write
    @@ -68,48 +76,6 @@
     

    Description

    -v4l2sink can be used to display video to v4l2 devices (screen overlays -provided by the graphics hardware, tv-out, etc) -

    -

    -

    -
    -

    Example launch lines

    -
    - - - - - - - -
    1
    gst-launch videotestsrc ! v4l2sink device=/dev/video1
    -
    - This pipeline displays a test pattern on /dev/video1 -
    - - - - - - - -
    1
    gst-launch -v videotestsrc ! navigationtest ! v4l2sink
    -
    - A pipeline to test navigation events. -While moving the mouse pointer over the test signal you will see a black box -following the mouse pointer. If you press the mouse button somewhere on the -video and release it somewhere else a green box will appear where you pressed -the button and a red one where you released it. (The navigationtest element -is part of gst-plugins-good.) You can observe here that even if the images -are scaled through hardware the pointer coordinates are converted back to the -original video frame geometry so that the box can be drawn to the correct -position. This also handles borders correctly, limiting coordinates to the -image area -
    -

    -

    -

    @@ -137,7 +103,7 @@ image area

    The "device-fd" property

      "device-fd"                gint                  : Read

    File descriptor of the device.

    -

    Allowed values: >= G_MAXULONG

    +

    Allowed values: >= -1

    Default value: -1


    @@ -257,6 +223,6 @@ image area
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html index 5b08bf6..67cf5ec 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html @@ -3,12 +3,12 @@ v4l2src - + - + @@ -77,49 +77,15 @@ GstV4l2Src implements "decimate" gint : Read / Write "hue" gint : Read / Write "saturation" gint : Read / Write + "norm" V4L2_TV_norms : Read / Write

    Description

    -

    -v4l2src can be used to capture video from v4l2 devices, like webcams and tv -cards. -

    -

    -

    -
    -

    Example launch lines

    -
    - - - - - - - -
    1
    gst-launch v4l2src ! xvimagesink
    -
    - This pipeline shows the video captured from /dev/video0 tv card and for -webcams. -
    - - - - - - - -
    1
    gst-launch v4l2src ! jpegdec ! xvimagesink
    -
    - This pipeline shows the video captured from a webcam that delivers jpeg -images. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -142,7 +108,7 @@ images.
    -

    Element Pads

    +

    Element Pads

    @@ -295,7 +261,6 @@ images.

    struct GstV4l2Src

    struct GstV4l2Src;

    -Opaque object.

    @@ -347,57 +312,49 @@ Opaque object.

    The "brightness" property

      "brightness"               gint                  : Read / Write
    -

    -Picture brightness, or more precisely, the black level -

    +

    Picture brightness, or more precisely, the black level.

    Default value: 0

    -

    Since 0.10.26


    The "contrast" property

      "contrast"                 gint                  : Read / Write
    -

    -Picture contrast or luma gain -

    +

    Picture contrast or luma gain.

    Default value: 0

    -

    Since 0.10.26


    The "decimate" property

      "decimate"                 gint                  : Read / Write
    -

    -Only use every nth frame -

    +

    Only use every nth frame.

    Allowed values: >= 1

    Default value: 1

    -

    Since 0.10.26


    The "hue" property

      "hue"                      gint                  : Read / Write
    -

    -Hue or color balance -

    +

    Hue or color balance.

    Default value: 0

    -

    Since 0.10.26


    The "saturation" property

      "saturation"               gint                  : Read / Write
    -

    -Picture color saturation or chroma gain -

    +

    Picture color saturation or chroma gain.

    Default value: 0

    -

    Since 0.10.26

    +
    +
    +
    +

    The "norm" property

    +
      "norm"                     V4L2_TV_norms         : Read / Write
    +

    video standard.

    +

    Default value: none

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html index 137ec2d..d1ea2c8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html @@ -3,12 +3,12 @@ vertigotv - + - + @@ -78,7 +78,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.

    -

    Example launch line

    +

    Example launch line

    @@ -96,7 +96,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -119,7 +119,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling.
    -

    Element Pads

    +

    Element Pads

    @@ -228,6 +228,6 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html index cd64023..b201868 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html @@ -3,12 +3,12 @@ videobalance - + - + @@ -80,7 +80,7 @@ Adjusts brightness, contrast, hue, saturation on a video stream.

    -

    Example launch line

    +

    Example launch line

    @@ -102,7 +102,7 @@ Last reviewed on 2010-04-18 (0.10.22)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -125,7 +125,7 @@ Last reviewed on 2010-04-18 (0.10.22)
    -

    Element Pads

    +

    Element Pads

    @@ -372,6 +372,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html index da27567..8fdd8a7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html @@ -3,12 +3,12 @@ videobox - + - + @@ -120,7 +120,7 @@ Sample pipeline:

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -143,7 +143,7 @@ Sample pipeline:
    -

    Element Pads

    +

    Element Pads

    @@ -439,6 +439,6 @@ video to be centered in the output. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html index a960432..411d125 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html @@ -3,12 +3,12 @@ videocrop - + - + @@ -90,7 +90,7 @@ most use cases, but it might matter for yours.

    -

    Example launch line

    +

    Example launch line

    @@ -108,7 +108,7 @@ most use cases, but it might matter for yours.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -131,7 +131,7 @@ most use cases, but it might matter for yours.
    -

    Element Pads

    +

    Element Pads

    @@ -381,6 +381,6 @@ most use cases, but it might matter for yours. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html index b7b3730..e28d77a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html @@ -3,12 +3,12 @@ videoflip - + - + @@ -70,7 +70,7 @@ Flips and rotates video.

    -

    Example launch line

    +

    Example launch line

    @@ -91,7 +91,7 @@ Last reviewed on 2010-04-18 (0.10.22)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -114,7 +114,7 @@ Last reviewed on 2010-04-18 (0.10.22)
    -

    Element Pads

    +

    Element Pads

    @@ -383,6 +383,6 @@ The different flip methods. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html index 8cb2186..0653bb2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html @@ -3,12 +3,12 @@ videomixer - + - + @@ -88,7 +88,7 @@ Individual parameters for each input stream can be configured on the

    -

    Sample pipelines

    +

    Sample pipelines

    @@ -175,7 +175,7 @@ framerate of the output video is 10 frames per second.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -198,7 +198,7 @@ framerate of the output video is 10 frames per second.
    -

    Element Pads

    +

    Element Pads

    @@ -402,14 +402,12 @@ The opaque

    enum GstVideoMixerBackground

    -
    typedef enum
    -{
    +
    typedef enum {
       VIDEO_MIXER_BACKGROUND_CHECKER,
       VIDEO_MIXER_BACKGROUND_BLACK,
       VIDEO_MIXER_BACKGROUND_WHITE,
       VIDEO_MIXER_BACKGROUND_TRANSPARENT,
    -}
    -GstVideoMixerBackground;
    +} GstVideoMixerBackground;
     

    The different backgrounds videomixer can blend over. @@ -453,6 +451,6 @@ The different backgrounds videomixer can blend over.

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer2.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer2.html index 797fbec..4b3fa3a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videomixer2.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer2.html @@ -3,12 +3,12 @@ videomixer2 - + - + @@ -93,7 +93,7 @@ it will replace videomixer

    -

    Sample pipelines

    +

    Sample pipelines

    @@ -194,7 +194,7 @@ framerate of the output video is 10 frames per second.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -217,7 +217,7 @@ framerate of the output video is 10 frames per second.
    -

    Element Pads

    +

    Element Pads

    @@ -421,14 +421,12 @@ The opaque

    enum GstVideoMixer2Background

    -
    typedef enum
    -{
    +
    typedef enum {
       VIDEO_MIXER2_BACKGROUND_CHECKER,
       VIDEO_MIXER2_BACKGROUND_BLACK,
       VIDEO_MIXER2_BACKGROUND_WHITE,
       VIDEO_MIXER2_BACKGROUND_TRANSPARENT,
    -}
    -GstVideoMixer2Background;
    +} GstVideoMixer2Background;
     

    The different backgrounds videomixer can blend over. @@ -472,6 +470,6 @@ The different backgrounds videomixer can blend over.

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html index a36e4f5..d46a007 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html @@ -3,12 +3,12 @@ warptv - + - + @@ -61,7 +61,7 @@ WarpTV does realtime goo'ing of the video input.

    -

    Example launch line

    +

    Example launch line

    @@ -79,7 +79,7 @@ WarpTV does realtime goo'ing of the video input.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -102,7 +102,7 @@ WarpTV does realtime goo'ing of the video input.
    -

    Element Pads

    +

    Element Pads

    @@ -186,6 +186,6 @@ WarpTV does realtime goo'ing of the video input. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html index dffda86..d9dc734 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html @@ -3,12 +3,12 @@ waveformsink - + - + @@ -42,49 +42,10 @@

    Description

    -

    -This element lets you output sound using the Windows WaveForm API. -

    -

    -Note that you should almost always use generic audio conversion elements -like audioconvert and audioresample in front of an audiosink to make sure -your pipeline works under all circumstances (those conversion elements will -act in passthrough-mode if no conversion is necessary). -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch -v audiotestsrc ! audioconvert ! volume volume=0.1 ! waveformsink
    -
    - will output a sine wave (continuous beep sound) to your sound card (with -a very low volume as precaution). -
    - - - - - - - -
    1
    gst-launch -v filesrc location=music.ogg ! decodebin ! audioconvert ! audioresample ! waveformsink
    -
    - will play an Ogg/Vorbis audio file and output it. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -107,7 +68,7 @@ a very low volume as precaution).
    -

    Element Pads

    +

    Element Pads

    @@ -162,6 +123,6 @@ a very low volume as precaution).

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html index b07c4e5..5d2c537 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html @@ -3,12 +3,12 @@ wavenc - + - + @@ -59,7 +59,7 @@ Format a audio stream into the wav format.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -82,7 +82,7 @@ Format a audio stream into the wav format.
    -

    Element Pads

    +

    Element Pads

    @@ -166,6 +166,6 @@ Format a audio stream into the wav format. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html index dba7ad0..87b0ac9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html @@ -3,12 +3,12 @@ wavpackdec - + - + @@ -53,35 +53,10 @@

    Description

    -

    -WavpackDec decodes framed (for example by the WavpackParse element) -Wavpack streams and decodes them to raw audio. -Wavpack is an open-source -audio codec that features both lossless and lossy encoding. -

    -

    -

    -
    -

    Example launch line

    -
    -
    - - - - - - -
    1
    gst-launch filesrc location=test.wv ! wavpackparse ! wavpackdec ! audioconvert ! audioresample ! autoaudiosink
    -
    - This pipeline decodes the Wavpack file test.wv into raw audio buffers and -tries to play it back using an automatically found audio sink. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -104,7 +79,7 @@ tries to play it back using an automatically found audio sink.
    -

    Element Pads

    +

    Element Pads

    @@ -164,6 +139,6 @@ tries to play it back using an automatically found audio sink. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html index b448cda..dbd60e4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html @@ -3,12 +3,12 @@ wavpackenc - + - + @@ -75,58 +75,10 @@ GstWavpackEnc implements

    Description

    -

    -WavpackEnc encodes raw audio into a framed Wavpack stream. -Wavpack is an open-source -audio codec that features both lossless and lossy encoding. -

    -

    -

    -
    -

    Example launch line

    -
    -
    - - - - - - -
    1
    gst-launch audiotestsrc num-buffers=500 ! audioconvert ! wavpackenc ! filesink location=sinewave.wv
    -
    - This pipeline encodes audio from audiotestsrc into a Wavpack file. The audioconvert element is needed -as the Wavpack encoder only accepts input with 32 bit width (and every depth between 1 and 32 bits). -
    - - - - - - - -
    1
    gst-launch cdda://1 ! audioconvert ! wavpackenc ! filesink location=track1.wv
    -
    - This pipeline encodes audio from an audio CD into a Wavpack file using -lossless encoding (the file output will be fairly large). -
    - - - - - - - -
    1
    gst-launch cdda://1 ! audioconvert ! wavpackenc bitrate=128000 ! filesink location=track1.wv
    -
    - This pipeline encodes audio from an audio CD into a Wavpack file using -lossy encoding at a certain bitrate (the file will be fairly small). -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -149,7 +101,7 @@ lossy encoding at a certain bitrate (the file will be fairly small).
    -

    Element Pads

    +

    Element Pads

    @@ -284,6 +236,6 @@ lossy encoding at a certain bitrate (the file will be fairly small). + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html index 2bf8d99..667ef74 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html @@ -3,12 +3,12 @@ wavpackparse - + - + @@ -53,35 +53,10 @@

    Description

    -

    -WavpackParse takes raw, unframed Wavpack streams and splits them into -single Wavpack chunks with information like bit depth and the position -in the stream. -Wavpack is an open-source -audio codec that features both lossless and lossy encoding. -

    -

    -

    -
    -

    Example launch line

    -
    -
    - - - - - - -
    1
    gst-launch filesrc location=test.wv ! wavpackparse ! wavpackdec ! fakesink
    -
    - This pipeline decodes the Wavpack file test.wv into raw audio buffers. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -104,7 +79,7 @@ audio codec that features both lossless and lossy encoding.
    -

    Element Pads

    +

    Element Pads

    @@ -189,6 +164,6 @@ audio codec that features both lossless and lossy encoding. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html index 8253eaa..5b99c16 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html @@ -3,12 +3,12 @@ wavparse - + - + @@ -63,7 +63,7 @@ stream from a network source.

    -

    Example launch line

    +

    Example launch line

    @@ -96,7 +96,7 @@ Last reviewed on 2007-02-14 (0.10.6)

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -119,7 +119,7 @@ Last reviewed on 2007-02-14 (0.10.6)
    -

    Element Pads

    +

    Element Pads

    @@ -284,6 +284,6 @@ Opaque data structure. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html index 20d4889..dc808b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html @@ -3,12 +3,12 @@ webmmux - + - + @@ -68,7 +68,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.

    -

    Example launch line

    +

    Example launch line

    @@ -107,7 +107,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -130,7 +130,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file.
    -

    Element Pads

    +

    Element Pads

    @@ -211,6 +211,6 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html index 3c33582..be5edb2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html @@ -3,12 +3,12 @@ ximagesrc - + - + @@ -67,39 +67,16 @@ "starty" guint : Read / Write "use-damage" gboolean : Read / Write "remote" gboolean : Read / Write + "xid" guint64 : Read / Write + "xname" gchar* : Read / Write

    Description

    -

    -This element captures your X Display and creates raw RGB video. It uses -the XDamage extension if available to only capture areas of the screen that -have changed since the last frame. It uses the XFixes extension if -available to also capture your mouse pointer. By default it will fixate to -25 frames per second. -

    -

    -

    -
    -

    Example pipelines

    -
    -
    - - - - - - -
    1
    gst-launch ximagesrc ! video/x-raw-rgb,framerate=5/1 ! ffmpegcolorspace ! theoraenc ! oggmux ! filesink location=desktop.ogg
    -
    - Encodes your X display to an Ogg theora video at 5 frames per second. -
    -

    -

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -122,7 +99,7 @@ available to also capture your mouse pointer. By default it will fixate to
    -

    Element Pads

    +

    Element Pads

    @@ -185,75 +162,66 @@ available to also capture your mouse pointer. By default it will fixate to

    The "endx" property

      "endx"                     guint                 : Read / Write
    -

    -X coordinate of bottom right corner of area to be recorded -(0 for bottom right of screen) -

    +

    X coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).

    Allowed values: <= G_MAXINT

    Default value: 0

    -

    Since 0.10.4


    The "endy" property

      "endy"                     guint                 : Read / Write
    -

    -Y coordinate of bottom right corner of area to be recorded -(0 for bottom right of screen) -

    +

    Y coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).

    Allowed values: <= G_MAXINT

    Default value: 0

    -

    Since 0.10.4


    The "startx" property

      "startx"                   guint                 : Read / Write
    -

    -X coordinate of top left corner of area to be recorded -(0 for top left of screen) -

    +

    X coordinate of top left corner of area to be recorded (0 for top left of screen).

    Allowed values: <= G_MAXINT

    Default value: 0

    -

    Since 0.10.4


    The "starty" property

      "starty"                   guint                 : Read / Write
    -

    -Y coordinate of top left corner of area to be recorded -(0 for top left of screen) -

    +

    Y coordinate of top left corner of area to be recorded (0 for top left of screen).

    Allowed values: <= G_MAXINT

    Default value: 0

    -

    Since 0.10.4


    The "use-damage" property

      "use-damage"               gboolean              : Read / Write
    -

    -Use XDamage (if the XDamage extension is enabled) -

    +

    Use XDamage (if XDamage extension enabled).

    Default value: TRUE

    -

    Since 0.10.4


    The "remote" property

      "remote"                   gboolean              : Read / Write
    -

    -Whether the X display is remote. The element will try to use alternate calls -known to work better with remote displays. -

    +

    Whether the display is remote.

    Default value: FALSE

    -

    Since 0.10.26

    +
    +
    +
    +

    The "xid" property

    +
      "xid"                      guint64               : Read / Write
    +

    Window XID to capture from.

    +

    Default value: 0

    +
    +
    +
    +

    The "xname" property

    +
      "xname"                    gchar*                : Read / Write
    +

    Window name to capture from.

    +

    Default value: NULL

    + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html index 5309eb9..5e04c8d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html @@ -3,12 +3,12 @@ y4menc - + - + @@ -56,7 +56,7 @@

    -

    Example launch line

    +

    Example launch line

    Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.

    @@ -76,7 +76,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \

    Synopsis

    -

    Element Information

    +

    Element Information

    @@ -99,7 +99,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
    -

    Element Pads

    +

    Element Pads

    @@ -159,6 +159,6 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ + Generated by GTK-Doc V1.18 \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins.devhelp b/docs/plugins/html/gst-plugins-good-plugins.devhelp deleted file mode 100644 index b310b91..0000000 --- a/docs/plugins/html/gst-plugins-good-plugins.devhelp +++ /dev/null @@ -1,1462 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/plugins/html/gst-plugins-good-plugins.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins.devhelp2 index a28f533..fa15287 100644 --- a/docs/plugins/html/gst-plugins-good-plugins.devhelp2 +++ b/docs/plugins/html/gst-plugins-good-plugins.devhelp2 @@ -145,6 +145,7 @@ + @@ -252,16 +253,15 @@ - - - - - - + + + + + + - - - + + @@ -276,20 +276,20 @@ - - - + + + - - - + + + - - + + @@ -302,42 +302,41 @@ - - + + - - + + - - + + - - - + + + - - - + + + - - - + + - - - + + + - - - + + + - - - + + + @@ -345,129 +344,127 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + - - - + + @@ -478,78 +475,75 @@ - - - + + + - - - + + - - - + + - - - + + + - - - + + - - - + + - - - + + + - - - + + + - - - + + + - - - + + + + + + - - - + + + - - - + + - - - + + @@ -560,25 +554,23 @@ - - - + + - - - + + - - - + + + - - - + + + @@ -590,31 +582,28 @@ - - - + + + - - - - + + + + - - - + + - - - + + - - - + + @@ -631,69 +620,62 @@ - - - + + + - - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + - - - + + - - - + + - - - + + - - - - + + - - - + + + - - - + + + - - - + + + @@ -703,6 +685,8 @@ + + @@ -718,9 +702,9 @@ - - - + + + @@ -733,17 +717,17 @@ - - - + + + - - - + + + @@ -767,108 +751,103 @@ - - - + + + - - - + + - - - + + - - - + + - - - + + + - - - + + + - - - + + - - - + + + - - - + + + - - - - - - + + + + + - - - + + + - - - + + + - - - + + - - - + + + - - - + + + - - - + + + - - - + + + + @@ -879,17 +858,17 @@ - - - + + + - - - + + + - - - + + + @@ -900,41 +879,48 @@ - - + + - - + + - - - + + + + - - - + + + + + - - - + + + + + + - - - + + + + - - + + @@ -955,84 +941,75 @@ - - - + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - - + + - - + + - - + + - - - + + + - - - + + @@ -1041,35 +1018,36 @@ - - - + + - - - + + + + + - - - + + + - - - + + + - - - + + + @@ -1080,9 +1058,9 @@ - - - + + + @@ -1091,37 +1069,37 @@ - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + @@ -1129,14 +1107,14 @@ - - - + + + - - + + @@ -1148,19 +1126,19 @@ - - + + - - + + - - - + + + @@ -1179,29 +1157,30 @@ - - - + + + + - - - + + + - - + + - - + + - - - + + + @@ -1209,18 +1188,17 @@ - - - + + + - - - + + @@ -1239,9 +1217,9 @@ - - - + + + @@ -1251,9 +1229,8 @@ - - - + + @@ -1265,24 +1242,28 @@ - - - + + - - - + + + + + + + + - - - + + + - - - + + + @@ -1297,15 +1278,14 @@ - - - + + + - - - + + @@ -1318,7 +1298,7 @@ - + @@ -1338,29 +1318,28 @@ - - - + + - - - + + + - - - + + + - - + + @@ -1370,50 +1349,47 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + - - - + + - - - + + @@ -1422,21 +1398,19 @@ - - - + + - - - + + + - - - + + + - - - + + @@ -1447,9 +1421,11 @@ - - - + + + + + @@ -1462,6 +1438,11 @@ + + + + + diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html index 087e0c7..72bd858 100644 --- a/docs/plugins/html/index.html +++ b/docs/plugins/html/index.html @@ -3,10 +3,10 @@ GStreamer Good Plugins 0.10 Plugins Reference Manual - + - + @@ -15,7 +15,7 @@

    - for GStreamer Good Plugins 0.10 (0.10.29) + for GStreamer Good Plugins 0.10 (0.10.31) The latest version of this documentation can be found on-line at http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/.

    @@ -452,6 +452,9 @@ speexdec — decode speex streams to audio
    +splitfilesrc — Read a sequentially named set of files as if it was one large file +
    +
    streaktv — StreakTV makes after images of moving objects
    @@ -698,7 +701,7 @@ smpte — Apply the standard SMPTE transitions on video images
    -soup — libsoup HTTP client src +soup — libsoup HTTP client src/sink
    spectrum — Run an FFT on the audio signal, output spectrum data @@ -762,6 +765,6 @@
    + Generated by GTK-Doc V1.18
    \ No newline at end of file diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml index 1514002..75d398a 100644 --- a/docs/plugins/html/index.sgml +++ b/docs/plugins/html/index.sgml @@ -35,7 +35,6 @@ - @@ -125,7 +124,6 @@ - @@ -387,7 +385,6 @@ - @@ -406,6 +403,7 @@ + @@ -453,7 +451,6 @@ - @@ -466,7 +463,6 @@ - @@ -503,6 +499,9 @@ + + + @@ -634,7 +633,6 @@ - @@ -642,7 +640,6 @@ - @@ -668,7 +665,6 @@ - @@ -688,7 +684,6 @@ - @@ -733,7 +728,6 @@ - @@ -753,7 +747,6 @@ - @@ -809,6 +802,8 @@ + + @@ -969,7 +964,6 @@ - @@ -1005,7 +999,7 @@ - + @@ -1018,7 +1012,7 @@ - + @@ -1075,9 +1069,12 @@ + + + @@ -1152,11 +1149,19 @@ + + + + + + + + @@ -1170,6 +1175,9 @@ + + + @@ -1182,6 +1190,7 @@ + @@ -1381,7 +1390,6 @@ - @@ -1397,7 +1405,9 @@ - + + + @@ -1411,7 +1421,6 @@ - @@ -1616,6 +1625,7 @@ + @@ -1747,7 +1757,6 @@ - @@ -1758,7 +1767,17 @@ - + + + + + + + + + + + @@ -1837,8 +1856,10 @@ + + @@ -2068,6 +2089,8 @@ + + diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml index 8d1de7e..74e4398 100644 --- a/docs/plugins/inspect/plugin-1394.xml +++ b/docs/plugins/inspect/plugin-1394.xml @@ -3,7 +3,7 @@ Source for video data via IEEE1394 interface ../../ext/raw1394/.libs/libgst1394.so libgst1394.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-aasink.xml b/docs/plugins/inspect/plugin-aasink.xml index ab043c1..41b7484 100644 --- a/docs/plugins/inspect/plugin-aasink.xml +++ b/docs/plugins/inspect/plugin-aasink.xml @@ -3,7 +3,7 @@ ASCII Art video sink ../../ext/aalib/.libs/libgstaasink.so libgstaasink.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-alaw.xml b/docs/plugins/inspect/plugin-alaw.xml index 09df7a3..4dd3192 100644 --- a/docs/plugins/inspect/plugin-alaw.xml +++ b/docs/plugins/inspect/plugin-alaw.xml @@ -3,7 +3,7 @@ ALaw audio conversion routines ../../gst/law/.libs/libgstalaw.so libgstalaw.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-alpha.xml b/docs/plugins/inspect/plugin-alpha.xml index 1c57533..d9c91f0 100644 --- a/docs/plugins/inspect/plugin-alpha.xml +++ b/docs/plugins/inspect/plugin-alpha.xml @@ -3,7 +3,7 @@ adds an alpha channel to video - constant or via chroma-keying ../../gst/alpha/.libs/libgstalpha.so libgstalpha.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-alphacolor.xml b/docs/plugins/inspect/plugin-alphacolor.xml index 9fb7cc1..d488936 100644 --- a/docs/plugins/inspect/plugin-alphacolor.xml +++ b/docs/plugins/inspect/plugin-alphacolor.xml @@ -3,7 +3,7 @@ RGBA from/to AYUV colorspace conversion preserving the alpha channel ../../gst/alpha/.libs/libgstalphacolor.so libgstalphacolor.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-annodex.xml b/docs/plugins/inspect/plugin-annodex.xml index bd2ee7f..5cf2db6 100644 --- a/docs/plugins/inspect/plugin-annodex.xml +++ b/docs/plugins/inspect/plugin-annodex.xml @@ -3,7 +3,7 @@ annodex stream manipulation (info about annodex: http://www.annodex.net) ../../ext/annodex/.libs/libgstannodex.so libgstannodex.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml index c22af92..d57533d 100644 --- a/docs/plugins/inspect/plugin-apetag.xml +++ b/docs/plugins/inspect/plugin-apetag.xml @@ -3,7 +3,7 @@ APEv1/2 tag reader ../../gst/apetag/.libs/libgstapetag.so libgstapetag.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-audiofx.xml b/docs/plugins/inspect/plugin-audiofx.xml index 438dd36..98462d7 100644 --- a/docs/plugins/inspect/plugin-audiofx.xml +++ b/docs/plugins/inspect/plugin-audiofx.xml @@ -3,7 +3,7 @@ Audio effects plugin ../../gst/audiofx/.libs/libgstaudiofx.so libgstaudiofx.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml index 945bc9e..5579512 100644 --- a/docs/plugins/inspect/plugin-audioparsers.xml +++ b/docs/plugins/inspect/plugin-audioparsers.xml @@ -3,7 +3,7 @@ Parsers for various audio formats ../../gst/audioparsers/.libs/libgstaudioparsers.so libgstaudioparsers.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -20,7 +20,7 @@ sink sink always -
    audio/mpeg, framed=(boolean)false, mpegversion=(int){ 2, 4 }
    +
    audio/mpeg, mpegversion=(int){ 2, 4 }
    src @@ -33,7 +33,7 @@ ac3parse AC3 audio stream parser - Codec/Parser/Audio + Codec/Parser/Converter/Audio AC3 parser Tim-Philipp Müller <tim centricular net> @@ -41,13 +41,13 @@ sink sink always -
    audio/x-ac3, framed=(boolean)false; audio/x-eac3, framed=(boolean)false; audio/ac3, framed=(boolean)false
    +
    audio/x-ac3; audio/x-eac3; audio/ac3
    src source always -
    audio/x-ac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 32000, 48000 ]; audio/x-eac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 32000, 48000 ]
    +
    audio/x-ac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 48000 ], alignment=(string){ iec61937, frame }; audio/x-eac3, framed=(boolean)true, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 48000 ], alignment=(string){ iec61937, frame }
    @@ -83,13 +83,13 @@ sink sink always -
    audio/x-dts, framed=(boolean)false
    +
    audio/x-dts
    src source always -
    audio/x-dts, framed=(boolean)true, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 192000 ], depth=(int){ 14, 16 }, endianness=(int){ 1234, 4321 }
    +
    audio/x-dts, framed=(boolean)true, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 192000 ], depth=(int){ 14, 16 }, endianness=(int){ 1234, 4321 }, block-size=(int)[ 1, 2147483647 ], frame-size=(int)[ 1, 2147483647 ]
    @@ -104,7 +104,7 @@ sink sink always -
    audio/x-flac, framed=(boolean)false
    +
    audio/x-flac
    src @@ -125,13 +125,13 @@ sink sink always -
    audio/mpeg, mpegversion=(int)1, parsed=(boolean)false
    +
    audio/mpeg, mpegversion=(int)1
    src source always -
    audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true
    +
    audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], mpegaudioversion=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true
    diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml index 865cb2a..606d88c 100644 --- a/docs/plugins/inspect/plugin-auparse.xml +++ b/docs/plugins/inspect/plugin-auparse.xml @@ -3,7 +3,7 @@ parses au streams ../../gst/auparse/.libs/libgstauparse.so libgstauparse.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-autodetect.xml b/docs/plugins/inspect/plugin-autodetect.xml index 7b8935f..bda0f2e 100644 --- a/docs/plugins/inspect/plugin-autodetect.xml +++ b/docs/plugins/inspect/plugin-autodetect.xml @@ -3,7 +3,7 @@ Plugin contains auto-detection plugins for video/audio in- and outputs ../../gst/autodetect/.libs/libgstautodetect.so libgstautodetect.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-avi.xml b/docs/plugins/inspect/plugin-avi.xml index 8d406e0..14128ab 100644 --- a/docs/plugins/inspect/plugin-avi.xml +++ b/docs/plugins/inspect/plugin-avi.xml @@ -3,7 +3,7 @@ AVI stream handling ../../gst/avi/.libs/libgstavi.so libgstavi.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -59,7 +59,7 @@ video_%d sink request -
    video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-xvid, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-3ivx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    video/x-raw-yuv, format=(fourcc){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-xvid, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-3ivx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    src diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml index 2f79c3d..389f32a 100644 --- a/docs/plugins/inspect/plugin-cacasink.xml +++ b/docs/plugins/inspect/plugin-cacasink.xml @@ -3,7 +3,7 @@ Colored ASCII Art video sink ../../ext/libcaca/.libs/libgstcacasink.so libgstcacasink.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml index 4b43546..1cbb913 100644 --- a/docs/plugins/inspect/plugin-cairo.xml +++ b/docs/plugins/inspect/plugin-cairo.xml @@ -3,7 +3,7 @@ Cairo-based elements ../../ext/cairo/.libs/libgstcairo.so libgstcairo.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml index 58ea53d..1a3dd78 100644 --- a/docs/plugins/inspect/plugin-cutter.xml +++ b/docs/plugins/inspect/plugin-cutter.xml @@ -3,7 +3,7 @@ Audio Cutter to split audio into non-silent bits ../../gst/cutter/.libs/libgstcutter.so libgstcutter.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml index 4cabf46..dedcb7e 100644 --- a/docs/plugins/inspect/plugin-debug.xml +++ b/docs/plugins/inspect/plugin-debug.xml @@ -3,7 +3,7 @@ elements for testing and debugging ../../gst/debugutils/.libs/libgstdebug.so libgstdebug.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -155,7 +155,7 @@ Random buffer size Testing pull random sized buffers - Stefan Kost <stefan.kost@nokia.com>) + Stefan Kost <stefan.kost@nokia.com> sink diff --git a/docs/plugins/inspect/plugin-deinterlace.xml b/docs/plugins/inspect/plugin-deinterlace.xml index 166ac2b..da67e47 100644 --- a/docs/plugins/inspect/plugin-deinterlace.xml +++ b/docs/plugins/inspect/plugin-deinterlace.xml @@ -3,7 +3,7 @@ Deinterlacer ../../gst/deinterlace/.libs/libgstdeinterlace.so libgstdeinterlace.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml index a3a86ed..27be1a9 100644 --- a/docs/plugins/inspect/plugin-dv.xml +++ b/docs/plugins/inspect/plugin-dv.xml @@ -3,7 +3,7 @@ DV demuxer and decoder based on libdv (libdv.sf.net) ../../ext/dv/.libs/libgstdv.so libgstdv.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-efence.xml b/docs/plugins/inspect/plugin-efence.xml index c9583c3..dae0fda 100644 --- a/docs/plugins/inspect/plugin-efence.xml +++ b/docs/plugins/inspect/plugin-efence.xml @@ -3,7 +3,7 @@ This element converts a stream of normal GStreamer buffers into a stream of buffers that are allocated in such a way that out-of-bounds access to data in the buffer is more likely to cause segmentation faults. This allocation method is very similar to the debugging tool "Electric Fence". ../../gst/debugutils/.libs/libgstefence.so libgstefence.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-effectv.xml b/docs/plugins/inspect/plugin-effectv.xml index b0e9bb5..60ea0d8 100644 --- a/docs/plugins/inspect/plugin-effectv.xml +++ b/docs/plugins/inspect/plugin-effectv.xml @@ -3,7 +3,7 @@ effect plugins from the effectv project ../../gst/effectv/.libs/libgsteffectv.so libgsteffectv.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -125,13 +125,13 @@ sink sink always -
    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    src source always -
    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    diff --git a/docs/plugins/inspect/plugin-equalizer.xml b/docs/plugins/inspect/plugin-equalizer.xml index ebda107..fc9588c 100644 --- a/docs/plugins/inspect/plugin-equalizer.xml +++ b/docs/plugins/inspect/plugin-equalizer.xml @@ -3,7 +3,7 @@ GStreamer audio equalizers ../../gst/equalizer/.libs/libgstequalizer.so libgstequalizer.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-esdsink.xml b/docs/plugins/inspect/plugin-esdsink.xml index 0e32aa6..85ec8dc 100644 --- a/docs/plugins/inspect/plugin-esdsink.xml +++ b/docs/plugins/inspect/plugin-esdsink.xml @@ -3,7 +3,7 @@ ESD Element Plugins ../../ext/esd/.libs/libgstesd.so libgstesd.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-flac.xml b/docs/plugins/inspect/plugin-flac.xml index 33d2e36..763eb6e 100644 --- a/docs/plugins/inspect/plugin-flac.xml +++ b/docs/plugins/inspect/plugin-flac.xml @@ -3,7 +3,7 @@ The FLAC Lossless compressor Codec ../../ext/flac/.libs/libgstflac.so libgstflac.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml index a00ac47..8ac1fe8 100644 --- a/docs/plugins/inspect/plugin-flv.xml +++ b/docs/plugins/inspect/plugin-flv.xml @@ -3,7 +3,7 @@ FLV muxing and demuxing plugin ../../gst/flv/.libs/libgstflv.so libgstflv.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -26,7 +26,7 @@ audio source sometimes -
    audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int)4, framed=(boolean)true; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)8, depth=(int)8, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)false; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)16, depth=(int)16, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)true; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }
    +
    audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)8, depth=(int)8, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)false; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)16, depth=(int)16, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)true; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }
    video @@ -47,7 +47,7 @@ audio sink request -
    audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int)4, framed=(boolean)true; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)8, depth=(int)8, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)false; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)16, depth=(int)16, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)true; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }
    +
    audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int)2, framed=(boolean)true; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)8, depth=(int)8, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)false; audio/x-raw-int, endianness=(int)1234, channels=(int){ 1, 2 }, width=(int)16, depth=(int)16, rate=(int){ 5512, 11025, 22050, 44100 }, signed=(boolean)true; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }
    video diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml index f0e6839..f7049cd 100644 --- a/docs/plugins/inspect/plugin-flxdec.xml +++ b/docs/plugins/inspect/plugin-flxdec.xml @@ -3,7 +3,7 @@ FLC/FLI/FLX video decoder ../../gst/flx/.libs/libgstflxdec.so libgstflxdec.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-gconfelements.xml b/docs/plugins/inspect/plugin-gconfelements.xml index ec6a764..e451ebc 100644 --- a/docs/plugins/inspect/plugin-gconfelements.xml +++ b/docs/plugins/inspect/plugin-gconfelements.xml @@ -3,7 +3,7 @@ elements wrapping the GStreamer/GConf audio/video output settings ../../ext/gconf/.libs/libgstgconfelements.so libgstgconfelements.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-gdkpixbuf.xml b/docs/plugins/inspect/plugin-gdkpixbuf.xml index 648ddab..23e32c3 100644 --- a/docs/plugins/inspect/plugin-gdkpixbuf.xml +++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml @@ -3,7 +3,7 @@ GdkPixbuf-based image decoder, scaler and sink ../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so libgstgdkpixbuf.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml index 8c002e3..7d4ad4b 100644 --- a/docs/plugins/inspect/plugin-goom.xml +++ b/docs/plugins/inspect/plugin-goom.xml @@ -3,7 +3,7 @@ GOOM visualization filter ../../gst/goom/.libs/libgstgoom.so libgstgoom.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-goom2k1.xml b/docs/plugins/inspect/plugin-goom2k1.xml index 7f3ed43..4f57b00 100644 --- a/docs/plugins/inspect/plugin-goom2k1.xml +++ b/docs/plugins/inspect/plugin-goom2k1.xml @@ -3,7 +3,7 @@ GOOM 2k1 visualization filter ../../gst/goom2k1/.libs/libgstgoom2k1.so libgstgoom2k1.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-gstrtpmanager.xml b/docs/plugins/inspect/plugin-gstrtpmanager.xml index fe0ac2d..1d4ecab 100644 --- a/docs/plugins/inspect/plugin-gstrtpmanager.xml +++ b/docs/plugins/inspect/plugin-gstrtpmanager.xml @@ -3,7 +3,7 @@ RTP session management plugin library ../../gst/rtpmanager/.libs/libgstrtpmanager.so libgstrtpmanager.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-halelements.xml b/docs/plugins/inspect/plugin-halelements.xml index a22c010..70e9892 100644 --- a/docs/plugins/inspect/plugin-halelements.xml +++ b/docs/plugins/inspect/plugin-halelements.xml @@ -3,7 +3,7 @@ elements wrapping the GStreamer/HAL audio input/output devices ../../ext/hal/.libs/libgsthalelements.so libgsthalelements.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml index 883b4fa..612b740 100644 --- a/docs/plugins/inspect/plugin-icydemux.xml +++ b/docs/plugins/inspect/plugin-icydemux.xml @@ -3,7 +3,7 @@ Demux ICY tags from a stream ../../gst/icydemux/.libs/libgsticydemux.so libgsticydemux.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-id3demux.xml b/docs/plugins/inspect/plugin-id3demux.xml index f674d09..78d85c6 100644 --- a/docs/plugins/inspect/plugin-id3demux.xml +++ b/docs/plugins/inspect/plugin-id3demux.xml @@ -3,7 +3,7 @@ Demux ID3v1 and ID3v2 tags from a file ../../gst/id3demux/.libs/libgstid3demux.so libgstid3demux.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-imagefreeze.xml b/docs/plugins/inspect/plugin-imagefreeze.xml index 22cf715..d63157f 100644 --- a/docs/plugins/inspect/plugin-imagefreeze.xml +++ b/docs/plugins/inspect/plugin-imagefreeze.xml @@ -3,7 +3,7 @@ Still frame stream generator ../../gst/imagefreeze/.libs/libgstimagefreeze.so libgstimagefreeze.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-interleave.xml b/docs/plugins/inspect/plugin-interleave.xml index 95f2105..cacd3bc 100644 --- a/docs/plugins/inspect/plugin-interleave.xml +++ b/docs/plugins/inspect/plugin-interleave.xml @@ -3,7 +3,7 @@ Audio interleaver/deinterleaver ../../gst/interleave/.libs/libgstinterleave.so libgstinterleave.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-isomp4.xml b/docs/plugins/inspect/plugin-isomp4.xml index f19ceaf..f71d1f9 100644 --- a/docs/plugins/inspect/plugin-isomp4.xml +++ b/docs/plugins/inspect/plugin-isomp4.xml @@ -3,7 +3,7 @@ ISO base media file format support (mp4, 3gpp, qt, mj2) ../../gst/isomp4/.libs/libgstisomp4.so libgstisomp4.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -86,7 +86,7 @@ src source always -
    video/quicktime, variant=(string)iso
    +
    video/quicktime, variant=(string)iso-fragmented
    @@ -203,7 +203,7 @@ video_%d sink request -
    video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    src diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml index 5ac8648..c297205 100644 --- a/docs/plugins/inspect/plugin-jack.xml +++ b/docs/plugins/inspect/plugin-jack.xml @@ -3,7 +3,7 @@ JACK audio elements ../../ext/jack/.libs/libgstjack.so libgstjack.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-jpeg.xml b/docs/plugins/inspect/plugin-jpeg.xml index 2b37d37..a742e2d 100644 --- a/docs/plugins/inspect/plugin-jpeg.xml +++ b/docs/plugins/inspect/plugin-jpeg.xml @@ -3,7 +3,7 @@ JPeg plugin library ../../ext/jpeg/.libs/libgstjpeg.so libgstjpeg.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -20,7 +20,7 @@ sink sink always -
    image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ], sof-marker=(int){ 0, 1, 2, 5, 6, 7, 9, 10, 13, 14 }
    src diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml index a4201da..a7a2a30 100644 --- a/docs/plugins/inspect/plugin-level.xml +++ b/docs/plugins/inspect/plugin-level.xml @@ -3,7 +3,7 @@ Audio level plugin ../../gst/level/.libs/libgstlevel.so libgstlevel.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-matroska.xml b/docs/plugins/inspect/plugin-matroska.xml index 0d310cd..749a802 100644 --- a/docs/plugins/inspect/plugin-matroska.xml +++ b/docs/plugins/inspect/plugin-matroska.xml @@ -3,7 +3,7 @@ Matroska and WebM stream handling ../../gst/matroska/.libs/libgstmatroska.so libgstmatroska.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -32,7 +32,7 @@ subtitle_%02d source sometimes -
    text/plain; application/x-ssa; application/x-ass; application/x-usf; video/x-dvd-subpicture; subpicture/x-pgs; subtitle/x-kate; application/x-subtitle-unknown
    +
    text/x-pango-markup; application/x-ssa; application/x-ass; application/x-usf; video/x-dvd-subpicture; subpicture/x-pgs; subtitle/x-kate; application/x-subtitle-unknown
    video_%02d @@ -53,7 +53,7 @@ audio_%d sink request -
    audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], stream-format=(string){ raw }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int){ 2, 4 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-eac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-dts, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-vorbis, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-flac, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-speex, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)8, depth=(int)8, signed=(boolean)false, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)24, depth=(int)24, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)32, depth=(int)32, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)[ 32, 64 ], endianness=(int)1234, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]; audio/x-pn-realaudio, raversion=(int){ 1, 2, 8 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)[ 1, 3 ], block_align=(int)[ 0, 65535 ], bitrate=(int)[ 0, 524288 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]
    +
    audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int){ 2, 4 }, stream-format=(string)raw, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-eac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-dts, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-vorbis, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-flac, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-speex, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)8, depth=(int)8, signed=(boolean)false, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)24, depth=(int)24, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)32, depth=(int)32, endianness=(int){ 4321, 1234 }, signed=(boolean)true, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)[ 32, 64 ], endianness=(int)1234, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]; audio/x-pn-realaudio, raversion=(int){ 1, 2, 8 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)[ 1, 3 ], block_align=(int)[ 0, 65535 ], bitrate=(int)[ 0, 524288 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]
    subtitle_%d diff --git a/docs/plugins/inspect/plugin-monoscope.xml b/docs/plugins/inspect/plugin-monoscope.xml index a2aa4e7..02762d3 100644 --- a/docs/plugins/inspect/plugin-monoscope.xml +++ b/docs/plugins/inspect/plugin-monoscope.xml @@ -3,10 +3,10 @@ Monoscope visualization ../../gst/monoscope/.libs/libgstmonoscope.so libgstmonoscope.so - 0.10.28.4 + 0.10.30.1 LGPL gst-plugins-good - GStreamer Good Plug-ins prerelease + GStreamer Good Plug-ins git Unknown package origin diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml index 8e0b9f4..9329eaf 100644 --- a/docs/plugins/inspect/plugin-mulaw.xml +++ b/docs/plugins/inspect/plugin-mulaw.xml @@ -3,7 +3,7 @@ MuLaw audio conversion routines ../../gst/law/.libs/libgstmulaw.so libgstmulaw.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml index 0456210..669bed4 100644 --- a/docs/plugins/inspect/plugin-multifile.xml +++ b/docs/plugins/inspect/plugin-multifile.xml @@ -3,7 +3,7 @@ Reads/Writes buffers from/to sequentially named files ../../gst/multifile/.libs/libgstmultifile.so libgstmultifile.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -39,5 +39,20 @@ + + splitfilesrc + Split-File Source + Source/File + Read a sequentially named set of files as if it was one large file + Tim-Philipp Müller <tim.muller@collabora.co.uk> + + + src + source + always +
    ANY
    +
    +
    +
    \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-multipart.xml b/docs/plugins/inspect/plugin-multipart.xml index 9ddf9ff..ccbdb8e 100644 --- a/docs/plugins/inspect/plugin-multipart.xml +++ b/docs/plugins/inspect/plugin-multipart.xml @@ -3,7 +3,7 @@ multipart stream manipulation ../../gst/multipart/.libs/libgstmultipart.so libgstmultipart.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-navigationtest.xml b/docs/plugins/inspect/plugin-navigationtest.xml index acec9f1..d65edab 100644 --- a/docs/plugins/inspect/plugin-navigationtest.xml +++ b/docs/plugins/inspect/plugin-navigationtest.xml @@ -3,7 +3,7 @@ Template for a video filter ../../gst/debugutils/.libs/libgstnavigationtest.so libgstnavigationtest.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-oss4.xml b/docs/plugins/inspect/plugin-oss4.xml index cbb832f..f6f6384 100644 --- a/docs/plugins/inspect/plugin-oss4.xml +++ b/docs/plugins/inspect/plugin-oss4.xml @@ -3,7 +3,7 @@ Open Sound System (OSS) version 4 support for GStreamer ../../sys/oss4/.libs/libgstoss4audio.so libgstoss4audio.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-ossaudio.xml b/docs/plugins/inspect/plugin-ossaudio.xml index 3b97679..e05e651 100644 --- a/docs/plugins/inspect/plugin-ossaudio.xml +++ b/docs/plugins/inspect/plugin-ossaudio.xml @@ -3,7 +3,7 @@ OSS (Open Sound System) support for GStreamer ../../sys/oss/.libs/libgstossaudio.so libgstossaudio.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-png.xml b/docs/plugins/inspect/plugin-png.xml index c582531..2209b12 100644 --- a/docs/plugins/inspect/plugin-png.xml +++ b/docs/plugins/inspect/plugin-png.xml @@ -3,7 +3,7 @@ PNG plugin library ../../ext/libpng/.libs/libgstpng.so libgstpng.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -47,7 +47,7 @@ src source always -
    image/png, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    +
    image/png, width=(int)[ 16, 1000000 ], height=(int)[ 16, 1000000 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
    diff --git a/docs/plugins/inspect/plugin-pulseaudio.xml b/docs/plugins/inspect/plugin-pulseaudio.xml index 8630e3f..8d51d9f 100644 --- a/docs/plugins/inspect/plugin-pulseaudio.xml +++ b/docs/plugins/inspect/plugin-pulseaudio.xml @@ -3,13 +3,28 @@ PulseAudio plugin library ../../ext/pulse/.libs/libgstpulse.so libgstpulse.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release Unknown package origin + pulseaudiosink + Bin wrapping pulsesink + Sink/Audio/Bin + Correctly handles sink changes when streaming compressed formats to pulsesink + Arun Raghavan <arun.raghavan@collabora.co.uk> + + + sink + sink + always +
    audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-float, endianness=(int){ 1234, 4321 }, width=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)24, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-ac3, framed=(boolean)true; audio/x-eac3, framed=(boolean)true; audio/x-dts, framed=(boolean)true, block-size=(int){ 512, 1024, 2048 }; audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)[ 1, 2 ], parsed=(boolean)true
    +
    +
    +
    + pulsemixer PulseAudio Mixer Generic/Audio @@ -29,7 +44,7 @@ sink sink always -
    audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-float, endianness=(int){ 1234, 4321 }, width=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)24, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]
    +
    audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-float, endianness=(int){ 1234, 4321 }, width=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)24, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-raw-int, endianness=(int){ 1234, 4321 }, signed=(boolean)true, width=(int)32, depth=(int)24, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ]; audio/x-ac3, framed=(boolean)true; audio/x-eac3, framed=(boolean)true; audio/x-dts, framed=(boolean)true, block-size=(int){ 512, 1024, 2048 }; audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)[ 1, 2 ], parsed=(boolean)true
    diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml index 918b3c0..240e806 100644 --- a/docs/plugins/inspect/plugin-replaygain.xml +++ b/docs/plugins/inspect/plugin-replaygain.xml @@ -3,7 +3,7 @@ ReplayGain volume normalization ../../gst/replaygain/.libs/libgstreplaygain.so libgstreplaygain.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-rtp.xml b/docs/plugins/inspect/plugin-rtp.xml index 713a2fb..1277495 100644 --- a/docs/plugins/inspect/plugin-rtp.xml +++ b/docs/plugins/inspect/plugin-rtp.xml @@ -3,7 +3,7 @@ Real-time protocol plugins ../../gst/rtp/.libs/libgstrtp.so libgstrtp.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -1124,13 +1124,13 @@ sink sink always -
    application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000
    +
    application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA
    src source always -
    audio/x-alaw, channels=(int)1, rate=(int)8000
    +
    audio/x-alaw, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -1151,7 +1151,7 @@ src source always -
    application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)PCMA
    +
    application/x-rtp, media=(string)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA
    @@ -1166,13 +1166,13 @@ sink sink always -
    application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)PCMU; application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000
    +
    application/x-rtp, media=(string)audio, payload=(int)0, encoding-name=(string)PCMU, clock-rate=(int)8000; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]
    src source always -
    audio/x-mulaw, channels=(int)1, rate=(int)8000
    +
    audio/x-mulaw, channels=(int)1, rate=(int)[ 1, 2147483647 ]
    @@ -1193,7 +1193,7 @@ src source always -
    application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000, encoding-name=(string)PCMU; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)PCMU
    +
    application/x-rtp, media=(string)audio, payload=(int)0, clock-rate=(int)8000, encoding-name=(string)PCMU; application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMU
    @@ -1460,7 +1460,7 @@ sink sink always -
    video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-yuv, format=(fourcc){ AYUV, UYVY, I420, Y41B, UYVP }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]
    +
    video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]; video/x-raw-yuv, format=(fourcc){ AYUV, UYVY, I420, Y41B, UYVP }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]
    src diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml index 566e8a8..da53f3e 100644 --- a/docs/plugins/inspect/plugin-rtsp.xml +++ b/docs/plugins/inspect/plugin-rtsp.xml @@ -3,7 +3,7 @@ transfer data via RTSP ../../gst/rtsp/.libs/libgstrtsp.so libgstrtsp.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-shapewipe.xml b/docs/plugins/inspect/plugin-shapewipe.xml index a6b66a6..4ddc5c7 100644 --- a/docs/plugins/inspect/plugin-shapewipe.xml +++ b/docs/plugins/inspect/plugin-shapewipe.xml @@ -3,7 +3,7 @@ Shape Wipe transition filter ../../gst/shapewipe/.libs/libgstshapewipe.so libgstshapewipe.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-shout2send.xml b/docs/plugins/inspect/plugin-shout2send.xml index 52ad3b7..24eb4a7 100644 --- a/docs/plugins/inspect/plugin-shout2send.xml +++ b/docs/plugins/inspect/plugin-shout2send.xml @@ -3,7 +3,7 @@ Sends data to an icecast server using libshout2 ../../ext/shout2/.libs/libgstshout2.so libgstshout2.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good libshout2 diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml index 91df151..7283bc7 100644 --- a/docs/plugins/inspect/plugin-smpte.xml +++ b/docs/plugins/inspect/plugin-smpte.xml @@ -3,7 +3,7 @@ Apply the standard SMPTE transitions on video images ../../gst/smpte/.libs/libgstsmpte.so libgstsmpte.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-soup.xml b/docs/plugins/inspect/plugin-soup.xml index 24ba560..f3707ba 100644 --- a/docs/plugins/inspect/plugin-soup.xml +++ b/docs/plugins/inspect/plugin-soup.xml @@ -1,15 +1,30 @@ soup - libsoup HTTP client src + libsoup HTTP client src/sink ../../ext/soup/.libs/libgstsouphttpsrc.so libgstsouphttpsrc.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release Unknown package origin + souphttpclientsink + HTTP client sink + Generic + Sends streams to HTTP server via PUT + David Schleef <ds@entropywave.com> + + + sink + sink + always +
    ANY
    +
    +
    +
    + souphttpsrc HTTP client source Source/Network diff --git a/docs/plugins/inspect/plugin-spectrum.xml b/docs/plugins/inspect/plugin-spectrum.xml index a4253ef..ac9f023 100644 --- a/docs/plugins/inspect/plugin-spectrum.xml +++ b/docs/plugins/inspect/plugin-spectrum.xml @@ -3,7 +3,7 @@ Run an FFT on the audio signal, output spectrum data ../../gst/spectrum/.libs/libgstspectrum.so libgstspectrum.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-speex.xml b/docs/plugins/inspect/plugin-speex.xml index 41631c3..fdcc94b 100644 --- a/docs/plugins/inspect/plugin-speex.xml +++ b/docs/plugins/inspect/plugin-speex.xml @@ -3,7 +3,7 @@ Speex plugin library ../../ext/speex/.libs/libgstspeex.so libgstspeex.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-taglib.xml b/docs/plugins/inspect/plugin-taglib.xml index 5e3bc1f..d7d404f 100644 --- a/docs/plugins/inspect/plugin-taglib.xml +++ b/docs/plugins/inspect/plugin-taglib.xml @@ -3,7 +3,7 @@ Tag writing plug-in based on taglib ../../ext/taglib/.libs/libgsttaglib.so libgsttaglib.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml index 8469f14..2cca70b 100644 --- a/docs/plugins/inspect/plugin-udp.xml +++ b/docs/plugins/inspect/plugin-udp.xml @@ -3,7 +3,7 @@ transfer data via UDP ../../gst/udp/.libs/libgstudp.so libgstudp.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-video4linux2.xml b/docs/plugins/inspect/plugin-video4linux2.xml index fc749c6..5ed6afa 100644 --- a/docs/plugins/inspect/plugin-video4linux2.xml +++ b/docs/plugins/inspect/plugin-video4linux2.xml @@ -3,7 +3,7 @@ elements for Video 4 Linux ../../sys/v4l2/.libs/libgstvideo4linux2.so libgstvideo4linux2.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml index dcf831b..37956b0 100644 --- a/docs/plugins/inspect/plugin-videobox.xml +++ b/docs/plugins/inspect/plugin-videobox.xml @@ -3,7 +3,7 @@ resizes a video by adding borders or cropping ../../gst/videobox/.libs/libgstvideobox.so libgstvideobox.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-videocrop.xml b/docs/plugins/inspect/plugin-videocrop.xml index c6184f8..795baff 100644 --- a/docs/plugins/inspect/plugin-videocrop.xml +++ b/docs/plugins/inspect/plugin-videocrop.xml @@ -3,7 +3,7 @@ Crops video into a user-defined region ../../gst/videocrop/.libs/libgstvideocrop.so libgstvideocrop.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml index f510ba1..967f386 100644 --- a/docs/plugins/inspect/plugin-videofilter.xml +++ b/docs/plugins/inspect/plugin-videofilter.xml @@ -3,7 +3,7 @@ Video filters plugin ../../gst/videofilter/.libs/libgstvideofilter.so libgstvideofilter.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release @@ -14,7 +14,7 @@ Video gamma correction Filter/Effect/Video Adjusts gamma on a video stream - Arwed v. Merkatz <v.merkatz@gmx.net + Arwed v. Merkatz <v.merkatz@gmx.net> sink diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml index 226d5f6..664e5b7 100644 --- a/docs/plugins/inspect/plugin-videomixer.xml +++ b/docs/plugins/inspect/plugin-videomixer.xml @@ -3,7 +3,7 @@ Video mixer ../../gst/videomixer/.libs/libgstvideomixer.so libgstvideomixer.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-wavenc.xml b/docs/plugins/inspect/plugin-wavenc.xml index 6edef2b..f384207 100644 --- a/docs/plugins/inspect/plugin-wavenc.xml +++ b/docs/plugins/inspect/plugin-wavenc.xml @@ -3,7 +3,7 @@ Encode raw audio into WAV ../../gst/wavenc/.libs/libgstwavenc.so libgstwavenc.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml index 440f009..79e820d 100644 --- a/docs/plugins/inspect/plugin-wavpack.xml +++ b/docs/plugins/inspect/plugin-wavpack.xml @@ -3,7 +3,7 @@ Wavpack lossless/lossy audio format handling ../../ext/wavpack/.libs/libgstwavpack.so libgstwavpack.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-wavparse.xml b/docs/plugins/inspect/plugin-wavparse.xml index 6a7a99a..56039a1 100644 --- a/docs/plugins/inspect/plugin-wavparse.xml +++ b/docs/plugins/inspect/plugin-wavparse.xml @@ -3,7 +3,7 @@ Parse a .wav file into raw audio ../../gst/wavparse/.libs/libgstwavparse.so libgstwavparse.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml index d767f75..4463b48 100644 --- a/docs/plugins/inspect/plugin-ximagesrc.xml +++ b/docs/plugins/inspect/plugin-ximagesrc.xml @@ -3,7 +3,7 @@ X11 video input plugin using standard Xlib calls ../../sys/ximage/.libs/libgstximagesrc.so libgstximagesrc.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/docs/plugins/inspect/plugin-y4menc.xml b/docs/plugins/inspect/plugin-y4menc.xml index 6aae56c..dc2b7d9 100644 --- a/docs/plugins/inspect/plugin-y4menc.xml +++ b/docs/plugins/inspect/plugin-y4menc.xml @@ -3,7 +3,7 @@ Encodes a YUV frame into the yuv4mpeg format (mjpegtools) ../../gst/y4m/.libs/libgsty4menc.so libgsty4menc.so - 0.10.29 + 0.10.31 LGPL gst-plugins-good GStreamer Good Plug-ins source release diff --git a/ext/Makefile.in b/ext/Makefile.in index f6c2cea..ab5eeca 100644 --- a/ext/Makefile.in +++ b/ext/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -70,8 +70,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -85,11 +84,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -208,7 +207,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -283,7 +285,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -307,6 +308,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -341,18 +343,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -405,6 +399,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -439,7 +434,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -582,6 +576,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -806,10 +801,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in index f47b0fc..2e9e138 100644 --- a/ext/aalib/Makefile.in +++ b/ext/aalib/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstaasink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstaasink_la_OBJECTS = libgstaasink_la-gstaasink.lo libgstaasink_la_OBJECTS = $(am_libgstaasink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstaasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstaasink_la_SOURCES) DIST_SOURCES = $(libgstaasink_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +548,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstaasink.la: $(libgstaasink_la_OBJECTS) $(libgstaasink_la_DEPENDENCIES) +libgstaasink.la: $(libgstaasink_la_OBJECTS) $(libgstaasink_la_DEPENDENCIES) $(EXTRA_libgstaasink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaasink_la_LINK) -rpath $(plugindir) $(libgstaasink_la_OBJECTS) $(libgstaasink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +562,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstaasink_la-gstaasink.lo: gstaasink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -MT libgstaasink_la-gstaasink.lo -MD -MP -MF $(DEPDIR)/libgstaasink_la-gstaasink.Tpo -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaasink_la-gstaasink.Tpo $(DEPDIR)/libgstaasink_la-gstaasink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaasink.c' object='libgstaasink_la-gstaasink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaasink.c' object='libgstaasink_la-gstaasink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaasink_la_CFLAGS) $(CFLAGS) -c -o libgstaasink_la-gstaasink.lo `test -f 'gstaasink.c' || echo '$(srcdir)/'`gstaasink.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +692,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c index 06d3199..2909dde 100644 --- a/ext/aalib/gstaasink.c +++ b/ext/aalib/gstaasink.c @@ -190,8 +190,8 @@ gst_aasink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "ASCII art video sink", "Sink/Video", "An ASCII art videosink", "Wim Taymans "); diff --git a/ext/annodex/Makefile.in b/ext/annodex/Makefile.in index 4f719df..5dc3209 100644 --- a/ext/annodex/Makefile.in +++ b/ext/annodex/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +120,8 @@ am_libgstannodex_la_OBJECTS = libgstannodex_la-gstannodex.lo \ libgstannodex_la-gstcmmltag.lo \ libgstannodex_la-gstcmmlparser.lo libgstannodex_la_OBJECTS = $(am_libgstannodex_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstannodex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstannodex_la_SOURCES) DIST_SOURCES = $(libgstannodex_la_SOURCES) @@ -229,7 +234,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -304,7 +312,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -328,6 +335,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -362,18 +370,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -426,6 +426,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -460,7 +461,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,7 +566,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstannodex.la: $(libgstannodex_la_OBJECTS) $(libgstannodex_la_DEPENDENCIES) +libgstannodex.la: $(libgstannodex_la_OBJECTS) $(libgstannodex_la_DEPENDENCIES) $(EXTRA_libgstannodex_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstannodex_la_LINK) -rpath $(plugindir) $(libgstannodex_la_OBJECTS) $(libgstannodex_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -585,74 +585,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstannodex_la-gstannodex.lo: gstannodex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstannodex.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstannodex.Tpo -c -o libgstannodex_la-gstannodex.lo `test -f 'gstannodex.c' || echo '$(srcdir)/'`gstannodex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstannodex.Tpo $(DEPDIR)/libgstannodex_la-gstannodex.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstannodex.c' object='libgstannodex_la-gstannodex.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstannodex.c' object='libgstannodex_la-gstannodex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstannodex.lo `test -f 'gstannodex.c' || echo '$(srcdir)/'`gstannodex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstannodex.lo `test -f 'gstannodex.c' || echo '$(srcdir)/'`gstannodex.c libgstannodex_la-gstcmmlutils.lo: gstcmmlutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstcmmlutils.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstcmmlutils.Tpo -c -o libgstannodex_la-gstcmmlutils.lo `test -f 'gstcmmlutils.c' || echo '$(srcdir)/'`gstcmmlutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstcmmlutils.Tpo $(DEPDIR)/libgstannodex_la-gstcmmlutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcmmlutils.c' object='libgstannodex_la-gstcmmlutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcmmlutils.c' object='libgstannodex_la-gstcmmlutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlutils.lo `test -f 'gstcmmlutils.c' || echo '$(srcdir)/'`gstcmmlutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlutils.lo `test -f 'gstcmmlutils.c' || echo '$(srcdir)/'`gstcmmlutils.c libgstannodex_la-gstcmmldec.lo: gstcmmldec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstcmmldec.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstcmmldec.Tpo -c -o libgstannodex_la-gstcmmldec.lo `test -f 'gstcmmldec.c' || echo '$(srcdir)/'`gstcmmldec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstcmmldec.Tpo $(DEPDIR)/libgstannodex_la-gstcmmldec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcmmldec.c' object='libgstannodex_la-gstcmmldec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcmmldec.c' object='libgstannodex_la-gstcmmldec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmldec.lo `test -f 'gstcmmldec.c' || echo '$(srcdir)/'`gstcmmldec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmldec.lo `test -f 'gstcmmldec.c' || echo '$(srcdir)/'`gstcmmldec.c libgstannodex_la-gstcmmlenc.lo: gstcmmlenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstcmmlenc.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstcmmlenc.Tpo -c -o libgstannodex_la-gstcmmlenc.lo `test -f 'gstcmmlenc.c' || echo '$(srcdir)/'`gstcmmlenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstcmmlenc.Tpo $(DEPDIR)/libgstannodex_la-gstcmmlenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcmmlenc.c' object='libgstannodex_la-gstcmmlenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcmmlenc.c' object='libgstannodex_la-gstcmmlenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlenc.lo `test -f 'gstcmmlenc.c' || echo '$(srcdir)/'`gstcmmlenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlenc.lo `test -f 'gstcmmlenc.c' || echo '$(srcdir)/'`gstcmmlenc.c libgstannodex_la-gstcmmltag.lo: gstcmmltag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstcmmltag.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstcmmltag.Tpo -c -o libgstannodex_la-gstcmmltag.lo `test -f 'gstcmmltag.c' || echo '$(srcdir)/'`gstcmmltag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstcmmltag.Tpo $(DEPDIR)/libgstannodex_la-gstcmmltag.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcmmltag.c' object='libgstannodex_la-gstcmmltag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcmmltag.c' object='libgstannodex_la-gstcmmltag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmltag.lo `test -f 'gstcmmltag.c' || echo '$(srcdir)/'`gstcmmltag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmltag.lo `test -f 'gstcmmltag.c' || echo '$(srcdir)/'`gstcmmltag.c libgstannodex_la-gstcmmlparser.lo: gstcmmlparser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -MT libgstannodex_la-gstcmmlparser.lo -MD -MP -MF $(DEPDIR)/libgstannodex_la-gstcmmlparser.Tpo -c -o libgstannodex_la-gstcmmlparser.lo `test -f 'gstcmmlparser.c' || echo '$(srcdir)/'`gstcmmlparser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstannodex_la-gstcmmlparser.Tpo $(DEPDIR)/libgstannodex_la-gstcmmlparser.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcmmlparser.c' object='libgstannodex_la-gstcmmlparser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcmmlparser.c' object='libgstannodex_la-gstcmmlparser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlparser.lo `test -f 'gstcmmlparser.c' || echo '$(srcdir)/'`gstcmmlparser.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstannodex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstannodex_la_CFLAGS) $(CFLAGS) -c -o libgstannodex_la-gstcmmlparser.lo `test -f 'gstcmmlparser.c' || echo '$(srcdir)/'`gstcmmlparser.c mostlyclean-libtool: -rm -f *.lo @@ -759,10 +750,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/annodex/gstcmmldec.c b/ext/annodex/gstcmmldec.c index 79b267a..695e992 100644 --- a/ext/annodex/gstcmmldec.c +++ b/ext/annodex/gstcmmldec.c @@ -121,10 +121,10 @@ gst_cmml_dec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cmml_dec_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cmml_dec_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_cmml_dec_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &gst_cmml_dec_src_factory); gst_element_class_set_details_simple (element_class, "CMML stream decoder", "Codec/Decoder", "Decodes CMML streams", "Alessandro Decina "); diff --git a/ext/annodex/gstcmmlenc.c b/ext/annodex/gstcmmlenc.c index a3255dc..7bdfc1e 100644 --- a/ext/annodex/gstcmmlenc.c +++ b/ext/annodex/gstcmmlenc.c @@ -108,10 +108,10 @@ gst_cmml_enc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cmml_enc_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cmml_enc_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_cmml_enc_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &gst_cmml_enc_src_factory); gst_element_class_set_details_simple (element_class, "CMML streams encoder", "Codec/Encoder", "Encodes CMML streams", "Alessandro Decina "); diff --git a/ext/cairo/Makefile.am b/ext/cairo/Makefile.am index 5a8d3be..7fa8fdc 100644 --- a/ext/cairo/Makefile.am +++ b/ext/cairo/Makefile.am @@ -36,8 +36,8 @@ libgstcairo_la_CFLAGS = \ $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) $(CAIRO_CFLAGS) $(CAIRO_GOBJECT_CFLAGS) libgstcairo_la_LIBADD = \ - $(GST_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ - $(GST_LIBS) $(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) $(LIBM) + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) $(LIBM) libgstcairo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstcairo_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in index 8efed15..84b71b4 100644 --- a/ext/cairo/Makefile.in +++ b/ext/cairo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -75,8 +75,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -111,12 +110,19 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstcairo_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am__libgstcairo_la_SOURCES_DIST = gstcairo.c gsttimeoverlay.c \ gsttextoverlay.c gstcairorender.c gstcairooverlay.c @USE_CAIRO_GOBJECT_TRUE@am__objects_1 = \ @@ -130,8 +136,8 @@ am_libgstcairo_la_OBJECTS = libgstcairo_la-gstcairo.lo \ nodist_libgstcairo_la_OBJECTS = $(am__objects_2) libgstcairo_la_OBJECTS = $(am_libgstcairo_la_OBJECTS) \ $(nodist_libgstcairo_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcairo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -147,21 +153,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcairo_la_SOURCES) $(nodist_libgstcairo_la_SOURCES) DIST_SOURCES = $(am__libgstcairo_la_SOURCES_DIST) @@ -246,7 +252,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -321,7 +330,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -345,6 +353,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -379,18 +388,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -443,6 +444,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -477,7 +479,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -531,8 +532,8 @@ libgstcairo_la_CFLAGS = \ $(GST_CFLAGS) $(CAIRO_CFLAGS) $(CAIRO_GOBJECT_CFLAGS) libgstcairo_la_LIBADD = \ - $(GST_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ - $(GST_LIBS) $(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) $(LIBM) + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(CAIRO_LIBS) $(CAIRO_GOBJECT_LIBS) $(LIBM) libgstcairo_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstcairo_la_LIBTOOLFLAGS = --tag=disable-static @@ -563,6 +564,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -603,7 +605,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcairo.la: $(libgstcairo_la_OBJECTS) $(libgstcairo_la_DEPENDENCIES) +libgstcairo.la: $(libgstcairo_la_OBJECTS) $(libgstcairo_la_DEPENDENCIES) $(EXTRA_libgstcairo_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcairo_la_LINK) -rpath $(plugindir) $(libgstcairo_la_OBJECTS) $(libgstcairo_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -622,74 +624,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcairo_la-gstcairo.lo: gstcairo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairo.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairo.Tpo -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairo.Tpo $(DEPDIR)/libgstcairo_la-gstcairo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcairo.c' object='libgstcairo_la-gstcairo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcairo.c' object='libgstcairo_la-gstcairo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo.lo `test -f 'gstcairo.c' || echo '$(srcdir)/'`gstcairo.c libgstcairo_la-gsttimeoverlay.lo: gsttimeoverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gsttimeoverlay.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gsttimeoverlay.Tpo -c -o libgstcairo_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gsttimeoverlay.Tpo $(DEPDIR)/libgstcairo_la-gsttimeoverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttimeoverlay.c' object='libgstcairo_la-gsttimeoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttimeoverlay.c' object='libgstcairo_la-gsttimeoverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c libgstcairo_la-gsttextoverlay.lo: gsttextoverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gsttextoverlay.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gsttextoverlay.Tpo -c -o libgstcairo_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gsttextoverlay.Tpo $(DEPDIR)/libgstcairo_la-gsttextoverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttextoverlay.c' object='libgstcairo_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttextoverlay.c' object='libgstcairo_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c libgstcairo_la-gstcairorender.lo: gstcairorender.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairorender.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairorender.Tpo -c -o libgstcairo_la-gstcairorender.lo `test -f 'gstcairorender.c' || echo '$(srcdir)/'`gstcairorender.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairorender.Tpo $(DEPDIR)/libgstcairo_la-gstcairorender.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcairorender.c' object='libgstcairo_la-gstcairorender.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcairorender.c' object='libgstcairo_la-gstcairorender.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairorender.lo `test -f 'gstcairorender.c' || echo '$(srcdir)/'`gstcairorender.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairorender.lo `test -f 'gstcairorender.c' || echo '$(srcdir)/'`gstcairorender.c libgstcairo_la-gstcairooverlay.lo: gstcairooverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairooverlay.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairooverlay.Tpo -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairooverlay.Tpo $(DEPDIR)/libgstcairo_la-gstcairooverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcairooverlay.c' object='libgstcairo_la-gstcairooverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcairooverlay.c' object='libgstcairo_la-gstcairooverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairooverlay.lo `test -f 'gstcairooverlay.c' || echo '$(srcdir)/'`gstcairooverlay.c libgstcairo_la-gstcairo-marshal.lo: gstcairo-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -MT libgstcairo_la-gstcairo-marshal.lo -MD -MP -MF $(DEPDIR)/libgstcairo_la-gstcairo-marshal.Tpo -c -o libgstcairo_la-gstcairo-marshal.lo `test -f 'gstcairo-marshal.c' || echo '$(srcdir)/'`gstcairo-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcairo_la-gstcairo-marshal.Tpo $(DEPDIR)/libgstcairo_la-gstcairo-marshal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcairo-marshal.c' object='libgstcairo_la-gstcairo-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcairo-marshal.c' object='libgstcairo_la-gstcairo-marshal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo-marshal.lo `test -f 'gstcairo-marshal.c' || echo '$(srcdir)/'`gstcairo-marshal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcairo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcairo_la_CFLAGS) $(CFLAGS) -c -o libgstcairo_la-gstcairo-marshal.lo `test -f 'gstcairo-marshal.c' || echo '$(srcdir)/'`gstcairo-marshal.c mostlyclean-libtool: -rm -f *.lo @@ -798,10 +791,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/cairo/gstcairooverlay.c b/ext/cairo/gstcairooverlay.c index bdb0a39..a19aed6 100644 --- a/ext/cairo/gstcairooverlay.c +++ b/ext/cairo/gstcairooverlay.c @@ -194,10 +194,10 @@ gst_cairo_overlay_base_init (gpointer g_class) "Render overlay on a video stream using Cairo", "Jon Nordby "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cairo_overlay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cairo_overlay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_cairo_overlay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_cairo_overlay_src_template); } static void diff --git a/ext/cairo/gstcairorender.c b/ext/cairo/gstcairorender.c index cf1b563..870ac17 100644 --- a/ext/cairo/gstcairorender.c +++ b/ext/cairo/gstcairorender.c @@ -354,8 +354,8 @@ gst_cairo_render_base_init (gpointer g_class) gst_element_class_set_details_simple (ec, "Cairo encoder", "Codec/Encoder", "Encodes streams using Cairo", "Lutz Mueller "); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&t_snk)); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&t_src)); + gst_element_class_add_static_pad_template (ec, &t_snk); + gst_element_class_add_static_pad_template (ec, &t_src); } static void diff --git a/ext/cairo/gsttextoverlay.c b/ext/cairo/gsttextoverlay.c index 364b8ba..8cb39cc 100644 --- a/ext/cairo/gsttextoverlay.c +++ b/ext/cairo/gsttextoverlay.c @@ -65,12 +65,14 @@ enum ARG_YPAD, ARG_DELTAX, ARG_DELTAY, + ARG_SILENT, ARG_FONT_DESC }; #define DEFAULT_YPAD 25 #define DEFAULT_XPAD 25 #define DEFAULT_FONT "sans" +#define DEFAULT_SILENT FALSE #define GST_CAIRO_TEXT_OVERLAY_DEFAULT_SCALE 20.0 @@ -108,6 +110,8 @@ static GstFlowReturn gst_text_overlay_collected (GstCollectPads * pads, gpointer data); static void gst_text_overlay_finalize (GObject * object); static void gst_text_overlay_font_init (GstCairoTextOverlay * overlay); +static gboolean gst_text_overlay_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_text_overlay_video_event (GstPad * pad, GstEvent * event); /* These macros are adapted from videotestsrc.c */ #define I420_Y_ROWSTRIDE(width) (GST_ROUND_UP_4(width)) @@ -128,12 +132,12 @@ gst_text_overlay_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cairo_text_overlay_src_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&text_sink_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &cairo_text_overlay_src_template_factory); + gst_element_class_add_static_pad_template (element_class, + &video_sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &text_sink_template_factory); gst_element_class_set_details_simple (element_class, "Text overlay", "Filter/Editor/Video", @@ -199,6 +203,11 @@ gst_text_overlay_class_init (GstCairoTextOverlayClass * klass) "See documentation of " "pango_font_description_from_string" " for syntax.", "", G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); + /* FIXME 0.11: rename to "visible" or "text-visible" or "render-text" */ + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SILENT, + g_param_spec_boolean ("silent", "silent", + "Whether to render the text string", + DEFAULT_SILENT, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); } static void @@ -248,6 +257,8 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay, (&cairo_text_overlay_src_template_factory, "src"); gst_pad_set_getcaps_function (overlay->srcpad, GST_DEBUG_FUNCPTR (gst_text_overlay_getcaps)); + gst_pad_set_event_function (overlay->srcpad, + GST_DEBUG_FUNCPTR (gst_text_overlay_src_event)); gst_element_add_pad (GST_ELEMENT (overlay), overlay->srcpad); overlay->halign = GST_CAIRO_TEXT_OVERLAY_HALIGN_CENTER; @@ -263,6 +274,8 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay, overlay->font = g_strdup (DEFAULT_FONT); gst_text_overlay_font_init (overlay); + overlay->silent = DEFAULT_SILENT; + overlay->fps_n = 0; overlay->fps_d = 1; @@ -274,6 +287,14 @@ gst_text_overlay_init (GstCairoTextOverlay * overlay, overlay->video_collect_data = gst_collect_pads_add_pad (overlay->collect, overlay->video_sinkpad, sizeof (GstCollectData)); + /* FIXME: hacked way to override/extend the event function of + * GstCollectPads; because it sets its own event function giving the + * element no access to events. Nicked from avimux. */ + overlay->collect_event = + (GstPadEventFunction) GST_PAD_EVENTFUNC (overlay->video_sinkpad); + gst_pad_set_event_function (overlay->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_text_overlay_video_event)); + /* text pad will be added when it is linked */ overlay->text_collect_data = NULL; } @@ -398,6 +419,9 @@ gst_text_overlay_set_property (GObject * object, guint prop_id, gst_text_overlay_font_init (overlay); break; } + case ARG_SILENT: + overlay->silent = g_value_get_boolean (value); + break; default:{ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -419,6 +443,11 @@ gst_text_overlay_render_text (GstCairoTextOverlay * overlay, gchar *string; double x, y; + if (overlay->silent) { + GST_DEBUG_OBJECT (overlay, "Silent mode, not rendering"); + return; + } + if (textlen < 0) textlen = strlen (text); @@ -942,6 +971,45 @@ done: } } +static gboolean +gst_text_overlay_src_event (GstPad * pad, GstEvent * event) +{ + GstCairoTextOverlay *overlay = + GST_CAIRO_TEXT_OVERLAY (gst_pad_get_parent (pad)); + gboolean ret = TRUE; + + /* forward events to the video sink, and, if it is linked, the text sink */ + if (overlay->text_collect_data) { + gst_event_ref (event); + ret &= gst_pad_push_event (overlay->text_sinkpad, event); + } + ret &= gst_pad_push_event (overlay->video_sinkpad, event); + + gst_object_unref (overlay); + return ret; +} + +static gboolean +gst_text_overlay_video_event (GstPad * pad, GstEvent * event) +{ + gboolean ret = FALSE; + GstCairoTextOverlay *overlay = NULL; + + overlay = GST_CAIRO_TEXT_OVERLAY (gst_pad_get_parent (pad)); + + if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) { + GST_DEBUG_OBJECT (overlay, + "received new segment on video sink pad, forwarding"); + gst_event_ref (event); + gst_pad_push_event (overlay->srcpad, event); + } + + /* now GstCollectPads can take care of the rest, e.g. EOS */ + ret = overlay->collect_event (pad, event); + gst_object_unref (overlay); + return ret; +} + static GstStateChangeReturn gst_text_overlay_change_state (GstElement * element, GstStateChange transition) { diff --git a/ext/cairo/gsttextoverlay.h b/ext/cairo/gsttextoverlay.h index 8af3155..dbb2154 100644 --- a/ext/cairo/gsttextoverlay.h +++ b/ext/cairo/gsttextoverlay.h @@ -48,6 +48,7 @@ struct _GstCairoTextOverlay { GstCollectPads *collect; GstCollectData *video_collect_data; GstCollectData *text_collect_data; + GstPadEventFunction collect_event; gint width; gint height; @@ -75,6 +76,7 @@ struct _GstCairoTextOverlay { gint slant; gint weight; gdouble scale; + gboolean silent; }; struct _GstCairoTextOverlayClass { diff --git a/ext/cairo/gsttimeoverlay.c b/ext/cairo/gsttimeoverlay.c index b731c37..10973b1 100644 --- a/ext/cairo/gsttimeoverlay.c +++ b/ext/cairo/gsttimeoverlay.c @@ -265,10 +265,10 @@ gst_cairo_time_overlay_base_init (gpointer g_class) "Filter/Editor/Video", "Overlays the time on a video stream", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cairo_time_overlay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_cairo_time_overlay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_cairo_time_overlay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_cairo_time_overlay_src_template); } static void diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in index 279182d..bb9c93e 100644 --- a/ext/dv/Makefile.in +++ b/ext/dv/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -69,8 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -105,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ libgstdv_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ am_libgstdv_la_OBJECTS = libgstdv_la-gstdv.lo libgstdv_la-gstdvdec.lo \ libgstdv_la-gstdvdemux.lo libgstdv_la-gstsmptetimecode.lo libgstdv_la_OBJECTS = $(am_libgstdv_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -138,21 +143,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES) DIST_SOURCES = $(libgstdv_la_SOURCES) $(smpte_test_SOURCES) @@ -235,7 +240,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -310,7 +318,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -334,6 +341,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -368,18 +376,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -432,6 +432,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -466,7 +467,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,7 +566,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdv.la: $(libgstdv_la_OBJECTS) $(libgstdv_la_DEPENDENCIES) +libgstdv.la: $(libgstdv_la_OBJECTS) $(libgstdv_la_DEPENDENCIES) $(EXTRA_libgstdv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdv_la_LINK) -rpath $(plugindir) $(libgstdv_la_OBJECTS) $(libgstdv_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @@ -577,7 +577,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -smpte_test$(EXEEXT): $(smpte_test_OBJECTS) $(smpte_test_DEPENDENCIES) +smpte_test$(EXEEXT): $(smpte_test_OBJECTS) $(smpte_test_DEPENDENCIES) $(EXTRA_smpte_test_DEPENDENCIES) @rm -f smpte_test$(EXEEXT) $(AM_V_CCLD)$(smpte_test_LINK) $(smpte_test_OBJECTS) $(smpte_test_LDADD) $(LIBS) @@ -597,90 +597,79 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdv_la-gstdv.lo: gstdv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdv.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdv.Tpo -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdv.Tpo $(DEPDIR)/libgstdv_la-gstdv.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdv.c' object='libgstdv_la-gstdv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdv.c' object='libgstdv_la-gstdv.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdv.lo `test -f 'gstdv.c' || echo '$(srcdir)/'`gstdv.c libgstdv_la-gstdvdec.lo: gstdvdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdec.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdec.Tpo -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdvdec.Tpo $(DEPDIR)/libgstdv_la-gstdvdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvdec.c' object='libgstdv_la-gstdvdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvdec.c' object='libgstdv_la-gstdvdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdec.lo `test -f 'gstdvdec.c' || echo '$(srcdir)/'`gstdvdec.c libgstdv_la-gstdvdemux.lo: gstdvdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstdvdemux.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstdvdemux.Tpo -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstdvdemux.Tpo $(DEPDIR)/libgstdv_la-gstdvdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdvdemux.c' object='libgstdv_la-gstdvdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdvdemux.c' object='libgstdv_la-gstdvdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstdvdemux.lo `test -f 'gstdvdemux.c' || echo '$(srcdir)/'`gstdvdemux.c libgstdv_la-gstsmptetimecode.lo: gstsmptetimecode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -MT libgstdv_la-gstsmptetimecode.lo -MD -MP -MF $(DEPDIR)/libgstdv_la-gstsmptetimecode.Tpo -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdv_la-gstsmptetimecode.Tpo $(DEPDIR)/libgstdv_la-gstsmptetimecode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmptetimecode.c' object='libgstdv_la-gstsmptetimecode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmptetimecode.c' object='libgstdv_la-gstsmptetimecode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdv_la_CFLAGS) $(CFLAGS) -c -o libgstdv_la-gstsmptetimecode.lo `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c smpte_test-smpte_test.o: smpte_test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -MT smpte_test-smpte_test.o -MD -MP -MF $(DEPDIR)/smpte_test-smpte_test.Tpo -c -o smpte_test-smpte_test.o `test -f 'smpte_test.c' || echo '$(srcdir)/'`smpte_test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/smpte_test-smpte_test.Tpo $(DEPDIR)/smpte_test-smpte_test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smpte_test.c' object='smpte_test-smpte_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='smpte_test.c' object='smpte_test-smpte_test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-smpte_test.o `test -f 'smpte_test.c' || echo '$(srcdir)/'`smpte_test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-smpte_test.o `test -f 'smpte_test.c' || echo '$(srcdir)/'`smpte_test.c smpte_test-smpte_test.obj: smpte_test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -MT smpte_test-smpte_test.obj -MD -MP -MF $(DEPDIR)/smpte_test-smpte_test.Tpo -c -o smpte_test-smpte_test.obj `if test -f 'smpte_test.c'; then $(CYGPATH_W) 'smpte_test.c'; else $(CYGPATH_W) '$(srcdir)/smpte_test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/smpte_test-smpte_test.Tpo $(DEPDIR)/smpte_test-smpte_test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smpte_test.c' object='smpte_test-smpte_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='smpte_test.c' object='smpte_test-smpte_test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-smpte_test.obj `if test -f 'smpte_test.c'; then $(CYGPATH_W) 'smpte_test.c'; else $(CYGPATH_W) '$(srcdir)/smpte_test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-smpte_test.obj `if test -f 'smpte_test.c'; then $(CYGPATH_W) 'smpte_test.c'; else $(CYGPATH_W) '$(srcdir)/smpte_test.c'; fi` smpte_test-gstsmptetimecode.o: gstsmptetimecode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -MT smpte_test-gstsmptetimecode.o -MD -MP -MF $(DEPDIR)/smpte_test-gstsmptetimecode.Tpo -c -o smpte_test-gstsmptetimecode.o `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/smpte_test-gstsmptetimecode.Tpo $(DEPDIR)/smpte_test-gstsmptetimecode.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmptetimecode.c' object='smpte_test-gstsmptetimecode.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmptetimecode.c' object='smpte_test-gstsmptetimecode.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-gstsmptetimecode.o `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-gstsmptetimecode.o `test -f 'gstsmptetimecode.c' || echo '$(srcdir)/'`gstsmptetimecode.c smpte_test-gstsmptetimecode.obj: gstsmptetimecode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -MT smpte_test-gstsmptetimecode.obj -MD -MP -MF $(DEPDIR)/smpte_test-gstsmptetimecode.Tpo -c -o smpte_test-gstsmptetimecode.obj `if test -f 'gstsmptetimecode.c'; then $(CYGPATH_W) 'gstsmptetimecode.c'; else $(CYGPATH_W) '$(srcdir)/gstsmptetimecode.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/smpte_test-gstsmptetimecode.Tpo $(DEPDIR)/smpte_test-gstsmptetimecode.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmptetimecode.c' object='smpte_test-gstsmptetimecode.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmptetimecode.c' object='smpte_test-gstsmptetimecode.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-gstsmptetimecode.obj `if test -f 'gstsmptetimecode.c'; then $(CYGPATH_W) 'gstsmptetimecode.c'; else $(CYGPATH_W) '$(srcdir)/gstsmptetimecode.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(smpte_test_CFLAGS) $(CFLAGS) -c -o smpte_test-gstsmptetimecode.obj `if test -f 'gstsmptetimecode.c'; then $(CYGPATH_W) 'gstsmptetimecode.c'; else $(CYGPATH_W) '$(srcdir)/gstsmptetimecode.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -787,10 +776,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c index e7fd946..e425744 100644 --- a/ext/dv/gstdvdec.c +++ b/ext/dv/gstdvdec.c @@ -166,10 +166,8 @@ gst_dvdec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_temp)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_temp)); + gst_element_class_add_static_pad_template (element_class, &sink_temp); + gst_element_class_add_static_pad_template (element_class, &src_temp); gst_element_class_set_details_simple (element_class, "DV video decoder", "Codec/Decoder/Video", diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index 90a2651..467ebe5 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -21,6 +21,11 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include @@ -174,12 +179,11 @@ gst_dvdemux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_temp)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_temp)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_temp)); + gst_element_class_add_static_pad_template (element_class, &sink_temp); + gst_element_class_add_static_pad_template (element_class, + &video_src_temp); + gst_element_class_add_static_pad_template (element_class, + &audio_src_temp); gst_element_class_set_details_simple (element_class, "DV system stream demuxer", "Codec/Demuxer", @@ -574,26 +578,23 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query) GstFormat format; GstFormat format2; gint64 end; - GstPad *peer; - /* get target format */ - gst_query_parse_duration (query, &format, NULL); + /* First ask the peer in the original format */ + if (!gst_pad_peer_query (dvdemux->sinkpad, query)) { + /* get target format */ + gst_query_parse_duration (query, &format, NULL); - /* change query to bytes to perform on peer */ - gst_query_set_duration (query, GST_FORMAT_BYTES, -1); + /* change query to bytes to perform on peer */ + gst_query_set_duration (query, GST_FORMAT_BYTES, -1); - if ((peer = gst_pad_get_peer (dvdemux->sinkpad))) { - /* ask peer for total length */ - if (!(res = gst_pad_query (peer, query))) { - gst_object_unref (peer); + /* Now ask the peer in BYTES format and try to convert */ + if (!gst_pad_peer_query (dvdemux->sinkpad, query)) { goto error; } /* get peer total length */ gst_query_parse_duration (query, NULL, &end); - gst_object_unref (peer); - /* convert end to requested format */ if (end != -1) { format2 = format; @@ -601,11 +602,9 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query) GST_FORMAT_BYTES, end, &format2, &end))) { goto error; } + gst_query_set_duration (query, format, end); } - } else { - end = -1; } - gst_query_set_duration (query, format, end); break; } case GST_QUERY_CONVERT: diff --git a/ext/esd/Makefile.in b/ext/esd/Makefile.in index 469e0f2..0d5be60 100644 --- a/ext/esd/Makefile.in +++ b/ext/esd/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +117,8 @@ libgstesd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstesd_la_OBJECTS = libgstesd_la-esdsink.lo \ libgstesd_la-gstesd.lo libgstesd_la_OBJECTS = $(am_libgstesd_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstesd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstesd_la_SOURCES) DIST_SOURCES = $(libgstesd_la_SOURCES) @@ -226,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -301,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -325,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -359,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -423,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -457,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -556,7 +556,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstesd.la: $(libgstesd_la_OBJECTS) $(libgstesd_la_DEPENDENCIES) +libgstesd.la: $(libgstesd_la_OBJECTS) $(libgstesd_la_DEPENDENCIES) $(EXTRA_libgstesd_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstesd_la_LINK) -rpath $(plugindir) $(libgstesd_la_OBJECTS) $(libgstesd_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -571,42 +571,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstesd_la-esdsink.lo: esdsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -MT libgstesd_la-esdsink.lo -MD -MP -MF $(DEPDIR)/libgstesd_la-esdsink.Tpo -c -o libgstesd_la-esdsink.lo `test -f 'esdsink.c' || echo '$(srcdir)/'`esdsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstesd_la-esdsink.Tpo $(DEPDIR)/libgstesd_la-esdsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='esdsink.c' object='libgstesd_la-esdsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='esdsink.c' object='libgstesd_la-esdsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -c -o libgstesd_la-esdsink.lo `test -f 'esdsink.c' || echo '$(srcdir)/'`esdsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -c -o libgstesd_la-esdsink.lo `test -f 'esdsink.c' || echo '$(srcdir)/'`esdsink.c libgstesd_la-gstesd.lo: gstesd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -MT libgstesd_la-gstesd.lo -MD -MP -MF $(DEPDIR)/libgstesd_la-gstesd.Tpo -c -o libgstesd_la-gstesd.lo `test -f 'gstesd.c' || echo '$(srcdir)/'`gstesd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstesd_la-gstesd.Tpo $(DEPDIR)/libgstesd_la-gstesd.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstesd.c' object='libgstesd_la-gstesd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstesd.c' object='libgstesd_la-gstesd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -c -o libgstesd_la-gstesd.lo `test -f 'gstesd.c' || echo '$(srcdir)/'`gstesd.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstesd_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstesd_la_CFLAGS) $(CFLAGS) -c -o libgstesd_la-gstesd.lo `test -f 'gstesd.c' || echo '$(srcdir)/'`gstesd.c mostlyclean-libtool: -rm -f *.lo @@ -713,10 +708,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/esd/esdsink.c b/ext/esd/esdsink.c index e6bc458..6dfb364 100644 --- a/ext/esd/esdsink.c +++ b/ext/esd/esdsink.c @@ -111,8 +111,7 @@ gst_esdsink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Esound audio sink", "Sink/Audio", "Plays audio to an esound server", diff --git a/ext/flac/Makefile.am b/ext/flac/Makefile.am index f6f033a..89805a3 100644 --- a/ext/flac/Makefile.am +++ b/ext/flac/Makefile.am @@ -1,7 +1,8 @@ plugin_LTLIBRARIES = libgstflac.la libgstflac_la_SOURCES = gstflac.c gstflacdec.c gstflacenc.c gstflactag.c -libgstflac_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FLAC_CFLAGS) +libgstflac_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FLAC_CFLAGS) libgstflac_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ -lgstaudio-$(GST_MAJORMINOR) \ diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in index 8edb24c..e02be9a 100644 --- a/ext/flac/Makefile.in +++ b/ext/flac/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstflac_la_OBJECTS = libgstflac_la-gstflac.lo \ libgstflac_la-gstflacdec.lo libgstflac_la-gstflacenc.lo \ libgstflac_la-gstflactag.lo libgstflac_la_OBJECTS = $(am_libgstflac_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstflac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstflac_la_SOURCES) DIST_SOURCES = $(libgstflac_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -481,7 +481,9 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstflac.la libgstflac_la_SOURCES = gstflac.c gstflacdec.c gstflacenc.c gstflactag.c -libgstflac_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FLAC_CFLAGS) +libgstflac_la_CFLAGS = -DGST_USE_UNSTABLE_API \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FLAC_CFLAGS) + libgstflac_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ -lgstaudio-$(GST_MAJORMINOR) \ @@ -555,7 +557,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstflac.la: $(libgstflac_la_OBJECTS) $(libgstflac_la_DEPENDENCIES) +libgstflac.la: $(libgstflac_la_OBJECTS) $(libgstflac_la_DEPENDENCIES) $(EXTRA_libgstflac_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflac_la_LINK) -rpath $(plugindir) $(libgstflac_la_OBJECTS) $(libgstflac_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -572,58 +574,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstflac_la-gstflac.lo: gstflac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflac.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflac.Tpo -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflac.Tpo $(DEPDIR)/libgstflac_la-gstflac.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflac.c' object='libgstflac_la-gstflac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflac.c' object='libgstflac_la-gstflac.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflac.lo `test -f 'gstflac.c' || echo '$(srcdir)/'`gstflac.c libgstflac_la-gstflacdec.lo: gstflacdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacdec.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacdec.Tpo -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflacdec.Tpo $(DEPDIR)/libgstflac_la-gstflacdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflacdec.c' object='libgstflac_la-gstflacdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflacdec.c' object='libgstflac_la-gstflacdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacdec.lo `test -f 'gstflacdec.c' || echo '$(srcdir)/'`gstflacdec.c libgstflac_la-gstflacenc.lo: gstflacenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflacenc.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflacenc.Tpo -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflacenc.Tpo $(DEPDIR)/libgstflac_la-gstflacenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflacenc.c' object='libgstflac_la-gstflacenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflacenc.c' object='libgstflac_la-gstflacenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflacenc.lo `test -f 'gstflacenc.c' || echo '$(srcdir)/'`gstflacenc.c libgstflac_la-gstflactag.lo: gstflactag.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -MT libgstflac_la-gstflactag.lo -MD -MP -MF $(DEPDIR)/libgstflac_la-gstflactag.Tpo -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflac_la-gstflactag.Tpo $(DEPDIR)/libgstflac_la-gstflactag.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflactag.c' object='libgstflac_la-gstflactag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflactag.c' object='libgstflac_la-gstflactag.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflac_la_CFLAGS) $(CFLAGS) -c -o libgstflac_la-gstflactag.lo `test -f 'gstflactag.c' || echo '$(srcdir)/'`gstflactag.c mostlyclean-libtool: -rm -f *.lo @@ -730,10 +725,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index 5132dcf..10f8916 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -44,6 +44,11 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include "gstflacdec.h" @@ -178,10 +183,10 @@ gst_flac_dec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&flac_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&flac_dec_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &flac_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &flac_dec_sink_factory); gst_element_class_set_details_simple (element_class, "FLAC audio decoder", "Codec/Decoder/Audio", "Decodes FLAC lossless audio streams", "Wim Taymans "); @@ -408,19 +413,23 @@ gst_flac_dec_scan_got_frame (GstFlacDec * flacdec, guint8 * data, guint size, return FALSE; /* sync */ - if (data[0] != 0xFF || data[1] != 0xF8) + if (data[0] != 0xFF || (data[1] & 0xFC) != 0xF8) return FALSE; + if (data[1] & 1) { + GST_WARNING_OBJECT (flacdec, "Variable block size FLAC unsupported"); + return FALSE; + } - bs = (data[2] & 0xF0) >> 8; /* blocksize marker */ + bs = (data[2] & 0xF0) >> 4; /* blocksize marker */ sr = (data[2] & 0x0F); /* samplerate marker */ - ca = (data[3] & 0xF0) >> 8; /* channel assignment */ + ca = (data[3] & 0xF0) >> 4; /* channel assignment */ ss = (data[3] & 0x0F) >> 1; /* sample size marker */ pb = (data[3] & 0x01); /* padding bit */ GST_LOG_OBJECT (flacdec, "got sync, bs=%x,sr=%x,ca=%x,ss=%x,pb=%x", bs, sr, ca, ss, pb); - if (sr == 0x0F || ca >= 0x0B || ss == 0x03 || ss == 0x07) { + if (bs == 0 || sr == 0x0F || ca >= 0x0B || ss == 0x03 || ss == 0x07) { return FALSE; } @@ -702,17 +711,12 @@ gst_flac_dec_length (const FLAC__StreamDecoder * decoder, { GstFlacDec *flacdec; GstFormat fmt = GST_FORMAT_BYTES; - gint64 len; - GstPad *peer; + gint64 len = -1; flacdec = GST_FLAC_DEC (client_data); - if (!(peer = gst_pad_get_peer (flacdec->sinkpad))) - return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR; - - gst_pad_query_duration (peer, &fmt, &len); - gst_object_unref (peer); - if (fmt != GST_FORMAT_BYTES || len == -1) + if (!gst_pad_query_peer_duration (flacdec->sinkpad, &fmt, &len) || + (fmt != GST_FORMAT_BYTES || len == -1)) return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR; *length = len; @@ -974,7 +978,9 @@ gst_flac_dec_write (GstFlacDec * flacdec, const FLAC__Frame * frame, if (flacdec->cur_granulepos != GST_BUFFER_OFFSET_NONE) { /* this should be fine since it should be one flac frame per ogg packet */ - flacdec->segment.last_stop = flacdec->cur_granulepos - samples; + /* note the + 1, as the granpos is the presentation time of the last sample, + whereas the last stop represents the end time of that sample */ + flacdec->segment.last_stop = flacdec->cur_granulepos - samples + 1; GST_LOG_OBJECT (flacdec, "granulepos = %" G_GINT64_FORMAT ", samples = %u", flacdec->cur_granulepos, samples); } @@ -1079,6 +1085,33 @@ gst_flac_dec_loop (GstPad * sinkpad) GST_LOG_OBJECT (flacdec, "entering loop"); + if (flacdec->eos) { + GST_DEBUG_OBJECT (flacdec, "Seeked after end of file"); + + if (flacdec->close_segment) { + GST_DEBUG_OBJECT (flacdec, "pushing close segment"); + gst_pad_push_event (flacdec->srcpad, flacdec->close_segment); + flacdec->close_segment = NULL; + } + if (flacdec->start_segment) { + GST_DEBUG_OBJECT (flacdec, "pushing start segment"); + gst_pad_push_event (flacdec->srcpad, flacdec->start_segment); + flacdec->start_segment = NULL; + } + + if (flacdec->tags) { + gst_element_found_tags_for_pad (GST_ELEMENT (flacdec), flacdec->srcpad, + flacdec->tags); + flacdec->tags = NULL; + } + + if ((flacdec->segment.flags & GST_SEEK_FLAG_SEGMENT) == 0) { + goto eos_and_pause; + } else { + goto segment_done_and_pause; + } + } + if (flacdec->init) { GST_DEBUG_OBJECT (flacdec, "initializing new decoder"); is = FLAC__stream_decoder_init_stream (flacdec->decoder, @@ -1360,8 +1393,10 @@ gst_flac_dec_chain (GstPad * pad, GstBuffer * buf) dec = GST_FLAC_DEC (GST_PAD_PARENT (pad)); - GST_LOG_OBJECT (dec, "buffer with ts=%" GST_TIME_FORMAT ", end_offset=%" - G_GINT64_FORMAT ", size=%u", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_LOG_OBJECT (dec, + "buffer with ts=%" GST_TIME_FORMAT ", offset=%" G_GINT64_FORMAT + ", end_offset=%" G_GINT64_FORMAT ", size=%u", + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf), GST_BUFFER_SIZE (buf)); if (dec->init) { @@ -1452,6 +1487,19 @@ gst_flac_dec_chain (GstPad * pad, GstBuffer * buf) /* framed - there should always be enough data to decode something */ GST_LOG_OBJECT (dec, "%u bytes available", gst_adapter_available (dec->adapter)); + if (G_UNLIKELY (!dec->got_headers)) { + /* The first time we get audio data, we know we got all the headers. + * We then loop until all the metadata is processed, then do an extra + * "process_single" step for the audio frame. */ + GST_DEBUG_OBJECT (dec, + "First audio frame, ensuring all metadata is processed"); + if (!FLAC__stream_decoder_process_until_end_of_metadata (dec->decoder)) { + GST_DEBUG_OBJECT (dec, "process_until_end_of_metadata failed"); + } + GST_DEBUG_OBJECT (dec, + "All metadata is now processed, reading to process audio data"); + dec->got_headers = TRUE; + } if (!FLAC__stream_decoder_process_single (dec->decoder)) { GST_DEBUG_OBJECT (dec, "process_single failed"); } @@ -1622,7 +1670,7 @@ gst_flac_dec_convert_src (GstPad * pad, GstFormat src_format, gint64 src_value, case GST_FORMAT_BYTES: scale = bytes_per_sample; case GST_FORMAT_DEFAULT: - *dest_value = gst_util_uint64_scale_int (src_value, + *dest_value = gst_util_uint64_scale_int_round (src_value, scale * flacdec->sample_rate, GST_SECOND); break; default: @@ -1697,8 +1745,9 @@ gst_flac_dec_src_query (GstPad * pad, GstQuery * query) gst_query_parse_duration (query, &fmt, NULL); - /* try any demuxers before us first */ - if (fmt == GST_FORMAT_TIME && peer && gst_pad_query (peer, query)) { + /* try any demuxers or parsers before us first */ + if ((fmt == GST_FORMAT_TIME || fmt == GST_FORMAT_DEFAULT) && + peer != NULL && gst_pad_query (peer, query)) { gst_query_parse_duration (query, NULL, &len); GST_DEBUG_OBJECT (flacdec, "peer returned duration %" GST_TIME_FORMAT, GST_TIME_ARGS (len)); @@ -1840,6 +1889,14 @@ gst_flac_dec_handle_seek_event (GstFlacDec * flacdec, GstEvent * event) } } + /* Check if we seeked after the end of file */ + if (start_type != GST_SEEK_TYPE_NONE && flacdec->segment.duration > 0 && + start >= flacdec->segment.duration) { + flacdec->eos = TRUE; + } else { + flacdec->eos = FALSE; + } + flush = ((seek_flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH); if (flush) { @@ -1903,17 +1960,21 @@ gst_flac_dec_handle_seek_event (GstFlacDec * flacdec, GstEvent * event) * callbacks that need to behave differently when seeking */ flacdec->seeking = TRUE; - GST_LOG_OBJECT (flacdec, "calling seek_absolute"); - seek_ok = FLAC__stream_decoder_seek_absolute (flacdec->decoder, - flacdec->segment.last_stop); - GST_LOG_OBJECT (flacdec, "done with seek_absolute, seek_ok=%d", seek_ok); + if (!flacdec->eos) { + GST_LOG_OBJECT (flacdec, "calling seek_absolute"); + seek_ok = FLAC__stream_decoder_seek_absolute (flacdec->decoder, + flacdec->segment.last_stop); + GST_LOG_OBJECT (flacdec, "done with seek_absolute, seek_ok=%d", seek_ok); + } else { + GST_LOG_OBJECT (flacdec, "not seeking, seeked after end of file"); + seek_ok = TRUE; + } flacdec->seeking = FALSE; GST_DEBUG_OBJECT (flacdec, "performed seek to sample %" G_GINT64_FORMAT, flacdec->segment.last_stop); - if (!seek_ok) { GST_WARNING_OBJECT (flacdec, "seek failed"); /* seek failed, restore the segment and start streaming again with @@ -2086,6 +2147,7 @@ gst_flac_dec_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: + flacdec->eos = FALSE; flacdec->seeking = FALSE; flacdec->channels = 0; flacdec->depth = 0; diff --git a/ext/flac/gstflacdec.h b/ext/flac/gstflacdec.h index aa56b4b..835bdbd 100644 --- a/ext/flac/gstflacdec.h +++ b/ext/flac/gstflacdec.h @@ -61,6 +61,8 @@ struct _GstFlacDec { * don't push any buffers in the write callback * until we are actually at the new position */ + gboolean eos; /* set to TRUE if seeked after the end of file */ + GstSegment segment; /* the currently configured segment, in * samples/audio frames (DEFAULT format) */ gboolean running; diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c index a07fcdc..6a7e1c0 100644 --- a/ext/flac/gstflacenc.c +++ b/ext/flac/gstflacenc.c @@ -157,26 +157,24 @@ GST_DEBUG_CATEGORY_STATIC (flacenc_debug); NULL, \ NULL \ }; \ - static const GInterfaceInfo preset_info = { \ - NULL, \ - NULL, \ - NULL \ - }; \ g_type_add_interface_static (type, GST_TYPE_TAG_SETTER, \ &tag_setter_info); \ - g_type_add_interface_static (type, GST_TYPE_PRESET, \ - &preset_info); \ }G_STMT_END -GST_BOILERPLATE_FULL (GstFlacEnc, gst_flac_enc, GstElement, GST_TYPE_ELEMENT, - _do_init); +GST_BOILERPLATE_FULL (GstFlacEnc, gst_flac_enc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER, _do_init); -static void gst_flac_enc_finalize (GObject * object); +static gboolean gst_flac_enc_start (GstAudioEncoder * enc); +static gboolean gst_flac_enc_stop (GstAudioEncoder * enc); +static gboolean gst_flac_enc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_flac_enc_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); +static GstCaps *gst_flac_enc_getcaps (GstAudioEncoder * enc); +static gboolean gst_flac_enc_sink_event (GstAudioEncoder * enc, + GstEvent * event); -static gboolean gst_flac_enc_sink_setcaps (GstPad * pad, GstCaps * caps); -static GstCaps *gst_flac_enc_sink_getcaps (GstPad * pad); -static gboolean gst_flac_enc_sink_event (GstPad * pad, GstEvent * event); -static GstFlowReturn gst_flac_enc_chain (GstPad * pad, GstBuffer * buffer); +static void gst_flac_enc_finalize (GObject * object); static gboolean gst_flac_enc_update_quality (GstFlacEnc * flacenc, gint quality); @@ -184,8 +182,6 @@ static void gst_flac_enc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_flac_enc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static GstStateChangeReturn gst_flac_enc_change_state (GstElement * element, - GstStateChange transition); static FLAC__StreamEncoderWriteStatus gst_flac_enc_write_callback (const FLAC__StreamEncoder * encoder, @@ -262,10 +258,8 @@ gst_flac_enc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "FLAC audio encoder", "Codec/Encoder/Audio", @@ -280,15 +274,22 @@ static void gst_flac_enc_class_init (GstFlacEncClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + GstAudioEncoderClass *base_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + base_class = (GstAudioEncoderClass *) (klass); gobject_class->set_property = gst_flac_enc_set_property; gobject_class->get_property = gst_flac_enc_get_property; gobject_class->finalize = gst_flac_enc_finalize; + base_class->start = GST_DEBUG_FUNCPTR (gst_flac_enc_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_flac_enc_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_flac_enc_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_flac_enc_handle_frame); + base_class->getcaps = GST_DEBUG_FUNCPTR (gst_flac_enc_getcaps); + base_class->event = GST_DEBUG_FUNCPTR (gst_flac_enc_sink_event); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_QUALITY, g_param_spec_enum ("quality", "Quality", @@ -401,38 +402,19 @@ gst_flac_enc_class_init (GstFlacEncClass * klass) -G_MAXINT, G_MAXINT, DEFAULT_SEEKPOINTS, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); - - gstelement_class->change_state = gst_flac_enc_change_state; } static void gst_flac_enc_init (GstFlacEnc * flacenc, GstFlacEncClass * klass) { - flacenc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); - gst_pad_set_chain_function (flacenc->sinkpad, - GST_DEBUG_FUNCPTR (gst_flac_enc_chain)); - gst_pad_set_event_function (flacenc->sinkpad, - GST_DEBUG_FUNCPTR (gst_flac_enc_sink_event)); - gst_pad_set_getcaps_function (flacenc->sinkpad, - GST_DEBUG_FUNCPTR (gst_flac_enc_sink_getcaps)); - gst_pad_set_setcaps_function (flacenc->sinkpad, - GST_DEBUG_FUNCPTR (gst_flac_enc_sink_setcaps)); - gst_element_add_pad (GST_ELEMENT (flacenc), flacenc->sinkpad); - - flacenc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); - gst_pad_use_fixed_caps (flacenc->srcpad); - gst_element_add_pad (GST_ELEMENT (flacenc), flacenc->srcpad); + GstAudioEncoder *enc = GST_AUDIO_ENCODER (flacenc); flacenc->encoder = FLAC__stream_encoder_new (); - - flacenc->offset = 0; - flacenc->samples_written = 0; - flacenc->channels = 0; gst_flac_enc_update_quality (flacenc, DEFAULT_QUALITY); - flacenc->tags = gst_tag_list_new (); - flacenc->got_headers = FALSE; - flacenc->headers = NULL; - flacenc->last_flow = GST_FLOW_OK; + + /* arrange granulepos marking (and required perfect ts) */ + gst_audio_encoder_set_mark_granule (enc, TRUE); + gst_audio_encoder_set_perfect_timestamp (enc, TRUE); } static void @@ -440,12 +422,64 @@ gst_flac_enc_finalize (GObject * object) { GstFlacEnc *flacenc = GST_FLAC_ENC (object); - gst_tag_list_free (flacenc->tags); FLAC__stream_encoder_delete (flacenc->encoder); G_OBJECT_CLASS (parent_class)->finalize (object); } +static gboolean +gst_flac_enc_start (GstAudioEncoder * enc) +{ + GstFlacEnc *flacenc = GST_FLAC_ENC (enc); + + GST_DEBUG_OBJECT (enc, "start"); + flacenc->stopped = TRUE; + flacenc->got_headers = FALSE; + flacenc->last_flow = GST_FLOW_OK; + flacenc->offset = 0; + flacenc->channels = 0; + flacenc->depth = 0; + flacenc->sample_rate = 0; + flacenc->eos = FALSE; + flacenc->tags = gst_tag_list_new (); + + return TRUE; +} + +static gboolean +gst_flac_enc_stop (GstAudioEncoder * enc) +{ + GstFlacEnc *flacenc = GST_FLAC_ENC (enc); + + GST_DEBUG_OBJECT (enc, "stop"); + gst_tag_list_free (flacenc->tags); + flacenc->tags = NULL; + if (FLAC__stream_encoder_get_state (flacenc->encoder) != + FLAC__STREAM_ENCODER_UNINITIALIZED) { + flacenc->stopped = TRUE; + FLAC__stream_encoder_finish (flacenc->encoder); + } + if (flacenc->meta) { + FLAC__metadata_object_delete (flacenc->meta[0]); + + if (flacenc->meta[1]) + FLAC__metadata_object_delete (flacenc->meta[1]); + + if (flacenc->meta[2]) + FLAC__metadata_object_delete (flacenc->meta[2]); + + g_free (flacenc->meta); + flacenc->meta = NULL; + } + g_list_foreach (flacenc->headers, (GFunc) gst_mini_object_unref, NULL); + g_list_free (flacenc->headers); + flacenc->headers = NULL; + + gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); + + return TRUE; +} + static void add_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data) { @@ -629,9 +663,12 @@ gst_flac_enc_caps_append_structure_with_widths (GstCaps * caps, } static GstCaps * -gst_flac_enc_sink_getcaps (GstPad * pad) +gst_flac_enc_getcaps (GstAudioEncoder * enc) { - GstCaps *ret = NULL; + GstCaps *ret = NULL, *caps = NULL; + GstPad *pad; + + pad = GST_AUDIO_ENCODER_SINK_PAD (enc); GST_OBJECT_LOCK (pad); @@ -679,7 +716,10 @@ gst_flac_enc_sink_getcaps (GstPad * pad) GST_DEBUG_OBJECT (pad, "Return caps %" GST_PTR_FORMAT, ret); - return ret; + caps = gst_audio_encoder_proxy_getcaps (enc, ret); + gst_caps_unref (ret); + + return caps; } static guint64 @@ -716,45 +756,36 @@ done: } static gboolean -gst_flac_enc_sink_setcaps (GstPad * pad, GstCaps * caps) +gst_flac_enc_set_format (GstAudioEncoder * enc, GstAudioInfo * info) { GstFlacEnc *flacenc; - GstStructure *structure; guint64 total_samples = GST_CLOCK_TIME_NONE; FLAC__StreamEncoderInitStatus init_status; - gint depth, chans, rate, width; + GstCaps *caps; - flacenc = GST_FLAC_ENC (gst_pad_get_parent (pad)); + flacenc = GST_FLAC_ENC (enc); + /* if configured again, means something changed, can't handle that */ if (FLAC__stream_encoder_get_state (flacenc->encoder) != FLAC__STREAM_ENCODER_UNINITIALIZED) goto encoder_already_initialized; - structure = gst_caps_get_structure (caps, 0); - - if (!gst_structure_get_int (structure, "channels", &chans) || - !gst_structure_get_int (structure, "width", &width) || - !gst_structure_get_int (structure, "depth", &depth) || - !gst_structure_get_int (structure, "rate", &rate)) { - GST_DEBUG_OBJECT (flacenc, "incomplete caps: %" GST_PTR_FORMAT, caps); - return FALSE; - } - - flacenc->channels = chans; - flacenc->width = width; - flacenc->depth = depth; - flacenc->sample_rate = rate; + flacenc->channels = GST_AUDIO_INFO_CHANNELS (info); + flacenc->width = GST_AUDIO_INFO_WIDTH (info); + flacenc->depth = GST_AUDIO_INFO_DEPTH (info); + flacenc->sample_rate = GST_AUDIO_INFO_RATE (info); caps = gst_caps_new_simple ("audio/x-flac", "channels", G_TYPE_INT, flacenc->channels, "rate", G_TYPE_INT, flacenc->sample_rate, NULL); - if (!gst_pad_set_caps (flacenc->srcpad, caps)) + if (!gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), caps)) goto setting_src_caps_failed; gst_caps_unref (caps); - total_samples = gst_flac_enc_query_peer_total_samples (flacenc, pad); + total_samples = gst_flac_enc_query_peer_total_samples (flacenc, + GST_AUDIO_ENCODER_SINK_PAD (enc)); FLAC__stream_encoder_set_bits_per_sample (flacenc->encoder, flacenc->depth); FLAC__stream_encoder_set_sample_rate (flacenc->encoder, flacenc->sample_rate); @@ -766,13 +797,17 @@ gst_flac_enc_sink_setcaps (GstPad * pad, GstCaps * caps) gst_flac_enc_set_metadata (flacenc, total_samples); + /* callbacks clear to go now; + * write callbacks receives headers during init */ + flacenc->stopped = FALSE; + init_status = FLAC__stream_encoder_init_stream (flacenc->encoder, gst_flac_enc_write_callback, gst_flac_enc_seek_callback, gst_flac_enc_tell_callback, NULL, flacenc); if (init_status != FLAC__STREAM_ENCODER_INIT_STATUS_OK) goto failed_to_initialize; - gst_object_unref (flacenc); + /* no special feedback to base class; should provide all available samples */ return TRUE; @@ -848,7 +883,6 @@ gst_flac_enc_seek_callback (const FLAC__StreamEncoder * encoder, FLAC__uint64 absolute_byte_offset, void *client_data) { GstFlacEnc *flacenc; - GstEvent *event; GstPad *peerpad; flacenc = GST_FLAC_ENC (client_data); @@ -856,10 +890,9 @@ gst_flac_enc_seek_callback (const FLAC__StreamEncoder * encoder, if (flacenc->stopped) return FLAC__STREAM_ENCODER_SEEK_STATUS_OK; - event = gst_event_new_new_segment (TRUE, 1.0, GST_FORMAT_BYTES, - absolute_byte_offset, GST_BUFFER_OFFSET_NONE, 0); - - if ((peerpad = gst_pad_get_peer (flacenc->srcpad))) { + if ((peerpad = gst_pad_get_peer (GST_AUDIO_ENCODER_SRC_PAD (flacenc)))) { + GstEvent *event = gst_event_new_new_segment (TRUE, 1.0, GST_FORMAT_BYTES, + absolute_byte_offset, GST_BUFFER_OFFSET_NONE, 0); gboolean ret = gst_pad_send_event (peerpad, event); gst_object_unref (peerpad); @@ -900,7 +933,7 @@ notgst_value_array_append_buffer (GValue * array_val, GstBuffer * buf) #define HDR_TYPE_STREAMINFO 0 #define HDR_TYPE_VORBISCOMMENT 4 -static void +static GstFlowReturn gst_flac_enc_process_stream_headers (GstFlacEnc * enc) { GstBuffer *vorbiscomment = NULL; @@ -909,6 +942,7 @@ gst_flac_enc_process_stream_headers (GstFlacEnc * enc) GValue array = { 0, }; GstCaps *caps; GList *l; + GstFlowReturn ret = GST_FLOW_OK; caps = gst_caps_new_simple ("audio/x-flac", "channels", G_TYPE_INT, enc->channels, @@ -984,8 +1018,6 @@ gst_flac_enc_process_stream_headers (GstFlacEnc * enc) push_headers: - gst_pad_set_caps (enc->srcpad, caps); - /* push header buffers; update caps, so when we push the first buffer the * negotiated caps will change to caps that include the streamheader field */ for (l = enc->headers; l != NULL; l = l->next) { @@ -997,13 +1029,15 @@ push_headers: GST_BUFFER_SIZE (buf)); GST_MEMDUMP_OBJECT (enc, "header buffer", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); - (void) gst_pad_push (enc->srcpad, buf); + ret = gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (enc), buf); l->data = NULL; } g_list_free (enc->headers); enc->headers = NULL; gst_caps_unref (caps); + + return ret; } static FLAC__StreamEncoderWriteStatus @@ -1023,31 +1057,6 @@ gst_flac_enc_write_callback (const FLAC__StreamEncoder * encoder, outbuf = gst_buffer_new_and_alloc (bytes); memcpy (GST_BUFFER_DATA (outbuf), buffer, bytes); - if (samples > 0 && flacenc->samples_written != (guint64) - 1) { - guint64 granulepos; - - GST_BUFFER_TIMESTAMP (outbuf) = flacenc->start_ts + - GST_FRAMES_TO_CLOCK_TIME (flacenc->samples_written, - flacenc->sample_rate); - GST_BUFFER_DURATION (outbuf) = - GST_FRAMES_TO_CLOCK_TIME (samples, flacenc->sample_rate); - /* offset_end = granulepos for ogg muxer */ - granulepos = - flacenc->granulepos_offset + flacenc->samples_written + samples; - GST_BUFFER_OFFSET_END (outbuf) = granulepos; - /* offset = timestamp corresponding to granulepos for ogg muxer - * (see vorbisenc for a much more elaborate version of this) */ - GST_BUFFER_OFFSET (outbuf) = - GST_FRAMES_TO_CLOCK_TIME (granulepos, flacenc->sample_rate); - } else { - GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE; - GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; - GST_BUFFER_OFFSET (outbuf) = - flacenc->samples_written * flacenc->width * flacenc->channels; - GST_BUFFER_OFFSET_END (outbuf) = 0; - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_IN_CAPS); - } - /* we assume libflac passes us stuff neatly framed */ if (!flacenc->got_headers) { if (samples == 0) { @@ -1058,32 +1067,36 @@ gst_flac_enc_write_callback (const FLAC__StreamEncoder * encoder, goto out; } else { GST_INFO_OBJECT (flacenc, "Non-header packet, we have all headers now"); - gst_flac_enc_process_stream_headers (flacenc); + ret = gst_flac_enc_process_stream_headers (flacenc); flacenc->got_headers = TRUE; } - } else if (flacenc->got_headers && samples == 0) { + } + + if (flacenc->got_headers && samples == 0) { + /* header fixup, push downstream directly */ GST_DEBUG_OBJECT (flacenc, "Fixing up headers at pos=%" G_GUINT64_FORMAT ", size=%u", flacenc->offset, (guint) bytes); GST_MEMDUMP_OBJECT (flacenc, "Presumed header fragment", GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf)); + gst_buffer_set_caps (outbuf, + GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (flacenc))); + ret = gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (flacenc), outbuf); } else { + /* regular frame data, pass to base class */ GST_LOG ("Pushing buffer: ts=%" GST_TIME_FORMAT ", samples=%u, size=%u, " "pos=%" G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), samples, (guint) bytes, flacenc->offset); + ret = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (flacenc), + outbuf, samples); } - gst_buffer_set_caps (outbuf, GST_PAD_CAPS (flacenc->srcpad)); - ret = gst_pad_push (flacenc->srcpad, outbuf); - if (ret != GST_FLOW_OK) GST_DEBUG_OBJECT (flacenc, "flow: %s", gst_flow_get_name (ret)); flacenc->last_flow = ret; out: - flacenc->offset += bytes; - flacenc->samples_written += samples; if (ret != GST_FLOW_OK) return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR; @@ -1103,13 +1116,13 @@ gst_flac_enc_tell_callback (const FLAC__StreamEncoder * encoder, } static gboolean -gst_flac_enc_sink_event (GstPad * pad, GstEvent * event) +gst_flac_enc_sink_event (GstAudioEncoder * enc, GstEvent * event) { GstFlacEnc *flacenc; GstTagList *taglist; - gboolean ret = TRUE; + gboolean ret = FALSE; - flacenc = GST_FLAC_ENC (gst_pad_get_parent (pad)); + flacenc = GST_FLAC_ENC (enc); GST_DEBUG ("Received %s event on sinkpad", GST_EVENT_TYPE_NAME (event)); @@ -1135,20 +1148,20 @@ gst_flac_enc_sink_event (GstPad * pad, GstEvent * event) GstEvent *e = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0); - ret = gst_pad_push_event (flacenc->srcpad, e); + ret = gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (enc), e); } if (stream_time > 0) { GST_DEBUG ("Not handling non-zero stream time"); } - gst_event_unref (event); /* don't push it downstream, we'll generate our own via seek to 0 */ + gst_event_unref (event); + ret = TRUE; break; } case GST_EVENT_EOS: - FLAC__stream_encoder_finish (flacenc->encoder); - ret = gst_pad_event_default (pad, event); + flacenc->eos = TRUE; break; case GST_EVENT_TAG: if (flacenc->tags) { @@ -1158,42 +1171,16 @@ gst_flac_enc_sink_event (GstPad * pad, GstEvent * event) } else { g_assert_not_reached (); } - ret = gst_pad_event_default (pad, event); break; default: - ret = gst_pad_event_default (pad, event); break; } - gst_object_unref (flacenc); - return ret; } -static gboolean -gst_flac_enc_check_discont (GstFlacEnc * flacenc, GstClockTime expected, - GstClockTime timestamp) -{ - guint allowed_diff = GST_SECOND / flacenc->sample_rate / 2; - - if ((timestamp + allowed_diff < expected) - || (timestamp > expected + allowed_diff)) { - GST_ELEMENT_WARNING (flacenc, STREAM, FORMAT, (NULL), - ("Stream discontinuity detected (wanted %" GST_TIME_FORMAT " got %" - GST_TIME_FORMAT "). The output will have wrong timestamps," - " consider using audiorate to handle discontinuities", - GST_TIME_ARGS (expected), GST_TIME_ARGS (timestamp))); - return TRUE; - } - - /* TODO: Do something to handle discontinuities in the stream. The FLAC encoder - * unfortunately doesn't have any way to flush it's internal buffers */ - - return FALSE; -} - static GstFlowReturn -gst_flac_enc_chain (GstPad * pad, GstBuffer * buffer) +gst_flac_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer) { GstFlacEnc *flacenc; FLAC__int32 *data; @@ -1202,42 +1189,26 @@ gst_flac_enc_chain (GstPad * pad, GstBuffer * buffer) gulong i; FLAC__bool res; - flacenc = GST_FLAC_ENC (GST_PAD_PARENT (pad)); + flacenc = GST_FLAC_ENC (enc); - /* make sure setcaps has been called and the encoder is set up */ - if (G_UNLIKELY (flacenc->depth == 0)) - return GST_FLOW_NOT_NEGOTIATED; + /* base class ensures configuration */ + g_return_val_if_fail (flacenc->depth != 0, GST_FLOW_NOT_NEGOTIATED); width = flacenc->width; - /* Save the timestamp of the first buffer. This will be later - * used as offset for all following buffers */ - if (flacenc->start_ts == GST_CLOCK_TIME_NONE) { - if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { - flacenc->start_ts = GST_BUFFER_TIMESTAMP (buffer); - flacenc->granulepos_offset = gst_util_uint64_scale - (GST_BUFFER_TIMESTAMP (buffer), flacenc->sample_rate, GST_SECOND); + if (G_UNLIKELY (!buffer)) { + if (flacenc->eos) { + FLAC__stream_encoder_finish (flacenc->encoder); } else { - flacenc->start_ts = 0; - flacenc->granulepos_offset = 0; + /* can't handle intermittent draining/resyncing */ + GST_ELEMENT_WARNING (flacenc, STREAM, FORMAT, (NULL), + ("Stream discontinuity detected. " + "The output may have wrong timestamps, " + "consider using audiorate to handle discontinuities")); } + return flacenc->last_flow; } - /* Check if we have a continous stream, if not drop some samples or the buffer or - * insert some silence samples */ - if (flacenc->next_ts != GST_CLOCK_TIME_NONE - && GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { - gst_flac_enc_check_discont (flacenc, flacenc->next_ts, - GST_BUFFER_TIMESTAMP (buffer)); - } - - if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) - && GST_BUFFER_DURATION_IS_VALID (buffer)) - flacenc->next_ts = - GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer); - else - flacenc->next_ts = GST_CLOCK_TIME_NONE; - insize = GST_BUFFER_SIZE (buffer); samples = insize / (width >> 3); @@ -1262,8 +1233,6 @@ gst_flac_enc_chain (GstPad * pad, GstBuffer * buffer) g_assert_not_reached (); } - gst_buffer_unref (buffer); - res = FLAC__stream_encoder_process_interleaved (flacenc->encoder, (const FLAC__int32 *) data, samples / flacenc->channels); @@ -1428,64 +1397,3 @@ gst_flac_enc_get_property (GObject * object, guint prop_id, GST_OBJECT_UNLOCK (this); } - -static GstStateChangeReturn -gst_flac_enc_change_state (GstElement * element, GstStateChange transition) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstFlacEnc *flacenc = GST_FLAC_ENC (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - case GST_STATE_CHANGE_READY_TO_PAUSED: - flacenc->stopped = FALSE; - flacenc->start_ts = GST_CLOCK_TIME_NONE; - flacenc->next_ts = GST_CLOCK_TIME_NONE; - flacenc->granulepos_offset = 0; - break; - case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - - switch (transition) { - case GST_STATE_CHANGE_PLAYING_TO_PAUSED: - break; - case GST_STATE_CHANGE_PAUSED_TO_READY: - if (FLAC__stream_encoder_get_state (flacenc->encoder) != - FLAC__STREAM_ENCODER_UNINITIALIZED) { - flacenc->stopped = TRUE; - FLAC__stream_encoder_finish (flacenc->encoder); - } - flacenc->offset = 0; - flacenc->samples_written = 0; - flacenc->channels = 0; - flacenc->depth = 0; - flacenc->sample_rate = 0; - if (flacenc->meta) { - FLAC__metadata_object_delete (flacenc->meta[0]); - - if (flacenc->meta[1]) - FLAC__metadata_object_delete (flacenc->meta[1]); - - if (flacenc->meta[2]) - FLAC__metadata_object_delete (flacenc->meta[2]); - - g_free (flacenc->meta); - flacenc->meta = NULL; - } - g_list_foreach (flacenc->headers, (GFunc) gst_mini_object_unref, NULL); - g_list_free (flacenc->headers); - flacenc->headers = NULL; - flacenc->got_headers = FALSE; - flacenc->last_flow = GST_FLOW_OK; - break; - case GST_STATE_CHANGE_READY_TO_NULL: - default: - break; - } - - return ret; -} diff --git a/ext/flac/gstflacenc.h b/ext/flac/gstflacenc.h index 0460a70..9084892 100644 --- a/ext/flac/gstflacenc.h +++ b/ext/flac/gstflacenc.h @@ -22,6 +22,7 @@ #define __GST_FLAC_ENC_H__ #include +#include #include @@ -37,19 +38,15 @@ typedef struct _GstFlacEnc GstFlacEnc; typedef struct _GstFlacEncClass GstFlacEncClass; struct _GstFlacEnc { - GstElement element; + GstAudioEncoder element; /* < private > */ - GstPad *sinkpad; - GstPad *srcpad; - GstFlowReturn last_flow; /* save flow from last push so we can pass the * correct flow return upstream in case the push * fails for some reason */ guint64 offset; - guint64 samples_written; gint channels; gint width; gint depth; @@ -59,27 +56,20 @@ struct _GstFlacEnc { guint padding; gint seekpoints; -#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 - FLAC__SeekableStreamEncoder *encoder; -#else FLAC__StreamEncoder *encoder; -#endif + FLAC__StreamMetadata **meta; GstTagList * tags; + gboolean eos; /* queue headers until we have them all so we can add streamheaders to caps */ gboolean got_headers; GList *headers; - - /* Timestamp and granulepos tracking */ - GstClockTime start_ts; - GstClockTime next_ts; - guint64 granulepos_offset; }; struct _GstFlacEncClass { - GstElementClass parent_class; + GstAudioEncoderClass parent_class; }; GType gst_flac_enc_get_type(void); diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c index 682ceb8..ff06ce9 100644 --- a/ext/flac/gstflactag.c +++ b/ext/flac/gstflactag.c @@ -117,10 +117,10 @@ gst_flac_tag_base_init (gpointer g_class) "Formatter/Metadata", "Rewrite tags in a FLAC file", "Christophe Fergeau "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&flac_tag_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&flac_tag_src_template)); + gst_element_class_add_static_pad_template (element_class, + &flac_tag_sink_template); + gst_element_class_add_static_pad_template (element_class, + &flac_tag_src_template); GST_DEBUG_CATEGORY_INIT (flactag_debug, "flactag", 0, "flac tag rewriter"); } diff --git a/ext/gconf/Makefile.in b/ext/gconf/Makefile.in index afb7c0c..ebcd7e1 100644 --- a/ext/gconf/Makefile.in +++ b/ext/gconf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -118,8 +123,8 @@ am_libgstgconfelements_la_OBJECTS = \ libgstgconfelements_la-gstswitchsrc.lo \ libgstgconfelements_la-gstgconf.lo libgstgconfelements_la_OBJECTS = $(am_libgstgconfelements_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgconfelements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -135,21 +140,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgconfelements_la_SOURCES) DIST_SOURCES = $(libgstgconfelements_la_SOURCES) @@ -232,7 +237,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -307,7 +315,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -331,6 +338,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -365,18 +373,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -429,6 +429,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -463,7 +464,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -575,7 +575,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgconfelements.la: $(libgstgconfelements_la_OBJECTS) $(libgstgconfelements_la_DEPENDENCIES) +libgstgconfelements.la: $(libgstgconfelements_la_OBJECTS) $(libgstgconfelements_la_DEPENDENCIES) $(EXTRA_libgstgconfelements_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgconfelements_la_LINK) -rpath $(plugindir) $(libgstgconfelements_la_OBJECTS) $(libgstgconfelements_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -596,90 +596,79 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgconfelements_la-gstgconfaudiosink.lo: gstgconfaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconfaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosink.Tpo -c -o libgstgconfelements_la-gstgconfaudiosink.lo `test -f 'gstgconfaudiosink.c' || echo '$(srcdir)/'`gstgconfaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosink.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconfaudiosink.c' object='libgstgconfelements_la-gstgconfaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconfaudiosink.c' object='libgstgconfelements_la-gstgconfaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfaudiosink.lo `test -f 'gstgconfaudiosink.c' || echo '$(srcdir)/'`gstgconfaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfaudiosink.lo `test -f 'gstgconfaudiosink.c' || echo '$(srcdir)/'`gstgconfaudiosink.c libgstgconfelements_la-gstgconfaudiosrc.lo: gstgconfaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconfaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosrc.Tpo -c -o libgstgconfelements_la-gstgconfaudiosrc.lo `test -f 'gstgconfaudiosrc.c' || echo '$(srcdir)/'`gstgconfaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosrc.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconfaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconfaudiosrc.c' object='libgstgconfelements_la-gstgconfaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconfaudiosrc.c' object='libgstgconfelements_la-gstgconfaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfaudiosrc.lo `test -f 'gstgconfaudiosrc.c' || echo '$(srcdir)/'`gstgconfaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfaudiosrc.lo `test -f 'gstgconfaudiosrc.c' || echo '$(srcdir)/'`gstgconfaudiosrc.c libgstgconfelements_la-gstgconfelements.lo: gstgconfelements.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconfelements.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconfelements.Tpo -c -o libgstgconfelements_la-gstgconfelements.lo `test -f 'gstgconfelements.c' || echo '$(srcdir)/'`gstgconfelements.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconfelements.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconfelements.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconfelements.c' object='libgstgconfelements_la-gstgconfelements.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconfelements.c' object='libgstgconfelements_la-gstgconfelements.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfelements.lo `test -f 'gstgconfelements.c' || echo '$(srcdir)/'`gstgconfelements.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfelements.lo `test -f 'gstgconfelements.c' || echo '$(srcdir)/'`gstgconfelements.c libgstgconfelements_la-gstgconfvideosink.lo: gstgconfvideosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconfvideosink.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconfvideosink.Tpo -c -o libgstgconfelements_la-gstgconfvideosink.lo `test -f 'gstgconfvideosink.c' || echo '$(srcdir)/'`gstgconfvideosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconfvideosink.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconfvideosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconfvideosink.c' object='libgstgconfelements_la-gstgconfvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconfvideosink.c' object='libgstgconfelements_la-gstgconfvideosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfvideosink.lo `test -f 'gstgconfvideosink.c' || echo '$(srcdir)/'`gstgconfvideosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfvideosink.lo `test -f 'gstgconfvideosink.c' || echo '$(srcdir)/'`gstgconfvideosink.c libgstgconfelements_la-gstgconfvideosrc.lo: gstgconfvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconfvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconfvideosrc.Tpo -c -o libgstgconfelements_la-gstgconfvideosrc.lo `test -f 'gstgconfvideosrc.c' || echo '$(srcdir)/'`gstgconfvideosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconfvideosrc.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconfvideosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconfvideosrc.c' object='libgstgconfelements_la-gstgconfvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconfvideosrc.c' object='libgstgconfelements_la-gstgconfvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfvideosrc.lo `test -f 'gstgconfvideosrc.c' || echo '$(srcdir)/'`gstgconfvideosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconfvideosrc.lo `test -f 'gstgconfvideosrc.c' || echo '$(srcdir)/'`gstgconfvideosrc.c libgstgconfelements_la-gstswitchsink.lo: gstswitchsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstswitchsink.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstswitchsink.Tpo -c -o libgstgconfelements_la-gstswitchsink.lo `test -f 'gstswitchsink.c' || echo '$(srcdir)/'`gstswitchsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstswitchsink.Tpo $(DEPDIR)/libgstgconfelements_la-gstswitchsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstswitchsink.c' object='libgstgconfelements_la-gstswitchsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstswitchsink.c' object='libgstgconfelements_la-gstswitchsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstswitchsink.lo `test -f 'gstswitchsink.c' || echo '$(srcdir)/'`gstswitchsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstswitchsink.lo `test -f 'gstswitchsink.c' || echo '$(srcdir)/'`gstswitchsink.c libgstgconfelements_la-gstswitchsrc.lo: gstswitchsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstswitchsrc.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstswitchsrc.Tpo -c -o libgstgconfelements_la-gstswitchsrc.lo `test -f 'gstswitchsrc.c' || echo '$(srcdir)/'`gstswitchsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstswitchsrc.Tpo $(DEPDIR)/libgstgconfelements_la-gstswitchsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstswitchsrc.c' object='libgstgconfelements_la-gstswitchsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstswitchsrc.c' object='libgstgconfelements_la-gstswitchsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstswitchsrc.lo `test -f 'gstswitchsrc.c' || echo '$(srcdir)/'`gstswitchsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstswitchsrc.lo `test -f 'gstswitchsrc.c' || echo '$(srcdir)/'`gstswitchsrc.c libgstgconfelements_la-gstgconf.lo: gstgconf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -MT libgstgconfelements_la-gstgconf.lo -MD -MP -MF $(DEPDIR)/libgstgconfelements_la-gstgconf.Tpo -c -o libgstgconfelements_la-gstgconf.lo `test -f 'gstgconf.c' || echo '$(srcdir)/'`gstgconf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgconfelements_la-gstgconf.Tpo $(DEPDIR)/libgstgconfelements_la-gstgconf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgconf.c' object='libgstgconfelements_la-gstgconf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgconf.c' object='libgstgconfelements_la-gstgconf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconf.lo `test -f 'gstgconf.c' || echo '$(srcdir)/'`gstgconf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgconfelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgconfelements_la_CFLAGS) $(CFLAGS) -c -o libgstgconfelements_la-gstgconf.lo `test -f 'gstgconf.c' || echo '$(srcdir)/'`gstgconf.c mostlyclean-libtool: -rm -f *.lo @@ -786,10 +775,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/gconf/gstswitchsink.c b/ext/gconf/gstswitchsink.c index 1fccf68..da31df2 100644 --- a/ext/gconf/gstswitchsink.c +++ b/ext/gconf/gstswitchsink.c @@ -64,8 +64,7 @@ gst_switch_sink_class_init (GstSwitchSinkClass * klass) /* Provide a default pad template if the child didn't */ child_pad_templ = gst_element_class_get_pad_template (eklass, "sink"); if (child_pad_templ == NULL) { - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); } } diff --git a/ext/gconf/gstswitchsrc.c b/ext/gconf/gstswitchsrc.c index 0136e4a..664e0bd 100644 --- a/ext/gconf/gstswitchsrc.c +++ b/ext/gconf/gstswitchsrc.c @@ -60,8 +60,7 @@ gst_switch_src_class_init (GstSwitchSrcClass * klass) /* Provide a default pad template if the child didn't */ child_pad_templ = gst_element_class_get_pad_template (eklass, "src"); if (child_pad_templ == NULL) { - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (eklass, &src_template); } } diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in index 057b9bf..72f8caa 100644 --- a/ext/gdk_pixbuf/Makefile.in +++ b/ext/gdk_pixbuf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstgdkpixbuf_la_OBJECTS = libgstgdkpixbuf_la-gstgdkpixbuf.lo \ libgstgdkpixbuf_la-gstgdkpixbufsink.lo \ libgstgdkpixbuf_la-pixbufscale.lo libgstgdkpixbuf_la_OBJECTS = $(am_libgstgdkpixbuf_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgdkpixbuf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgdkpixbuf_la_SOURCES) DIST_SOURCES = $(libgstgdkpixbuf_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -564,7 +564,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgdkpixbuf.la: $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_DEPENDENCIES) +libgstgdkpixbuf.la: $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_DEPENDENCIES) $(EXTRA_libgstgdkpixbuf_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgdkpixbuf_la_LINK) -rpath $(plugindir) $(libgstgdkpixbuf_la_OBJECTS) $(libgstgdkpixbuf_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -580,50 +580,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgdkpixbuf_la-gstgdkpixbuf.lo: gstgdkpixbuf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbuf.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbuf.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbuf.lo `test -f 'gstgdkpixbuf.c' || echo '$(srcdir)/'`gstgdkpixbuf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbuf.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbuf.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgdkpixbuf.c' object='libgstgdkpixbuf_la-gstgdkpixbuf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgdkpixbuf.c' object='libgstgdkpixbuf_la-gstgdkpixbuf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbuf.lo `test -f 'gstgdkpixbuf.c' || echo '$(srcdir)/'`gstgdkpixbuf.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbuf.lo `test -f 'gstgdkpixbuf.c' || echo '$(srcdir)/'`gstgdkpixbuf.c libgstgdkpixbuf_la-gstgdkpixbufsink.lo: gstgdkpixbufsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-gstgdkpixbufsink.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Tpo -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Tpo $(DEPDIR)/libgstgdkpixbuf_la-gstgdkpixbufsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgdkpixbufsink.c' object='libgstgdkpixbuf_la-gstgdkpixbufsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgdkpixbufsink.c' object='libgstgdkpixbuf_la-gstgdkpixbufsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-gstgdkpixbufsink.lo `test -f 'gstgdkpixbufsink.c' || echo '$(srcdir)/'`gstgdkpixbufsink.c libgstgdkpixbuf_la-pixbufscale.lo: pixbufscale.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -MT libgstgdkpixbuf_la-pixbufscale.lo -MD -MP -MF $(DEPDIR)/libgstgdkpixbuf_la-pixbufscale.Tpo -c -o libgstgdkpixbuf_la-pixbufscale.lo `test -f 'pixbufscale.c' || echo '$(srcdir)/'`pixbufscale.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdkpixbuf_la-pixbufscale.Tpo $(DEPDIR)/libgstgdkpixbuf_la-pixbufscale.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pixbufscale.c' object='libgstgdkpixbuf_la-pixbufscale.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pixbufscale.c' object='libgstgdkpixbuf_la-pixbufscale.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-pixbufscale.lo `test -f 'pixbufscale.c' || echo '$(srcdir)/'`pixbufscale.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdkpixbuf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdkpixbuf_la_CFLAGS) $(CFLAGS) -c -o libgstgdkpixbuf_la-pixbufscale.lo `test -f 'pixbufscale.c' || echo '$(srcdir)/'`pixbufscale.c mostlyclean-libtool: -rm -f *.lo @@ -730,10 +724,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.c b/ext/gdk_pixbuf/gstgdkpixbuf.c index 51c24a1..0a09400 100644 --- a/ext/gdk_pixbuf/gstgdkpixbuf.c +++ b/ext/gdk_pixbuf/gstgdkpixbuf.c @@ -157,10 +157,10 @@ gst_gdk_pixbuf_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_gdk_pixbuf_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_gdk_pixbuf_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_gdk_pixbuf_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_gdk_pixbuf_sink_template); gst_element_class_set_details_simple (element_class, "GdkPixbuf image decoder", "Codec/Decoder/Image", "Decodes images in a video stream using GdkPixbuf", diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c index f18d3c1..2c2714e 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufsink.c +++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c @@ -146,8 +146,8 @@ gst_gdk_pixbuf_sink_base_init (gpointer g_class) "Sink/Video", "Output images as GdkPixbuf objects in bus messages", "Tim-Philipp Müller "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&pixbufsink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &pixbufsink_sink_factory); } static void @@ -271,7 +271,7 @@ gst_gdk_pixbuf_sink_set_caps (GstBaseSink * basesink, GstCaps * caps) GST_INFO_OBJECT (sink, "format : %d", fmt); GST_INFO_OBJECT (sink, "width x height : %d x %d", w, h); - GST_INFO_OBJECT (sink, "pixel-aspect-ratio : %d/%d", par_d, par_n); + GST_INFO_OBJECT (sink, "pixel-aspect-ratio : %d/%d", par_n, par_d); return TRUE; } @@ -344,7 +344,7 @@ gst_gdk_pixbuf_sink_handle_buffer (GstBaseSink * basesink, GstBuffer * buf, * The structure will take its own ref to the pixbuf. */ s = gst_structure_new (msg_name, "pixbuf", GDK_TYPE_PIXBUF, pixbuf, - "pixel-aspect-ratio", GST_TYPE_FRACTION, sink->par_d, sink->par_n, + "pixel-aspect-ratio", GST_TYPE_FRACTION, sink->par_n, sink->par_d, NULL); msg = gst_message_new_element (GST_OBJECT_CAST (sink), s); diff --git a/ext/gdk_pixbuf/pixbufscale.c b/ext/gdk_pixbuf/pixbufscale.c index bedd982..ba98f62 100644 --- a/ext/gdk_pixbuf/pixbufscale.c +++ b/ext/gdk_pixbuf/pixbufscale.c @@ -122,10 +122,10 @@ gst_pixbufscale_base_init (gpointer g_class) "Wim Taymans , " "Renato Filho "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_pixbufscale_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_pixbufscale_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_pixbufscale_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_pixbufscale_sink_template); } static void diff --git a/ext/hal/Makefile.in b/ext/hal/Makefile.in index 92d4173..7a67203 100644 --- a/ext/hal/Makefile.in +++ b/ext/hal/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgsthalelements_la_OBJECTS = \ libgsthalelements_la-gsthalelements.lo \ libgsthalelements_la-hal.lo libgsthalelements_la_OBJECTS = $(am_libgsthalelements_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsthalelements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsthalelements_la_SOURCES) DIST_SOURCES = $(libgsthalelements_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -562,7 +562,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsthalelements.la: $(libgsthalelements_la_OBJECTS) $(libgsthalelements_la_DEPENDENCIES) +libgsthalelements.la: $(libgsthalelements_la_OBJECTS) $(libgsthalelements_la_DEPENDENCIES) $(EXTRA_libgsthalelements_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsthalelements_la_LINK) -rpath $(plugindir) $(libgsthalelements_la_OBJECTS) $(libgsthalelements_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -579,58 +579,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsthalelements_la-gsthalaudiosink.lo: gsthalaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -MT libgsthalelements_la-gsthalaudiosink.lo -MD -MP -MF $(DEPDIR)/libgsthalelements_la-gsthalaudiosink.Tpo -c -o libgsthalelements_la-gsthalaudiosink.lo `test -f 'gsthalaudiosink.c' || echo '$(srcdir)/'`gsthalaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsthalelements_la-gsthalaudiosink.Tpo $(DEPDIR)/libgsthalelements_la-gsthalaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthalaudiosink.c' object='libgsthalelements_la-gsthalaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthalaudiosink.c' object='libgsthalelements_la-gsthalaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalaudiosink.lo `test -f 'gsthalaudiosink.c' || echo '$(srcdir)/'`gsthalaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalaudiosink.lo `test -f 'gsthalaudiosink.c' || echo '$(srcdir)/'`gsthalaudiosink.c libgsthalelements_la-gsthalaudiosrc.lo: gsthalaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -MT libgsthalelements_la-gsthalaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgsthalelements_la-gsthalaudiosrc.Tpo -c -o libgsthalelements_la-gsthalaudiosrc.lo `test -f 'gsthalaudiosrc.c' || echo '$(srcdir)/'`gsthalaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsthalelements_la-gsthalaudiosrc.Tpo $(DEPDIR)/libgsthalelements_la-gsthalaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthalaudiosrc.c' object='libgsthalelements_la-gsthalaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthalaudiosrc.c' object='libgsthalelements_la-gsthalaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalaudiosrc.lo `test -f 'gsthalaudiosrc.c' || echo '$(srcdir)/'`gsthalaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalaudiosrc.lo `test -f 'gsthalaudiosrc.c' || echo '$(srcdir)/'`gsthalaudiosrc.c libgsthalelements_la-gsthalelements.lo: gsthalelements.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -MT libgsthalelements_la-gsthalelements.lo -MD -MP -MF $(DEPDIR)/libgsthalelements_la-gsthalelements.Tpo -c -o libgsthalelements_la-gsthalelements.lo `test -f 'gsthalelements.c' || echo '$(srcdir)/'`gsthalelements.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsthalelements_la-gsthalelements.Tpo $(DEPDIR)/libgsthalelements_la-gsthalelements.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthalelements.c' object='libgsthalelements_la-gsthalelements.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthalelements.c' object='libgsthalelements_la-gsthalelements.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalelements.lo `test -f 'gsthalelements.c' || echo '$(srcdir)/'`gsthalelements.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-gsthalelements.lo `test -f 'gsthalelements.c' || echo '$(srcdir)/'`gsthalelements.c libgsthalelements_la-hal.lo: hal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -MT libgsthalelements_la-hal.lo -MD -MP -MF $(DEPDIR)/libgsthalelements_la-hal.Tpo -c -o libgsthalelements_la-hal.lo `test -f 'hal.c' || echo '$(srcdir)/'`hal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsthalelements_la-hal.Tpo $(DEPDIR)/libgsthalelements_la-hal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hal.c' object='libgsthalelements_la-hal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hal.c' object='libgsthalelements_la-hal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-hal.lo `test -f 'hal.c' || echo '$(srcdir)/'`hal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsthalelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsthalelements_la_CFLAGS) $(CFLAGS) -c -o libgsthalelements_la-hal.lo `test -f 'hal.c' || echo '$(srcdir)/'`hal.c mostlyclean-libtool: -rm -f *.lo @@ -737,10 +730,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/hal/gsthalaudiosink.c b/ext/hal/gsthalaudiosink.c index 24b29da..88fac00 100644 --- a/ext/hal/gsthalaudiosink.c +++ b/ext/hal/gsthalaudiosink.c @@ -74,8 +74,7 @@ gst_hal_audio_sink_base_init (gpointer klass) GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); gst_element_class_set_details_simple (eklass, "HAL audio sink", "Sink/Audio", "Audio sink for sound device access via HAL", diff --git a/ext/hal/gsthalaudiosrc.c b/ext/hal/gsthalaudiosrc.c index de87848..339a767 100644 --- a/ext/hal/gsthalaudiosrc.c +++ b/ext/hal/gsthalaudiosrc.c @@ -76,8 +76,7 @@ gst_hal_audio_src_base_init (gpointer klass) GST_PAD_ALWAYS, GST_STATIC_CAPS_ANY); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (eklass, &src_template); gst_element_class_set_details_simple (eklass, "HAL audio source", "Source/Audio", "Audio source for sound device access via HAL", diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in index 6ecf2c2..5c4f09f 100644 --- a/ext/jack/Makefile.in +++ b/ext/jack/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstjack_la_OBJECTS = libgstjack_la-gstjackutil.lo \ libgstjack_la-gstjackaudiosink.lo \ libgstjack_la-gstjackaudioclient.lo libgstjack_la_OBJECTS = $(am_libgstjack_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstjack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstjack_la_SOURCES) DIST_SOURCES = $(libgstjack_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -551,7 +551,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstjack.la: $(libgstjack_la_OBJECTS) $(libgstjack_la_DEPENDENCIES) +libgstjack.la: $(libgstjack_la_OBJECTS) $(libgstjack_la_DEPENDENCIES) $(EXTRA_libgstjack_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjack_la_LINK) -rpath $(plugindir) $(libgstjack_la_OBJECTS) $(libgstjack_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -569,66 +569,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstjack_la-gstjackutil.lo: gstjackutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackutil.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackutil.Tpo -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackutil.Tpo $(DEPDIR)/libgstjack_la-gstjackutil.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjackutil.c' object='libgstjack_la-gstjackutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjackutil.c' object='libgstjack_la-gstjackutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackutil.lo `test -f 'gstjackutil.c' || echo '$(srcdir)/'`gstjackutil.c libgstjack_la-gstjack.lo: gstjack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjack.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjack.Tpo -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjack.Tpo $(DEPDIR)/libgstjack_la-gstjack.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjack.c' object='libgstjack_la-gstjack.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjack.c' object='libgstjack_la-gstjack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjack.lo `test -f 'gstjack.c' || echo '$(srcdir)/'`gstjack.c libgstjack_la-gstjackaudiosrc.lo: gstjackaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Tpo -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Tpo $(DEPDIR)/libgstjack_la-gstjackaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjackaudiosrc.c' object='libgstjack_la-gstjackaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjackaudiosrc.c' object='libgstjack_la-gstjackaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosrc.lo `test -f 'gstjackaudiosrc.c' || echo '$(srcdir)/'`gstjackaudiosrc.c libgstjack_la-gstjackaudiosink.lo: gstjackaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudiosink.Tpo -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudiosink.Tpo $(DEPDIR)/libgstjack_la-gstjackaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjackaudiosink.c' object='libgstjack_la-gstjackaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjackaudiosink.c' object='libgstjack_la-gstjackaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudiosink.lo `test -f 'gstjackaudiosink.c' || echo '$(srcdir)/'`gstjackaudiosink.c libgstjack_la-gstjackaudioclient.lo: gstjackaudioclient.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -MT libgstjack_la-gstjackaudioclient.lo -MD -MP -MF $(DEPDIR)/libgstjack_la-gstjackaudioclient.Tpo -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjack_la-gstjackaudioclient.Tpo $(DEPDIR)/libgstjack_la-gstjackaudioclient.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjackaudioclient.c' object='libgstjack_la-gstjackaudioclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjackaudioclient.c' object='libgstjack_la-gstjackaudioclient.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjack_la_CFLAGS) $(CFLAGS) -c -o libgstjack_la-gstjackaudioclient.lo `test -f 'gstjackaudioclient.c' || echo '$(srcdir)/'`gstjackaudioclient.c mostlyclean-libtool: -rm -f *.lo @@ -735,10 +727,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c index 1789edb..2bb3555 100644 --- a/ext/jack/gstjackaudioclient.c +++ b/ext/jack/gstjackaudioclient.c @@ -23,6 +23,8 @@ #include "gstjackaudioclient.h" +#include + GST_DEBUG_CATEGORY_STATIC (gst_jack_audio_client_debug); #define GST_CAT_DEFAULT gst_jack_audio_client_debug diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index e919050..078ca24 100644 --- a/ext/jack/gstjackaudiosink.c +++ b/ext/jack/gstjackaudiosink.c @@ -83,6 +83,7 @@ gst_jack_audio_sink_allocate_channels (GstJackAudioSink * sink, gint channels) /* alloc enough output ports */ sink->ports = g_realloc (sink->ports, sizeof (jack_port_t *) * channels); + sink->buffers = g_realloc (sink->buffers, sizeof (sample_t *) * channels); /* create an output port for each channel */ while (sink->port_count < channels) { @@ -123,6 +124,8 @@ gst_jack_audio_sink_free_channels (GstJackAudioSink * sink) } g_free (sink->ports); sink->ports = NULL; + g_free (sink->buffers); + sink->buffers = NULL; } /* ringbuffer abstract base class */ @@ -187,19 +190,17 @@ jack_process_cb (jack_nframes_t nframes, void *arg) gint readseg, len; guint8 *readptr; gint i, j, flen, channels; - sample_t **buffers, *data; + sample_t *data; buf = GST_RING_BUFFER_CAST (arg); sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf)); channels = buf->spec.channels; - /* alloc pointers to samples */ - buffers = g_alloca (sizeof (sample_t *) * channels); - /* get target buffers */ for (i = 0; i < channels; i++) { - buffers[i] = (sample_t *) jack_port_get_buffer (sink->ports[i], nframes); + sink->buffers[i] = + (sample_t *) jack_port_get_buffer (sink->ports[i], nframes); } if (gst_ring_buffer_prepare_read (buf, &readseg, &readptr, &len)) { @@ -217,7 +218,7 @@ jack_process_cb (jack_nframes_t nframes, void *arg) * deinterleave into the jack target buffers */ for (i = 0; i < nframes; i++) { for (j = 0; j < channels; j++) { - buffers[j][i] = *data++; + sink->buffers[j][i] = *data++; } } @@ -231,7 +232,7 @@ jack_process_cb (jack_nframes_t nframes, void *arg) /* We are not allowed to read from the ringbuffer, write silence to all * jack output buffers */ for (i = 0; i < channels; i++) { - memset (buffers[i], 0, nframes * sizeof (sample_t)); + memset (sink->buffers[i], 0, nframes * sizeof (sample_t)); } } return 0; @@ -328,7 +329,11 @@ gst_jack_ring_buffer_open_device (GstRingBuffer * buf) GST_DEBUG_OBJECT (sink, "open"); - name = g_get_application_name (); + if (sink->client_name) { + name = sink->client_name; + } else { + name = g_get_application_name (); + } if (!name) name = "GStreamer"; @@ -643,8 +648,9 @@ enum SIGNAL_LAST }; -#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO -#define DEFAULT_PROP_SERVER NULL +#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO +#define DEFAULT_PROP_SERVER NULL +#define DEFAULT_PROP_CLIENT_NAME NULL enum { @@ -652,6 +658,7 @@ enum PROP_CONNECT, PROP_SERVER, PROP_CLIENT, + PROP_CLIENT_NAME, PROP_LAST }; @@ -680,8 +687,8 @@ gst_jack_audio_sink_base_init (gpointer g_class) "Sink/Audio", "Output audio to a JACK server", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&jackaudiosink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &jackaudiosink_sink_factory); } static void @@ -710,6 +717,19 @@ gst_jack_audio_sink_class_init (GstJackAudioSinkClass * klass) "The Jack server to connect to (NULL = default)", DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstJackAudioSink:client-name + * + * The client name to use. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_CLIENT_NAME, + g_param_spec_string ("client-name", "Client name", + "The client name of the Jack instance (NULL = default)", + DEFAULT_PROP_CLIENT_NAME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CLIENT, g_param_spec_boxed ("client", "JackClient", "Handle for jack client", GST_TYPE_JACK_CLIENT, @@ -737,6 +757,8 @@ gst_jack_audio_sink_init (GstJackAudioSink * sink, sink->jclient = NULL; sink->ports = NULL; sink->port_count = 0; + sink->client_name = g_strdup (DEFAULT_PROP_CLIENT_NAME); + sink->buffers = NULL; } static void @@ -745,6 +767,12 @@ gst_jack_audio_sink_dispose (GObject * object) GstJackAudioSink *sink = GST_JACK_AUDIO_SINK (object); gst_caps_replace (&sink->caps, NULL); + + if (sink->client_name != NULL) { + g_free (sink->client_name); + sink->client_name = NULL; + } + G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -757,6 +785,10 @@ gst_jack_audio_sink_set_property (GObject * object, guint prop_id, sink = GST_JACK_AUDIO_SINK (object); switch (prop_id) { + case PROP_CLIENT_NAME: + g_free (sink->client_name); + sink->client_name = g_value_dup_string (value); + break; case PROP_CONNECT: sink->connect = g_value_get_enum (value); break; @@ -785,6 +817,9 @@ gst_jack_audio_sink_get_property (GObject * object, guint prop_id, sink = GST_JACK_AUDIO_SINK (object); switch (prop_id) { + case PROP_CLIENT_NAME: + g_value_set_string (value, sink->client_name); + break; case PROP_CONNECT: g_value_set_enum (value, sink->connect); break; diff --git a/ext/jack/gstjackaudiosink.h b/ext/jack/gstjackaudiosink.h index def4233..db5fc28 100644 --- a/ext/jack/gstjackaudiosink.h +++ b/ext/jack/gstjackaudiosink.h @@ -58,6 +58,7 @@ struct _GstJackAudioSink { GstJackConnect connect; gchar *server; jack_client_t *jclient; + gchar *client_name; /* our client */ GstJackAudioClient *client; @@ -65,6 +66,7 @@ struct _GstJackAudioSink { /* our ports */ jack_port_t **ports; int port_count; + sample_t **buffers; }; struct _GstJackAudioSinkClass { diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c index d5a8733..3c37970 100644 --- a/ext/jack/gstjackaudiosrc.c +++ b/ext/jack/gstjackaudiosrc.c @@ -336,7 +336,11 @@ gst_jack_ring_buffer_open_device (GstRingBuffer * buf) GST_DEBUG_OBJECT (src, "open"); - name = g_get_application_name (); + if (src->client_name) { + name = src->client_name; + } else { + name = g_get_application_name (); + } if (!name) name = "GStreamer"; @@ -355,12 +359,12 @@ gst_jack_ring_buffer_open_device (GstRingBuffer * buf) /* ERRORS */ could_not_open: { - if (status & JackServerFailed) { + if (status & (JackServerFailed | JackFailure)) { GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, (_("Jack server not found")), ("Cannot connect to the Jack server (status %d)", status)); } else { - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_WRITE, + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL), ("Jack client open error (status %d)", status)); } return FALSE; @@ -647,8 +651,9 @@ enum LAST_SIGNAL }; -#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO -#define DEFAULT_PROP_SERVER NULL +#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO +#define DEFAULT_PROP_SERVER NULL +#define DEFAULT_PROP_CLIENT_NAME NULL enum { @@ -656,6 +661,7 @@ enum PROP_CONNECT, PROP_SERVER, PROP_CLIENT, + PROP_CLIENT_NAME, PROP_LAST }; @@ -697,8 +703,7 @@ gst_jack_audio_src_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "Audio Source (Jack)", "Source/Audio", "Captures audio from a JACK server", "Tristan Matthews "); @@ -732,6 +737,19 @@ gst_jack_audio_src_class_init (GstJackAudioSrcClass * klass) "The Jack server to connect to (NULL = default)", DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstJackAudioSrc:client-name + * + * The client name to use. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_CLIENT_NAME, + g_param_spec_string ("client-name", "Client name", + "The client name of the Jack instance (NULL = default)", + DEFAULT_PROP_CLIENT_NAME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CLIENT, g_param_spec_boxed ("client", "JackClient", "Handle for jack client", GST_TYPE_JACK_CLIENT, @@ -764,6 +782,7 @@ gst_jack_audio_src_init (GstJackAudioSrc * src, GstJackAudioSrcClass * gclass) src->ports = NULL; src->port_count = 0; src->buffers = NULL; + src->client_name = g_strdup (DEFAULT_PROP_CLIENT_NAME); } static void @@ -772,6 +791,12 @@ gst_jack_audio_src_dispose (GObject * object) GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object); gst_caps_replace (&src->caps, NULL); + + if (src->client_name != NULL) { + g_free (src->client_name); + src->client_name = NULL; + } + G_OBJECT_CLASS (parent_class)->dispose (object); } @@ -782,6 +807,10 @@ gst_jack_audio_src_set_property (GObject * object, guint prop_id, GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object); switch (prop_id) { + case PROP_CLIENT_NAME: + g_free (src->client_name); + src->client_name = g_value_dup_string (value); + break; case PROP_CONNECT: src->connect = g_value_get_enum (value); break; @@ -808,6 +837,9 @@ gst_jack_audio_src_get_property (GObject * object, guint prop_id, GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object); switch (prop_id) { + case PROP_CLIENT_NAME: + g_value_set_string (value, src->client_name); + break; case PROP_CONNECT: g_value_set_enum (value, src->connect); break; diff --git a/ext/jack/gstjackaudiosrc.h b/ext/jack/gstjackaudiosrc.h index 7e99b69..b69a4d6 100644 --- a/ext/jack/gstjackaudiosrc.h +++ b/ext/jack/gstjackaudiosrc.h @@ -75,6 +75,7 @@ struct _GstJackAudioSrc GstJackConnect connect; gchar *server; jack_client_t *jclient; + gchar *client_name; /* our client */ GstJackAudioClient *client; diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in index ec9ea9f..3cc176c 100644 --- a/ext/jpeg/Makefile.in +++ b/ext/jpeg/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstjpeg_la_OBJECTS = libgstjpeg_la-gstjpeg.lo \ libgstjpeg_la-gstsmokeenc.lo libgstjpeg_la-smokecodec.lo \ libgstjpeg_la-gstsmokedec.lo libgstjpeg_la_OBJECTS = $(am_libgstjpeg_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstjpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstjpeg_la_SOURCES) DIST_SOURCES = $(libgstjpeg_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,7 +566,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstjpeg.la: $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_DEPENDENCIES) +libgstjpeg.la: $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_DEPENDENCIES) $(EXTRA_libgstjpeg_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstjpeg_la_LINK) -rpath $(plugindir) $(libgstjpeg_la_OBJECTS) $(libgstjpeg_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -585,74 +585,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstjpeg_la-gstjpeg.lo: gstjpeg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpeg.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpeg.Tpo -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpeg.Tpo $(DEPDIR)/libgstjpeg_la-gstjpeg.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjpeg.c' object='libgstjpeg_la-gstjpeg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjpeg.c' object='libgstjpeg_la-gstjpeg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpeg.lo `test -f 'gstjpeg.c' || echo '$(srcdir)/'`gstjpeg.c libgstjpeg_la-gstjpegenc.lo: gstjpegenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegenc.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegenc.Tpo -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpegenc.Tpo $(DEPDIR)/libgstjpeg_la-gstjpegenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjpegenc.c' object='libgstjpeg_la-gstjpegenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjpegenc.c' object='libgstjpeg_la-gstjpegenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegenc.lo `test -f 'gstjpegenc.c' || echo '$(srcdir)/'`gstjpegenc.c libgstjpeg_la-gstjpegdec.lo: gstjpegdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstjpegdec.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstjpegdec.Tpo -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstjpegdec.Tpo $(DEPDIR)/libgstjpeg_la-gstjpegdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjpegdec.c' object='libgstjpeg_la-gstjpegdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstjpegdec.c' object='libgstjpeg_la-gstjpegdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstjpegdec.lo `test -f 'gstjpegdec.c' || echo '$(srcdir)/'`gstjpegdec.c libgstjpeg_la-gstsmokeenc.lo: gstsmokeenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstsmokeenc.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstsmokeenc.Tpo -c -o libgstjpeg_la-gstsmokeenc.lo `test -f 'gstsmokeenc.c' || echo '$(srcdir)/'`gstsmokeenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstsmokeenc.Tpo $(DEPDIR)/libgstjpeg_la-gstsmokeenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmokeenc.c' object='libgstjpeg_la-gstsmokeenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmokeenc.c' object='libgstjpeg_la-gstsmokeenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstsmokeenc.lo `test -f 'gstsmokeenc.c' || echo '$(srcdir)/'`gstsmokeenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstsmokeenc.lo `test -f 'gstsmokeenc.c' || echo '$(srcdir)/'`gstsmokeenc.c libgstjpeg_la-smokecodec.lo: smokecodec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-smokecodec.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-smokecodec.Tpo -c -o libgstjpeg_la-smokecodec.lo `test -f 'smokecodec.c' || echo '$(srcdir)/'`smokecodec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-smokecodec.Tpo $(DEPDIR)/libgstjpeg_la-smokecodec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smokecodec.c' object='libgstjpeg_la-smokecodec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='smokecodec.c' object='libgstjpeg_la-smokecodec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-smokecodec.lo `test -f 'smokecodec.c' || echo '$(srcdir)/'`smokecodec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-smokecodec.lo `test -f 'smokecodec.c' || echo '$(srcdir)/'`smokecodec.c libgstjpeg_la-gstsmokedec.lo: gstsmokedec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -MT libgstjpeg_la-gstsmokedec.lo -MD -MP -MF $(DEPDIR)/libgstjpeg_la-gstsmokedec.Tpo -c -o libgstjpeg_la-gstsmokedec.lo `test -f 'gstsmokedec.c' || echo '$(srcdir)/'`gstsmokedec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjpeg_la-gstsmokedec.Tpo $(DEPDIR)/libgstjpeg_la-gstsmokedec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmokedec.c' object='libgstjpeg_la-gstsmokedec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmokedec.c' object='libgstjpeg_la-gstsmokedec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstsmokedec.lo `test -f 'gstsmokedec.c' || echo '$(srcdir)/'`gstsmokedec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjpeg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjpeg_la_CFLAGS) $(CFLAGS) -c -o libgstjpeg_la-gstsmokedec.lo `test -f 'gstsmokedec.c' || echo '$(srcdir)/'`gstsmokedec.c mostlyclean-libtool: -rm -f *.lo @@ -759,10 +750,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c index 4d1be83..18cf20d 100644 --- a/ext/jpeg/gstjpegdec.c +++ b/ext/jpeg/gstjpegdec.c @@ -74,6 +74,7 @@ GST_STATIC_PAD_TEMPLATE ("src", ); /* *INDENT-ON* */ +/* FIXME: sof-marker is for IJG libjpeg 8, should be different for 6.2 */ static GstStaticPadTemplate gst_jpeg_dec_sink_pad_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -81,7 +82,8 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("image/jpeg, " "width = (int) [ " G_STRINGIFY (MIN_WIDTH) ", " G_STRINGIFY (MAX_WIDTH) " ], " "height = (int) [ " G_STRINGIFY (MIN_HEIGHT) ", " - G_STRINGIFY (MAX_HEIGHT) " ], " "framerate = (fraction) [ 0/1, MAX ]") + G_STRINGIFY (MAX_HEIGHT) " ], framerate = (fraction) [ 0/1, MAX ], " + "sof-marker = (int) { 0, 1, 2, 5, 6, 7, 9, 10, 13, 14 }") ); GST_DEBUG_CATEGORY_STATIC (jpeg_dec_debug); @@ -113,6 +115,7 @@ static void gst_jpeg_dec_get_property (GObject * object, guint prop_id, static GstFlowReturn gst_jpeg_dec_chain (GstPad * pad, GstBuffer * buffer); static gboolean gst_jpeg_dec_setcaps (GstPad * pad, GstCaps * caps); +static GstCaps *gst_jpeg_dec_getcaps (GstPad * pad); static gboolean gst_jpeg_dec_sink_event (GstPad * pad, GstEvent * event); static gboolean gst_jpeg_dec_src_event (GstPad * pad, GstEvent * event); static GstStateChangeReturn gst_jpeg_dec_change_state (GstElement * element, @@ -164,10 +167,10 @@ gst_jpeg_dec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jpeg_dec_src_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jpeg_dec_sink_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_jpeg_dec_src_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_jpeg_dec_sink_pad_template); gst_element_class_set_details_simple (element_class, "JPEG image decoder", "Codec/Decoder/Image", "Decode images from JPEG format", "Wim Taymans "); @@ -406,6 +409,8 @@ gst_jpeg_dec_init (GstJpegDec * dec) gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); gst_pad_set_setcaps_function (dec->sinkpad, GST_DEBUG_FUNCPTR (gst_jpeg_dec_setcaps)); + gst_pad_set_getcaps_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_jpeg_dec_getcaps)); gst_pad_set_chain_function (dec->sinkpad, GST_DEBUG_FUNCPTR (gst_jpeg_dec_chain)); gst_pad_set_event_function (dec->sinkpad, @@ -769,6 +774,50 @@ gst_jpeg_dec_setcaps (GstPad * pad, GstCaps * caps) return TRUE; } +static GstCaps * +gst_jpeg_dec_getcaps (GstPad * pad) +{ + GstJpegDec *dec; + GstCaps *caps; + GstPad *peer; + + dec = GST_JPEG_DEC (GST_OBJECT_PARENT (pad)); + + if (GST_PAD_CAPS (pad)) + return gst_caps_ref (GST_PAD_CAPS (pad)); + + peer = gst_pad_get_peer (dec->srcpad); + + if (peer) { + GstCaps *peer_caps; + const GstCaps *templ_caps; + GstStructure *s; + guint i, n; + + peer_caps = gst_pad_get_caps (peer); + + /* Translate peercaps to image/jpeg */ + peer_caps = gst_caps_make_writable (peer_caps); + n = gst_caps_get_size (peer_caps); + for (i = 0; i < n; i++) { + s = gst_caps_get_structure (peer_caps, i); + + gst_structure_set_name (s, "image/jpeg"); + } + + templ_caps = gst_pad_get_pad_template_caps (pad); + caps = gst_caps_intersect_full (peer_caps, templ_caps, + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peer_caps); + gst_object_unref (peer); + } else { + caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + } + + return caps; +} + + /* yuk */ static void hresamplecpy1 (guint8 * dest, const guint8 * src, guint len) @@ -1346,12 +1395,16 @@ again: GST_WARNING_OBJECT (dec, "reading the header failed, %d", hdr_ok); } + GST_LOG_OBJECT (dec, "num_components=%d", dec->cinfo.num_components); + GST_LOG_OBJECT (dec, "jpeg_color_space=%d", dec->cinfo.jpeg_color_space); + + if (!dec->cinfo.num_components || !dec->cinfo.comp_info) + goto components_not_supported; + r_h = dec->cinfo.comp_info[0].h_samp_factor; r_v = dec->cinfo.comp_info[0].v_samp_factor; GST_LOG_OBJECT (dec, "r_h = %d, r_v = %d", r_h, r_v); - GST_LOG_OBJECT (dec, "num_components=%d", dec->cinfo.num_components); - GST_LOG_OBJECT (dec, "jpeg_color_space=%d", dec->cinfo.jpeg_color_space); if (dec->cinfo.num_components > 3) goto components_not_supported; @@ -1624,7 +1677,8 @@ drop_buffer: components_not_supported: { gst_jpeg_dec_set_error (dec, GST_FUNCTION, __LINE__, - "more components than supported: %d > 3", dec->cinfo.num_components); + "number of components not supported: %d (max 3)", + dec->cinfo.num_components); ret = GST_FLOW_ERROR; goto done; } diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c index 8708a70..c44cb2e 100644 --- a/ext/jpeg/gstjpegenc.c +++ b/ext/jpeg/gstjpegenc.c @@ -142,10 +142,10 @@ gst_jpegenc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jpegenc_sink_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_jpegenc_src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_jpegenc_sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_jpegenc_src_pad_template); gst_element_class_set_details_simple (element_class, "JPEG image encoder", "Codec/Encoder/Image", "Encode images in JPEG format", "Wim Taymans "); @@ -210,15 +210,23 @@ gst_jpegenc_flush_destination (j_compress_ptr cinfo) GstBuffer *overflow_buffer; guint32 old_buffer_size; GstJpegEnc *jpegenc = (GstJpegEnc *) (cinfo->client_data); + GstFlowReturn ret; + GST_DEBUG_OBJECT (jpegenc, "gst_jpegenc_chain: flush_destination: buffer too small"); /* Our output buffer wasn't big enough. * Make a new buffer that's twice the size, */ old_buffer_size = GST_BUFFER_SIZE (jpegenc->output_buffer); - gst_pad_alloc_buffer_and_set_caps (jpegenc->srcpad, + ret = gst_pad_alloc_buffer_and_set_caps (jpegenc->srcpad, GST_BUFFER_OFFSET_NONE, old_buffer_size * 2, GST_PAD_CAPS (jpegenc->srcpad), &overflow_buffer); + /* handle here if needed */ + if (ret != GST_FLOW_OK) { + overflow_buffer = gst_buffer_new_and_alloc (old_buffer_size * 2); + gst_buffer_set_caps (overflow_buffer, GST_PAD_CAPS (jpegenc->srcpad)); + } + memcpy (GST_BUFFER_DATA (overflow_buffer), GST_BUFFER_DATA (jpegenc->output_buffer), old_buffer_size); @@ -246,8 +254,7 @@ gst_jpegenc_term_destination (j_compress_ptr cinfo) /* Trim the buffer size and push it. */ GST_BUFFER_SIZE (jpegenc->output_buffer) = - GST_ROUND_UP_4 (GST_BUFFER_SIZE (jpegenc->output_buffer) - - jpegenc->jdest.free_in_buffer); + GST_BUFFER_SIZE (jpegenc->output_buffer) - jpegenc->jdest.free_in_buffer; g_signal_emit (G_OBJECT (jpegenc), gst_jpegenc_signals[FRAME_ENCODED], 0); diff --git a/ext/jpeg/gstsmokedec.c b/ext/jpeg/gstsmokedec.c index f2cfc0a..6e38bb9 100644 --- a/ext/jpeg/gstsmokedec.c +++ b/ext/jpeg/gstsmokedec.c @@ -106,10 +106,10 @@ gst_smokedec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smokedec_src_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smokedec_sink_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_smokedec_src_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smokedec_sink_pad_template); gst_element_class_set_details_simple (element_class, "Smoke video decoder", "Codec/Decoder/Video", "Decode video from Smoke format", "Wim Taymans "); diff --git a/ext/jpeg/gstsmokeenc.c b/ext/jpeg/gstsmokeenc.c index 2acddc6..5bd4d99 100644 --- a/ext/jpeg/gstsmokeenc.c +++ b/ext/jpeg/gstsmokeenc.c @@ -123,10 +123,10 @@ gst_smokeenc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smokeenc_sink_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smokeenc_src_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_smokeenc_sink_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smokeenc_src_pad_template); gst_element_class_set_details_simple (element_class, "Smoke video encoder", "Codec/Encoder/Video", "Encode images into the Smoke format", "Wim Taymans "); diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in index 6f57cea..d12e274 100644 --- a/ext/libcaca/Makefile.in +++ b/ext/libcaca/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstcacasink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstcacasink_la_OBJECTS = libgstcacasink_la-gstcacasink.lo libgstcacasink_la_OBJECTS = $(am_libgstcacasink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcacasink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcacasink_la_SOURCES) DIST_SOURCES = $(libgstcacasink_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -557,7 +557,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcacasink.la: $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_DEPENDENCIES) +libgstcacasink.la: $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_DEPENDENCIES) $(EXTRA_libgstcacasink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcacasink_la_LINK) -rpath $(plugindir) $(libgstcacasink_la_OBJECTS) $(libgstcacasink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -571,34 +571,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcacasink_la-gstcacasink.lo: gstcacasink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -MT libgstcacasink_la-gstcacasink.lo -MD -MP -MF $(DEPDIR)/libgstcacasink_la-gstcacasink.Tpo -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcacasink_la-gstcacasink.Tpo $(DEPDIR)/libgstcacasink_la-gstcacasink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcacasink.c' object='libgstcacasink_la-gstcacasink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcacasink.c' object='libgstcacasink_la-gstcacasink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcacasink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcacasink_la_CFLAGS) $(CFLAGS) -c -o libgstcacasink_la-gstcacasink.lo `test -f 'gstcacasink.c' || echo '$(srcdir)/'`gstcacasink.c mostlyclean-libtool: -rm -f *.lo @@ -705,10 +701,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c index 1846c26..5c3a589 100644 --- a/ext/libcaca/gstcacasink.c +++ b/ext/libcaca/gstcacasink.c @@ -151,8 +151,8 @@ gst_cacasink_base_init (gpointer g_class) gst_element_class_set_details_simple (element_class, "A colored ASCII art video sink", "Sink/Video", "A colored ASCII art videosink", "Zeeshan Ali "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); } static void diff --git a/ext/libpng/Makefile.am b/ext/libpng/Makefile.am index 5d1f63a..bce5b1a 100644 --- a/ext/libpng/Makefile.am +++ b/ext/libpng/Makefile.am @@ -2,7 +2,8 @@ plugin_LTLIBRARIES = libgstpng.la libgstpng_la_SOURCES = gstpng.c gstpngenc.c gstpngdec.c libgstpng_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(LIBPNG_CFLAGS) -libgstpng_la_LIBADD = $(GST_LIBS) $(LIBPNG_LIBS) +libgstpng_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ + $(GST_LIBS) $(LIBPNG_LIBS) libgstpng_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstpng_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in index 3719a71..960a341 100644 --- a/ext/libpng/Makefile.in +++ b/ext/libpng/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,16 +102,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstpng_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstpng_la_OBJECTS = libgstpng_la-gstpng.lo \ libgstpng_la-gstpngenc.lo libgstpng_la-gstpngdec.lo libgstpng_la_OBJECTS = $(am_libgstpng_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstpng_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstpng_la_SOURCES) DIST_SOURCES = $(libgstpng_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -480,7 +480,9 @@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstpng.la libgstpng_la_SOURCES = gstpng.c gstpngenc.c gstpngdec.c libgstpng_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(LIBPNG_CFLAGS) -libgstpng_la_LIBADD = $(GST_LIBS) $(LIBPNG_LIBS) +libgstpng_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ \ + $(GST_LIBS) $(LIBPNG_LIBS) + libgstpng_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstpng_la_LIBTOOLFLAGS = --tag=disable-static noinst_HEADERS = gstpngdec.h gstpngenc.h @@ -549,7 +551,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstpng.la: $(libgstpng_la_OBJECTS) $(libgstpng_la_DEPENDENCIES) +libgstpng.la: $(libgstpng_la_OBJECTS) $(libgstpng_la_DEPENDENCIES) $(EXTRA_libgstpng_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpng_la_LINK) -rpath $(plugindir) $(libgstpng_la_OBJECTS) $(libgstpng_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -565,50 +567,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstpng_la-gstpng.lo: gstpng.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpng.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpng.Tpo -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpng.Tpo $(DEPDIR)/libgstpng_la-gstpng.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpng.c' object='libgstpng_la-gstpng.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpng.c' object='libgstpng_la-gstpng.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpng.lo `test -f 'gstpng.c' || echo '$(srcdir)/'`gstpng.c libgstpng_la-gstpngenc.lo: gstpngenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngenc.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngenc.Tpo -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpngenc.Tpo $(DEPDIR)/libgstpng_la-gstpngenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpngenc.c' object='libgstpng_la-gstpngenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpngenc.c' object='libgstpng_la-gstpngenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngenc.lo `test -f 'gstpngenc.c' || echo '$(srcdir)/'`gstpngenc.c libgstpng_la-gstpngdec.lo: gstpngdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -MT libgstpng_la-gstpngdec.lo -MD -MP -MF $(DEPDIR)/libgstpng_la-gstpngdec.Tpo -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpng_la-gstpngdec.Tpo $(DEPDIR)/libgstpng_la-gstpngdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpngdec.c' object='libgstpng_la-gstpngdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpngdec.c' object='libgstpng_la-gstpngdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpng_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpng_la_CFLAGS) $(CFLAGS) -c -o libgstpng_la-gstpngdec.lo `test -f 'gstpngdec.c' || echo '$(srcdir)/'`gstpngdec.c mostlyclean-libtool: -rm -f *.lo @@ -715,10 +711,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index 9653100..4a2b547 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -102,10 +102,10 @@ gst_pngdec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_pngdec_src_pad_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_pngdec_sink_pad_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_pngdec_src_pad_template); + gst_element_class_add_static_pad_template (element_class, + &gst_pngdec_sink_pad_template); gst_element_class_set_details_simple (element_class, "PNG image decoder", "Codec/Decoder/Image", "Decode a png video frame to a raw image", diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c index a7bfaef..30986cd 100644 --- a/ext/libpng/gstpngenc.c +++ b/ext/libpng/gstpngenc.c @@ -30,8 +30,6 @@ #include #include -#define MAX_HEIGHT 4096 - GST_DEBUG_CATEGORY_STATIC (pngenc_debug); #define GST_CAT_DEFAULT pngenc_debug @@ -59,8 +57,8 @@ GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("image/png, " - "width = (int) [ 16, 4096 ], " - "height = (int) [ 16, 4096 ], " "framerate = " GST_VIDEO_FPS_RANGE) + "width = (int) [ 16, 1000000 ], " + "height = (int) [ 16, 1000000 ], " "framerate = " GST_VIDEO_FPS_RANGE) ); static GstStaticPadTemplate pngenc_sink_template = @@ -99,10 +97,10 @@ gst_pngenc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template - (element_class, gst_static_pad_template_get (&pngenc_sink_template)); - gst_element_class_add_pad_template - (element_class, gst_static_pad_template_get (&pngenc_src_template)); + gst_element_class_add_static_pad_template + (element_class, &pngenc_sink_template); + gst_element_class_add_static_pad_template + (element_class, &pngenc_src_template); gst_element_class_set_details_simple (element_class, "PNG image encoder", "Codec/Encoder/Image", "Encode a video frame to a .png image", @@ -146,35 +144,60 @@ static gboolean gst_pngenc_setcaps (GstPad * pad, GstCaps * caps) { GstPngEnc *pngenc; - const GValue *fps; - GstStructure *structure; + GstVideoFormat format; + int fps_n, fps_d; GstCaps *pcaps; - gboolean ret = TRUE; + gboolean ret; pngenc = GST_PNGENC (gst_pad_get_parent (pad)); - structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "width", &pngenc->width); - gst_structure_get_int (structure, "height", &pngenc->height); - fps = gst_structure_get_value (structure, "framerate"); - gst_structure_get_int (structure, "bpp", &pngenc->bpp); + ret = gst_video_format_parse_caps (caps, &format, + &pngenc->width, &pngenc->height); + if (G_LIKELY (ret)) + ret = gst_video_parse_caps_framerate (caps, &fps_n, &fps_d); + + if (G_UNLIKELY (!ret)) + goto done; + + switch (format) { + case GST_VIDEO_FORMAT_RGBA: + pngenc->png_color_type = PNG_COLOR_TYPE_RGBA; + break; + case GST_VIDEO_FORMAT_RGB: + pngenc->png_color_type = PNG_COLOR_TYPE_RGB; + break; + case GST_VIDEO_FORMAT_GRAY8: + pngenc->png_color_type = PNG_COLOR_TYPE_GRAY; + break; + default: + ret = FALSE; + goto done; + } + + if (G_UNLIKELY (pngenc->width < 16 || pngenc->width > 1000000 || + pngenc->height < 16 || pngenc->height > 1000000)) { + ret = FALSE; + goto done; + } - if (pngenc->bpp == 32) - pngenc->stride = pngenc->width * 4; - else if (pngenc->bpp == 8) - pngenc->stride = GST_ROUND_UP_4 (pngenc->width); - else - pngenc->stride = GST_ROUND_UP_4 (pngenc->width * 3); + pngenc->stride = gst_video_format_get_row_stride (format, 0, pngenc->width); pcaps = gst_caps_new_simple ("image/png", "width", G_TYPE_INT, pngenc->width, - "height", G_TYPE_INT, pngenc->height, NULL); - structure = gst_caps_get_structure (pcaps, 0); - gst_structure_set_value (structure, "framerate", fps); + "height", G_TYPE_INT, pngenc->height, + "framerate", GST_TYPE_FRACTION, fps_n, fps_d, NULL); ret = gst_pad_set_caps (pngenc->srcpad, pcaps); gst_caps_unref (pcaps); + + /* Fall-through. */ +done: + if (G_UNLIKELY (!ret)) { + pngenc->width = 0; + pngenc->height = 0; + } + gst_object_unref (pngenc); return ret; @@ -238,8 +261,7 @@ gst_pngenc_chain (GstPad * pad, GstBuffer * buf) { GstPngEnc *pngenc; gint row_index; - gint color_type; - png_byte *row_pointers[MAX_HEIGHT]; + png_byte **row_pointers; GstFlowReturn ret = GST_FLOW_OK; GstBuffer *encoded_buf = NULL; @@ -247,6 +269,19 @@ gst_pngenc_chain (GstPad * pad, GstBuffer * buf) GST_DEBUG_OBJECT (pngenc, "BEGINNING"); + if (G_UNLIKELY (pngenc->width <= 0 || pngenc->height <= 0)) { + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } + + if (G_UNLIKELY (GST_BUFFER_SIZE (buf) < pngenc->height * pngenc->stride)) { + gst_buffer_unref (buf); + GST_ELEMENT_ERROR (pngenc, STREAM, FORMAT, (NULL), + ("Provided input buffer is too small, caps problem?")); + ret = GST_FLOW_ERROR; + goto done; + } + /* initialize png struct stuff */ pngenc->png_struct_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, (png_voidp) NULL, user_error_fn, user_warning_fn); @@ -282,25 +317,20 @@ gst_pngenc_chain (GstPad * pad, GstBuffer * buf) PNG_FILTER_NONE | PNG_FILTER_VALUE_NONE); png_set_compression_level (pngenc->png_struct_ptr, pngenc->compression_level); - if (pngenc->bpp == 32) - color_type = PNG_COLOR_TYPE_RGBA; - else if (pngenc->bpp == 8) - color_type = PNG_COLOR_TYPE_GRAY; - else - color_type = PNG_COLOR_TYPE_RGB; - png_set_IHDR (pngenc->png_struct_ptr, pngenc->png_info_ptr, pngenc->width, pngenc->height, 8, - color_type, + pngenc->png_color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); png_set_write_fn (pngenc->png_struct_ptr, pngenc, (png_rw_ptr) user_write_data, user_flush_data); + row_pointers = g_new (png_byte *, pngenc->height); + for (row_index = 0; row_index < pngenc->height; row_index++) { row_pointers[row_index] = GST_BUFFER_DATA (buf) + (row_index * pngenc->stride); @@ -315,6 +345,8 @@ gst_pngenc_chain (GstPad * pad, GstBuffer * buf) png_write_image (pngenc->png_struct_ptr, row_pointers); png_write_end (pngenc->png_struct_ptr, NULL); + g_free (row_pointers); + encoded_buf = gst_buffer_create_sub (pngenc->buffer_out, 0, pngenc->written); png_destroy_info_struct (pngenc->png_struct_ptr, &pngenc->png_info_ptr); diff --git a/ext/libpng/gstpngenc.h b/ext/libpng/gstpngenc.h index 848d15e..792a7c9 100644 --- a/ext/libpng/gstpngenc.h +++ b/ext/libpng/gstpngenc.h @@ -49,9 +49,9 @@ struct _GstPngEnc png_structp png_struct_ptr; png_infop png_info_ptr; + gint png_color_type; gint width; gint height; - gint bpp; gint stride; guint compression_level; diff --git a/ext/pulse/Makefile.am b/ext/pulse/Makefile.am index 9c0d6b7..2438f5e 100644 --- a/ext/pulse/Makefile.am +++ b/ext/pulse/Makefile.am @@ -7,12 +7,14 @@ libgstpulse_la_SOURCES = \ pulsemixertrack.c \ pulseprobe.c \ pulsesink.c \ + pulseaudiosink.c \ pulsesrc.c \ pulseutil.c libgstpulse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(PULSE_CFLAGS) libgstpulse_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ - -lgstinterfaces-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS) + -lgstinterfaces-$(GST_MAJORMINOR) -lgstpbutils-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS) libgstpulse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstpulse_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in index 6b7863f..5bdbb98 100644 --- a/ext/pulse/Makefile.in +++ b/ext/pulse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,11 +117,11 @@ libgstpulse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstpulse_la_OBJECTS = libgstpulse_la-plugin.lo \ libgstpulse_la-pulsemixer.lo libgstpulse_la-pulsemixerctrl.lo \ libgstpulse_la-pulsemixertrack.lo libgstpulse_la-pulseprobe.lo \ - libgstpulse_la-pulsesink.lo libgstpulse_la-pulsesrc.lo \ - libgstpulse_la-pulseutil.lo + libgstpulse_la-pulsesink.lo libgstpulse_la-pulseaudiosink.lo \ + libgstpulse_la-pulsesrc.lo libgstpulse_la-pulseutil.lo libgstpulse_la_OBJECTS = $(am_libgstpulse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstpulse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstpulse_la_SOURCES) DIST_SOURCES = $(libgstpulse_la_SOURCES) @@ -229,7 +234,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -304,7 +312,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -328,6 +335,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -362,18 +370,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -426,6 +426,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -460,7 +461,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -489,12 +489,14 @@ libgstpulse_la_SOURCES = \ pulsemixertrack.c \ pulseprobe.c \ pulsesink.c \ + pulseaudiosink.c \ pulsesrc.c \ pulseutil.c libgstpulse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(PULSE_CFLAGS) libgstpulse_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ - -lgstinterfaces-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS) + -lgstinterfaces-$(GST_MAJORMINOR) -lgstpbutils-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(PULSE_LIBS) libgstpulse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstpulse_la_LIBTOOLFLAGS = --tag=disable-static @@ -572,7 +574,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstpulse.la: $(libgstpulse_la_OBJECTS) $(libgstpulse_la_DEPENDENCIES) +libgstpulse.la: $(libgstpulse_la_OBJECTS) $(libgstpulse_la_DEPENDENCIES) $(EXTRA_libgstpulse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstpulse_la_LINK) -rpath $(plugindir) $(libgstpulse_la_OBJECTS) $(libgstpulse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -582,6 +584,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-plugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulseaudiosink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsemixer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsemixerctrl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsemixertrack.Plo@am__quote@ @@ -593,90 +596,86 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstpulse_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-plugin.Tpo -c -o libgstpulse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-plugin.Tpo $(DEPDIR)/libgstpulse_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstpulse_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstpulse_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libgstpulse_la-pulsemixer.lo: pulsemixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsemixer.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsemixer.Tpo -c -o libgstpulse_la-pulsemixer.lo `test -f 'pulsemixer.c' || echo '$(srcdir)/'`pulsemixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsemixer.Tpo $(DEPDIR)/libgstpulse_la-pulsemixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulsemixer.c' object='libgstpulse_la-pulsemixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsemixer.c' object='libgstpulse_la-pulsemixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixer.lo `test -f 'pulsemixer.c' || echo '$(srcdir)/'`pulsemixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixer.lo `test -f 'pulsemixer.c' || echo '$(srcdir)/'`pulsemixer.c libgstpulse_la-pulsemixerctrl.lo: pulsemixerctrl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsemixerctrl.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsemixerctrl.Tpo -c -o libgstpulse_la-pulsemixerctrl.lo `test -f 'pulsemixerctrl.c' || echo '$(srcdir)/'`pulsemixerctrl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsemixerctrl.Tpo $(DEPDIR)/libgstpulse_la-pulsemixerctrl.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulsemixerctrl.c' object='libgstpulse_la-pulsemixerctrl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsemixerctrl.c' object='libgstpulse_la-pulsemixerctrl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixerctrl.lo `test -f 'pulsemixerctrl.c' || echo '$(srcdir)/'`pulsemixerctrl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixerctrl.lo `test -f 'pulsemixerctrl.c' || echo '$(srcdir)/'`pulsemixerctrl.c libgstpulse_la-pulsemixertrack.lo: pulsemixertrack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsemixertrack.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsemixertrack.Tpo -c -o libgstpulse_la-pulsemixertrack.lo `test -f 'pulsemixertrack.c' || echo '$(srcdir)/'`pulsemixertrack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsemixertrack.Tpo $(DEPDIR)/libgstpulse_la-pulsemixertrack.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulsemixertrack.c' object='libgstpulse_la-pulsemixertrack.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsemixertrack.c' object='libgstpulse_la-pulsemixertrack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixertrack.lo `test -f 'pulsemixertrack.c' || echo '$(srcdir)/'`pulsemixertrack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsemixertrack.lo `test -f 'pulsemixertrack.c' || echo '$(srcdir)/'`pulsemixertrack.c libgstpulse_la-pulseprobe.lo: pulseprobe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulseprobe.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulseprobe.Tpo -c -o libgstpulse_la-pulseprobe.lo `test -f 'pulseprobe.c' || echo '$(srcdir)/'`pulseprobe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulseprobe.Tpo $(DEPDIR)/libgstpulse_la-pulseprobe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulseprobe.c' object='libgstpulse_la-pulseprobe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulseprobe.c' object='libgstpulse_la-pulseprobe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulseprobe.lo `test -f 'pulseprobe.c' || echo '$(srcdir)/'`pulseprobe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulseprobe.lo `test -f 'pulseprobe.c' || echo '$(srcdir)/'`pulseprobe.c libgstpulse_la-pulsesink.lo: pulsesink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsesink.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsesink.Tpo -c -o libgstpulse_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsesink.Tpo $(DEPDIR)/libgstpulse_la-pulsesink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulsesink.c' object='libgstpulse_la-pulsesink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsesink.c' object='libgstpulse_la-pulsesink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsesink.lo `test -f 'pulsesink.c' || echo '$(srcdir)/'`pulsesink.c + +libgstpulse_la-pulseaudiosink.lo: pulseaudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulseaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulseaudiosink.Tpo -c -o libgstpulse_la-pulseaudiosink.lo `test -f 'pulseaudiosink.c' || echo '$(srcdir)/'`pulseaudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulseaudiosink.Tpo $(DEPDIR)/libgstpulse_la-pulseaudiosink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulseaudiosink.c' object='libgstpulse_la-pulseaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulseaudiosink.lo `test -f 'pulseaudiosink.c' || echo '$(srcdir)/'`pulseaudiosink.c libgstpulse_la-pulsesrc.lo: pulsesrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsesrc.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsesrc.Tpo -c -o libgstpulse_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsesrc.Tpo $(DEPDIR)/libgstpulse_la-pulsesrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulsesrc.c' object='libgstpulse_la-pulsesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsesrc.c' object='libgstpulse_la-pulsesrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c libgstpulse_la-pulseutil.lo: pulseutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulseutil.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulseutil.Tpo -c -o libgstpulse_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulseutil.Tpo $(DEPDIR)/libgstpulse_la-pulseutil.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulseutil.c' object='libgstpulse_la-pulseutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulseutil.c' object='libgstpulse_la-pulseutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c mostlyclean-libtool: -rm -f *.lo @@ -783,10 +782,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/pulse/plugin.c b/ext/pulse/plugin.c index beb8848..04c014f 100644 --- a/ext/pulse/plugin.c +++ b/ext/pulse/plugin.c @@ -41,14 +41,20 @@ plugin_init (GstPlugin * plugin) bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); #endif - if (!gst_element_register (plugin, "pulsesink", GST_RANK_PRIMARY, + if (!gst_element_register (plugin, "pulsesink", GST_RANK_PRIMARY + 10, GST_TYPE_PULSESINK)) return FALSE; - if (!gst_element_register (plugin, "pulsesrc", GST_RANK_PRIMARY, + if (!gst_element_register (plugin, "pulsesrc", GST_RANK_PRIMARY + 10, GST_TYPE_PULSESRC)) return FALSE; +#ifdef HAVE_PULSE_1_0 + if (!gst_element_register (plugin, "pulseaudiosink", GST_RANK_MARGINAL - 1, + GST_TYPE_PULSE_AUDIO_SINK)) + return FALSE; +#endif + if (!gst_element_register (plugin, "pulsemixer", GST_RANK_NONE, GST_TYPE_PULSEMIXER)) return FALSE; diff --git a/ext/pulse/pulseaudiosink.c b/ext/pulse/pulseaudiosink.c new file mode 100644 index 0000000..cd9f7d9 --- /dev/null +++ b/ext/pulse/pulseaudiosink.c @@ -0,0 +1,938 @@ +/*-*- Mode: C; c-basic-offset: 2 -*-*/ + +/* GStreamer pulseaudio plugin + * + * Copyright (c) 2011 Intel Corporation + * 2011 Collabora + * 2011 Arun Raghavan + * 2011 Sebastian Dröge + * + * gst-pulse 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. + * + * gst-pulse 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 gst-pulse; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + */ + +/** + * SECTION:element-pulseaudiosink + * @see_also: pulsesink, pulsesrc, pulsemixer + * + * This element outputs audio to a + * PulseAudio sound server via + * the @pulsesink element. It transparently takes care of passing compressed + * format as-is if the sink supports it, decoding if necessary, and changes + * to supported formats at runtime. + * + * + * Example pipelines + * |[ + * gst-launch -v filesrc location=sine.ogg ! oggdemux ! vorbisdec ! pulseaudiosink + * ]| Decode and play an Ogg/Vorbis file. + * |[ + * gst-launch -v filesrc location=test.mp3 ! mp3parse ! pulseaudiosink stream-properties="props,media.title=test" + * ]| Play an MP3 file on a sink that supports decoding directly, plug in a + * decoder if/when required. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_PULSE_1_0 + +#include +#include +#include + +#include +#include "pulsesink.h" + +GST_DEBUG_CATEGORY (pulseaudiosink_debug); +#define GST_CAT_DEFAULT (pulseaudiosink_debug) + +#define GST_PULSE_AUDIO_SINK_LOCK(obj) G_STMT_START { \ + GST_LOG_OBJECT (obj, \ + "locking from thread %p", \ + g_thread_self ()); \ + g_mutex_lock (GST_PULSE_AUDIO_SINK_CAST(obj)->lock); \ + GST_LOG_OBJECT (obj, \ + "locked from thread %p", \ + g_thread_self ()); \ +} G_STMT_END + +#define GST_PULSE_AUDIO_SINK_UNLOCK(obj) G_STMT_START { \ + GST_LOG_OBJECT (obj, \ + "unlocking from thread %p", \ + g_thread_self ()); \ + g_mutex_unlock (GST_PULSE_AUDIO_SINK_CAST(obj)->lock); \ +} G_STMT_END + +typedef struct +{ + GstBin parent; + GMutex *lock; + + GstPad *sinkpad; + GstPad *sink_proxypad; + GstPadEventFunction sinkpad_old_eventfunc; + GstPadEventFunction proxypad_old_eventfunc; + + GstPulseSink *psink; + GstElement *dbin2; + + GstSegment segment; + + guint event_probe_id; + gulong pad_added_id; + + gboolean format_lost; +} GstPulseAudioSink; + +typedef struct +{ + GstBinClass parent_class; + guint n_prop_own; + guint n_prop_total; +} GstPulseAudioSinkClass; + +static void gst_pulse_audio_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_pulse_audio_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_pulse_audio_sink_dispose (GObject * object); +static gboolean gst_pulse_audio_sink_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_pulse_audio_sink_sink_event (GstPad * pad, + GstEvent * event); +static gboolean gst_pulse_audio_sink_sink_acceptcaps (GstPad * pad, + GstCaps * caps); +static gboolean gst_pulse_audio_sink_sink_setcaps (GstPad * pad, + GstCaps * caps); +static GstStateChangeReturn +gst_pulse_audio_sink_change_state (GstElement * element, + GstStateChange transition); + +static void +gst_pulse_audio_sink_do_init (GType type) +{ + GST_DEBUG_CATEGORY_INIT (pulseaudiosink_debug, "pulseaudiosink", 0, + "Bin that wraps pulsesink for handling compressed formats"); +} + +GST_BOILERPLATE_FULL (GstPulseAudioSink, gst_pulse_audio_sink, GstBin, + GST_TYPE_BIN, gst_pulse_audio_sink_do_init); + +static GstStaticPadTemplate sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS (PULSE_SINK_TEMPLATE_CAPS)); + +static void +gst_pulse_audio_sink_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, &sink_template); + + gst_element_class_set_details_simple (element_class, + "Bin wrapping pulsesink", "Sink/Audio/Bin", + "Correctly handles sink changes when streaming compressed formats to " + "pulsesink", "Arun Raghavan "); +} + +static GParamSpec * +param_spec_copy (GParamSpec * spec) +{ + const char *name, *nick, *blurb; + GParamFlags flags; + + name = g_param_spec_get_name (spec); + nick = g_param_spec_get_nick (spec); + blurb = g_param_spec_get_blurb (spec); + flags = spec->flags; + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_BOOLEAN) { + return g_param_spec_boolean (name, nick, blurb, + G_PARAM_SPEC_BOOLEAN (spec)->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_BOXED) { + return g_param_spec_boxed (name, nick, blurb, spec->value_type, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_CHAR) { + GParamSpecChar *cspec = G_PARAM_SPEC_CHAR (spec); + return g_param_spec_char (name, nick, blurb, cspec->minimum, + cspec->maximum, cspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_DOUBLE) { + GParamSpecDouble *dspec = G_PARAM_SPEC_DOUBLE (spec); + return g_param_spec_double (name, nick, blurb, dspec->minimum, + dspec->maximum, dspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_ENUM) { + return g_param_spec_enum (name, nick, blurb, spec->value_type, + G_PARAM_SPEC_ENUM (spec)->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_FLAGS) { + return g_param_spec_flags (name, nick, blurb, spec->value_type, + G_PARAM_SPEC_ENUM (spec)->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_FLOAT) { + GParamSpecFloat *fspec = G_PARAM_SPEC_FLOAT (spec); + return g_param_spec_double (name, nick, blurb, fspec->minimum, + fspec->maximum, fspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_GTYPE) { + return g_param_spec_gtype (name, nick, blurb, + G_PARAM_SPEC_GTYPE (spec)->is_a_type, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_INT) { + GParamSpecInt *ispec = G_PARAM_SPEC_INT (spec); + return g_param_spec_int (name, nick, blurb, ispec->minimum, + ispec->maximum, ispec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_INT64) { + GParamSpecInt64 *ispec = G_PARAM_SPEC_INT64 (spec); + return g_param_spec_int64 (name, nick, blurb, ispec->minimum, + ispec->maximum, ispec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_LONG) { + GParamSpecLong *lspec = G_PARAM_SPEC_LONG (spec); + return g_param_spec_long (name, nick, blurb, lspec->minimum, + lspec->maximum, lspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_OBJECT) { + return g_param_spec_object (name, nick, blurb, spec->value_type, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_PARAM) { + return g_param_spec_param (name, nick, blurb, spec->value_type, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_POINTER) { + return g_param_spec_pointer (name, nick, blurb, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_STRING) { + return g_param_spec_string (name, nick, blurb, + G_PARAM_SPEC_STRING (spec)->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_UCHAR) { + GParamSpecUChar *cspec = G_PARAM_SPEC_UCHAR (spec); + return g_param_spec_uchar (name, nick, blurb, cspec->minimum, + cspec->maximum, cspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_UINT) { + GParamSpecUInt *ispec = G_PARAM_SPEC_UINT (spec); + return g_param_spec_uint (name, nick, blurb, ispec->minimum, + ispec->maximum, ispec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_UINT64) { + GParamSpecUInt64 *ispec = G_PARAM_SPEC_UINT64 (spec); + return g_param_spec_uint64 (name, nick, blurb, ispec->minimum, + ispec->maximum, ispec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_ULONG) { + GParamSpecULong *lspec = G_PARAM_SPEC_ULONG (spec); + return g_param_spec_ulong (name, nick, blurb, lspec->minimum, + lspec->maximum, lspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_UNICHAR) { + return g_param_spec_unichar (name, nick, blurb, + G_PARAM_SPEC_UNICHAR (spec)->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == G_TYPE_PARAM_VARIANT) { + GParamSpecVariant *vspec = G_PARAM_SPEC_VARIANT (spec); + return g_param_spec_variant (name, nick, blurb, vspec->type, + vspec->default_value, flags); + } + + if (G_PARAM_SPEC_TYPE (spec) == GST_TYPE_PARAM_MINI_OBJECT) { + return gst_param_spec_mini_object (name, nick, blurb, spec->value_type, + flags); + } + + g_warning ("Unknown param type %ld for '%s'", + (long) G_PARAM_SPEC_TYPE (spec), name); + g_assert_not_reached (); +} + +static void +gst_pulse_audio_sink_class_init (GstPulseAudioSinkClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstElementClass *element_class = (GstElementClass *) klass; + GstPulseSinkClass *psink_class = + GST_PULSESINK_CLASS (g_type_class_ref (GST_TYPE_PULSESINK)); + GParamSpec **specs; + guint n, i, j; + + gobject_class->get_property = gst_pulse_audio_sink_get_property; + gobject_class->set_property = gst_pulse_audio_sink_set_property; + gobject_class->dispose = gst_pulse_audio_sink_dispose; + element_class->change_state = + GST_DEBUG_FUNCPTR (gst_pulse_audio_sink_change_state); + + /* Find out how many properties we already have */ + specs = g_object_class_list_properties (gobject_class, &klass->n_prop_own); + g_free (specs); + + /* Proxy pulsesink's properties */ + specs = g_object_class_list_properties (G_OBJECT_CLASS (psink_class), &n); + for (i = 0, j = klass->n_prop_own; i < n; i++) { + if (g_object_class_find_property (gobject_class, + g_param_spec_get_name (specs[i]))) { + /* We already inherited this property from a parent, skip */ + j--; + } else { + g_object_class_install_property (gobject_class, i + j + 1, + param_spec_copy (specs[i])); + } + } + + klass->n_prop_total = i + j; + + g_free (specs); + g_type_class_unref (psink_class); +} + +static GstPad * +get_proxypad (GstPad * sinkpad) +{ + GstIterator *iter = NULL; + GstPad *proxypad = NULL; + + iter = gst_pad_iterate_internal_links (sinkpad); + if (iter) { + if (gst_iterator_next (iter, (gpointer) & proxypad) != GST_ITERATOR_OK) + proxypad = NULL; + gst_iterator_free (iter); + } + + return proxypad; +} + +static void +post_missing_element_message (GstPulseAudioSink * pbin, const gchar * name) +{ + GstMessage *msg; + + msg = gst_missing_element_message_new (GST_ELEMENT_CAST (pbin), name); + gst_element_post_message (GST_ELEMENT_CAST (pbin), msg); +} + +static void +notify_cb (GObject * selector, GParamSpec * pspec, GstPulseAudioSink * pbin) +{ + g_object_notify (G_OBJECT (pbin), g_param_spec_get_name (pspec)); +} + +static void +gst_pulse_audio_sink_init (GstPulseAudioSink * pbin, + GstPulseAudioSinkClass * klass) +{ + GstPadTemplate *template; + GstPad *pad = NULL; + GParamSpec **specs; + GString *prop; + guint i; + + pbin->lock = g_mutex_new (); + + gst_segment_init (&pbin->segment, GST_FORMAT_UNDEFINED); + + pbin->psink = GST_PULSESINK (gst_element_factory_make ("pulsesink", + "pulseaudiosink-sink")); + g_assert (pbin->psink != NULL); + + if (!gst_bin_add (GST_BIN (pbin), GST_ELEMENT (pbin->psink))) { + GST_ERROR_OBJECT (pbin, "Failed to add pulsesink to bin"); + goto error; + } + + pad = gst_element_get_static_pad (GST_ELEMENT (pbin->psink), "sink"); + template = gst_static_pad_template_get (&sink_template); + pbin->sinkpad = gst_ghost_pad_new_from_template ("sink", pad, template); + gst_object_unref (template); + + pbin->sinkpad_old_eventfunc = GST_PAD_EVENTFUNC (pbin->sinkpad); + gst_pad_set_event_function (pbin->sinkpad, + GST_DEBUG_FUNCPTR (gst_pulse_audio_sink_sink_event)); + gst_pad_set_setcaps_function (pbin->sinkpad, + GST_DEBUG_FUNCPTR (gst_pulse_audio_sink_sink_setcaps)); + gst_pad_set_acceptcaps_function (pbin->sinkpad, + GST_DEBUG_FUNCPTR (gst_pulse_audio_sink_sink_acceptcaps)); + + gst_element_add_pad (GST_ELEMENT (pbin), pbin->sinkpad); + + if (!(pbin->sink_proxypad = get_proxypad (pbin->sinkpad))) + GST_ERROR_OBJECT (pbin, "Failed to get proxypad of srcpad"); + else { + pbin->proxypad_old_eventfunc = GST_PAD_EVENTFUNC (pbin->sink_proxypad); + gst_pad_set_event_function (pbin->sink_proxypad, + GST_DEBUG_FUNCPTR (gst_pulse_audio_sink_src_event)); + } + + /* Now proxy all the notify::* signals */ + specs = g_object_class_list_properties (G_OBJECT_CLASS (klass), &i); + prop = g_string_sized_new (30); + + for (i--; i >= klass->n_prop_own; i--) { + g_string_printf (prop, "notify::%s", g_param_spec_get_name (specs[i])); + g_signal_connect (pbin->psink, prop->str, G_CALLBACK (notify_cb), pbin); + } + + g_string_free (prop, TRUE); + g_free (specs); + + pbin->format_lost = FALSE; + +out: + if (pad) + gst_object_unref (pad); + + return; + +error: + if (pbin->psink) + gst_object_unref (pbin->psink); + goto out; +} + +static void +gst_pulse_audio_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (object); + GstPulseAudioSinkClass *klass = + GST_PULSE_AUDIO_SINK_CLASS (G_OBJECT_GET_CLASS (object)); + + g_return_if_fail (prop_id <= klass->n_prop_total); + + g_object_set_property (G_OBJECT (pbin->psink), g_param_spec_get_name (pspec), + value); +} + +static void +gst_pulse_audio_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (object); + GstPulseAudioSinkClass *klass = + GST_PULSE_AUDIO_SINK_CLASS (G_OBJECT_GET_CLASS (object)); + + g_return_if_fail (prop_id <= klass->n_prop_total); + + g_object_get_property (G_OBJECT (pbin->psink), g_param_spec_get_name (pspec), + value); +} + +static void +gst_pulse_audio_sink_free_dbin2 (GstPulseAudioSink * pbin) +{ + g_signal_handler_disconnect (pbin->dbin2, pbin->pad_added_id); + gst_element_set_state (pbin->dbin2, GST_STATE_NULL); + + gst_bin_remove (GST_BIN (pbin), pbin->dbin2); + + pbin->dbin2 = NULL; +} + +static void +gst_pulse_audio_sink_dispose (GObject * object) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (object); + + if (pbin->lock) { + g_mutex_free (pbin->lock); + pbin->lock = NULL; + } + + if (pbin->sink_proxypad) { + gst_object_unref (pbin->sink_proxypad); + pbin->sink_proxypad = NULL; + } + + if (pbin->dbin2) { + g_signal_handler_disconnect (pbin->dbin2, pbin->pad_added_id); + pbin->dbin2 = NULL; + } + + pbin->sinkpad = NULL; + pbin->psink = NULL; + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static gboolean +gst_pulse_audio_sink_update_sinkpad (GstPulseAudioSink * pbin, GstPad * sinkpad) +{ + gboolean ret; + + ret = gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (pbin->sinkpad), sinkpad); + + if (!ret) + GST_WARNING_OBJECT (pbin, "Could not update ghostpad target"); + + return ret; +} + +static void +distribute_running_time (GstElement * element, const GstSegment * segment) +{ + GstEvent *event; + GstPad *pad; + + pad = gst_element_get_static_pad (element, "sink"); + + /* FIXME: Some decoders collect newsegments and send them out at once, making + * them lose accumulator events (and thus making dbin2_event_probe() hard to + * do right if we're sending these as well. We can get away with not sending + * these at the moment, but this should be fixed! */ +#if 0 + if (segment->accum) { + event = gst_event_new_new_segment_full (FALSE, segment->rate, + segment->applied_rate, segment->format, 0, segment->accum, 0); + gst_pad_send_event (pad, event); + } +#endif + + event = gst_event_new_new_segment_full (FALSE, segment->rate, + segment->applied_rate, segment->format, + segment->start, segment->stop, segment->time); + gst_pad_send_event (pad, event); + + gst_object_unref (pad); +} + +static gboolean +dbin2_event_probe (GstPad * pad, GstMiniObject * obj, gpointer data) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (data); + GstEvent *event = GST_EVENT (obj); + + if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) { + GST_DEBUG_OBJECT (pbin, "Got newsegment - dropping"); + gst_pad_remove_event_probe (pad, pbin->event_probe_id); + return FALSE; + } + + return TRUE; +} + +static void +pad_added_cb (GstElement * dbin2, GstPad * pad, gpointer * data) +{ + GstPulseAudioSink *pbin; + GstPad *sinkpad = NULL; + + pbin = GST_PULSE_AUDIO_SINK (data); + sinkpad = gst_element_get_static_pad (GST_ELEMENT (pbin->psink), "sink"); + + GST_PULSE_AUDIO_SINK_LOCK (pbin); + if (gst_pad_link (pad, sinkpad) != GST_PAD_LINK_OK) + GST_ERROR_OBJECT (pbin, "Failed to link decodebin2 to pulsesink"); + else + GST_DEBUG_OBJECT (pbin, "Linked new pad to pulsesink"); + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + + gst_object_unref (sinkpad); +} + +/* Called with pbin lock held */ +static void +gst_pulse_audio_sink_add_dbin2 (GstPulseAudioSink * pbin) +{ + GstPad *sinkpad = NULL; + + g_assert (pbin->dbin2 == NULL); + + pbin->dbin2 = gst_element_factory_make ("decodebin2", "pulseaudiosink-dbin2"); + + if (!pbin->dbin2) { + post_missing_element_message (pbin, "decodebin2"); + GST_ELEMENT_WARNING (pbin, CORE, MISSING_PLUGIN, + (_("Missing element '%s' - check your GStreamer installation."), + "decodebin2"), ("audio playback might fail")); + goto out; + } + + if (!gst_bin_add (GST_BIN (pbin), pbin->dbin2)) { + GST_ERROR_OBJECT (pbin, "Failed to add decodebin2 to bin"); + goto out; + } + + pbin->pad_added_id = g_signal_connect (pbin->dbin2, "pad-added", + G_CALLBACK (pad_added_cb), pbin); + + if (!gst_element_sync_state_with_parent (pbin->dbin2)) { + GST_ERROR_OBJECT (pbin, "Failed to set decodebin2 to parent state"); + goto out; + } + + /* Trap the newsegment events that we feed the decodebin and discard them */ + sinkpad = gst_element_get_static_pad (GST_ELEMENT (pbin->psink), "sink"); + pbin->event_probe_id = gst_pad_add_event_probe_full (sinkpad, + G_CALLBACK (dbin2_event_probe), gst_object_ref (pbin), + (GDestroyNotify) gst_object_unref); + gst_object_unref (sinkpad); + sinkpad = NULL; + + GST_DEBUG_OBJECT (pbin, "Distributing running time to decodebin"); + distribute_running_time (pbin->dbin2, &pbin->segment); + + sinkpad = gst_element_get_static_pad (pbin->dbin2, "sink"); + + gst_pulse_audio_sink_update_sinkpad (pbin, sinkpad); + +out: + if (sinkpad) + gst_object_unref (sinkpad); +} + +static void +update_eac3_alignment (GstPulseAudioSink * pbin) +{ + GstCaps *caps = gst_pad_peer_get_caps_reffed (pbin->sinkpad); + GstStructure *st; + + if (!caps) + return; + + st = gst_caps_get_structure (caps, 0); + + if (g_str_equal (gst_structure_get_name (st), "audio/x-eac3")) { + GstStructure *event_st = gst_structure_new ("ac3parse-set-alignment", + "alignment", G_TYPE_STRING, pbin->dbin2 ? "frame" : "iec61937", NULL); + + if (!gst_pad_push_event (pbin->sinkpad, + gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, event_st))) + GST_WARNING_OBJECT (pbin->sinkpad, "Could not update alignment"); + } + + gst_caps_unref (caps); +} + +static void +proxypad_blocked_cb (GstPad * pad, gboolean blocked, gpointer data) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (data); + GstCaps *caps; + GstPad *sinkpad = NULL; + + if (!blocked) { + /* Unblocked, don't need to do anything */ + GST_DEBUG_OBJECT (pbin, "unblocked"); + return; + } + + GST_DEBUG_OBJECT (pbin, "blocked"); + + GST_PULSE_AUDIO_SINK_LOCK (pbin); + + if (!pbin->format_lost) { + sinkpad = gst_element_get_static_pad (GST_ELEMENT (pbin->psink), "sink"); + + if (GST_PAD_CAPS (pbin->sinkpad)) { + /* See if we already got caps on our sinkpad */ + caps = gst_caps_ref (GST_PAD_CAPS (pbin->sinkpad)); + } else { + /* We haven't, so get caps from upstream */ + caps = gst_pad_get_caps_reffed (pad); + } + + if (gst_pad_accept_caps (sinkpad, caps)) { + if (pbin->dbin2) { + GST_DEBUG_OBJECT (pbin, "Removing decodebin"); + gst_pulse_audio_sink_free_dbin2 (pbin); + gst_pulse_audio_sink_update_sinkpad (pbin, sinkpad); + } else + GST_DEBUG_OBJECT (pbin, "Doing nothing"); + + gst_caps_unref (caps); + gst_object_unref (sinkpad); + goto done; + } + /* pulsesink doesn't accept the incoming caps, so add a decodebin + * (potentially after removing the existing once, since decodebin2 can't + * renegotiate). */ + } else { + /* Format lost, proceed to try plugging a decodebin */ + pbin->format_lost = FALSE; + } + + if (pbin->dbin2 != NULL) { + /* decodebin2 doesn't support reconfiguration, so throw this one away and + * create a new one. */ + gst_pulse_audio_sink_free_dbin2 (pbin); + } + + GST_DEBUG_OBJECT (pbin, "Adding decodebin"); + gst_pulse_audio_sink_add_dbin2 (pbin); + +done: + update_eac3_alignment (pbin); + + gst_pad_set_blocked_async_full (pad, FALSE, proxypad_blocked_cb, + gst_object_ref (pbin), (GDestroyNotify) gst_object_unref); + + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); +} + +static gboolean +gst_pulse_audio_sink_src_event (GstPad * pad, GstEvent * event) +{ + GstPulseAudioSink *pbin = NULL; + GstPad *ghostpad = NULL; + gboolean ret = FALSE; + + ghostpad = GST_PAD_CAST (gst_pad_get_parent (pad)); + if (G_UNLIKELY (!ghostpad)) { + GST_WARNING_OBJECT (pad, "Could not get ghostpad"); + goto out; + } + + pbin = GST_PULSE_AUDIO_SINK (gst_pad_get_parent (ghostpad)); + if (G_UNLIKELY (!pbin)) { + GST_WARNING_OBJECT (pad, "Could not get pulseaudiosink"); + goto out; + } + + if (G_UNLIKELY (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) && + (gst_event_has_name (event, "pulse-format-lost") || + gst_event_has_name (event, "pulse-sink-changed"))) { + g_return_val_if_fail (pad->mode != GST_ACTIVATE_PULL, FALSE); + + GST_PULSE_AUDIO_SINK_LOCK (pbin); + if (gst_event_has_name (event, "pulse-format-lost")) + pbin->format_lost = TRUE; + + if (!gst_pad_is_blocked (pad)) + gst_pad_set_blocked_async_full (pad, TRUE, proxypad_blocked_cb, + gst_object_ref (pbin), (GDestroyNotify) gst_object_unref); + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + + ret = TRUE; + } else if (pbin->proxypad_old_eventfunc) { + ret = pbin->proxypad_old_eventfunc (pad, event); + event = NULL; + } + +out: + if (ghostpad) + gst_object_unref (ghostpad); + if (pbin) + gst_object_unref (pbin); + if (event) + gst_event_unref (event); + + return ret; +} + +static gboolean +gst_pulse_audio_sink_sink_event (GstPad * pad, GstEvent * event) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (gst_pad_get_parent (pad)); + gboolean ret; + + ret = pbin->sinkpad_old_eventfunc (pad, gst_event_ref (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time; + gboolean update; + + GST_PULSE_AUDIO_SINK_LOCK (pbin); + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + + GST_DEBUG_OBJECT (pbin, + "newsegment: update %d, rate %g, arate %g, start %" GST_TIME_FORMAT + ", stop %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, + update, rate, arate, GST_TIME_ARGS (start), GST_TIME_ARGS (stop), + GST_TIME_ARGS (time)); + + if (format == GST_FORMAT_TIME) { + /* Store the values for feeding to sub-elements */ + gst_segment_set_newsegment_full (&pbin->segment, update, + rate, arate, format, start, stop, time); + } else { + GST_WARNING_OBJECT (pbin, "Got a non-TIME format segment"); + gst_segment_init (&pbin->segment, GST_FORMAT_TIME); + } + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + + break; + } + + case GST_EVENT_FLUSH_STOP: + GST_PULSE_AUDIO_SINK_LOCK (pbin); + gst_segment_init (&pbin->segment, GST_FORMAT_UNDEFINED); + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + break; + + default: + break; + } + + gst_object_unref (pbin); + gst_event_unref (event); + + return ret; +} + +/* The bin's acceptcaps should be exactly equivalent to a pulsesink that is + * connected to a sink that supports all the formats in template caps. This + * means that upstream will have to have everything possibly upto a parser + * plugged and we plugin a decoder whenever required. */ +static gboolean +gst_pulse_audio_sink_sink_acceptcaps (GstPad * pad, GstCaps * caps) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (gst_pad_get_parent (pad)); + GstRingBufferSpec spec = { 0 }; + const GstStructure *st; + GstCaps *pad_caps = NULL; + gboolean ret = FALSE; + + pad_caps = gst_pad_get_caps_reffed (pad); + if (!pad_caps || !gst_caps_can_intersect (pad_caps, caps)) + goto out; + + /* If we've not got fixed caps, creating a stream might fail, so let's just + * return from here with default acceptcaps behaviour */ + if (!gst_caps_is_fixed (caps)) + goto out; + + spec.latency_time = GST_BASE_AUDIO_SINK (pbin->psink)->latency_time; + if (!gst_ring_buffer_parse_caps (&spec, caps)) + goto out; + + /* Make sure non-raw input is framed (one frame per buffer) and can be + * payloaded */ + st = gst_caps_get_structure (caps, 0); + + if (!g_str_has_prefix (gst_structure_get_name (st), "audio/x-raw")) { + gboolean framed = FALSE, parsed = FALSE; + + gst_structure_get_boolean (st, "framed", &framed); + gst_structure_get_boolean (st, "parsed", &parsed); + if ((!framed && !parsed) || gst_audio_iec61937_frame_size (&spec) <= 0) + goto out; + } + + ret = TRUE; + +out: + if (pad_caps) + gst_caps_unref (pad_caps); + + gst_object_unref (pbin); + + return ret; +} + +static gboolean +gst_pulse_audio_sink_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (gst_pad_get_parent (pad)); + gboolean ret = TRUE; + + GST_PULSE_AUDIO_SINK_LOCK (pbin); + + if (!gst_pad_is_blocked (pbin->sinkpad)) + gst_pad_set_blocked_async_full (pbin->sink_proxypad, TRUE, + proxypad_blocked_cb, gst_object_ref (pbin), + (GDestroyNotify) gst_object_unref); + + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + + gst_object_unref (pbin); + + return ret; +} + +static GstStateChangeReturn +gst_pulse_audio_sink_change_state (GstElement * element, + GstStateChange transition) +{ + GstPulseAudioSink *pbin = GST_PULSE_AUDIO_SINK (element); + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + + /* Nothing to do for upward transitions */ + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_PULSE_AUDIO_SINK_LOCK (pbin); + if (gst_pad_is_blocked (pbin->sinkpad)) { + gst_pad_set_blocked_async_full (pbin->sink_proxypad, FALSE, + proxypad_blocked_cb, gst_object_ref (pbin), + (GDestroyNotify) gst_object_unref); + } + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + break; + + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) { + GST_DEBUG_OBJECT (pbin, "Base class returned %d on state change", ret); + goto out; + } + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_PULSE_AUDIO_SINK_LOCK (pbin); + gst_segment_init (&pbin->segment, GST_FORMAT_UNDEFINED); + + if (pbin->dbin2) { + GstPad *pad = gst_element_get_static_pad (GST_ELEMENT (pbin->psink), + "sink"); + + gst_pulse_audio_sink_free_dbin2 (pbin); + gst_pulse_audio_sink_update_sinkpad (pbin, pad); + + gst_object_unref (pad); + + } + GST_PULSE_AUDIO_SINK_UNLOCK (pbin); + + break; + + default: + break; + } + +out: + return ret; +} + +#endif /* HAVE_PULSE_1_0 */ diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index e4fe6e3..11e9c89 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -54,20 +54,18 @@ #include #include #include +#include #include /* only used for GST_PLUGINS_BASE_VERSION_* */ +#include + #include "pulsesink.h" #include "pulseutil.h" GST_DEBUG_CATEGORY_EXTERN (pulse_debug); #define GST_CAT_DEFAULT pulse_debug -/* according to - * http://www.pulseaudio.org/ticket/314 - * we need pulse-0.9.12 to use sink volume properties - */ - #define DEFAULT_SERVER NULL #define DEFAULT_DEVICE NULL #define DEFAULT_DEVICE_NAME NULL @@ -143,15 +141,19 @@ struct _GstPulseRingBuffer pa_context *context; pa_stream *stream; +#ifdef HAVE_PULSE_1_0 + pa_format_info *format; + guint channels; + gboolean is_pcm; +#else pa_sample_spec sample_spec; +#endif -#ifdef HAVE_PULSE_0_9_16 void *m_data; size_t m_towrite; size_t m_writable; gint64 m_offset; gint64 m_lastoffset; -#endif gboolean corked:1; gboolean in_commit:1; @@ -229,21 +231,19 @@ gst_pulseringbuffer_init (GstPulseRingBuffer * pbuf) pbuf->context = NULL; pbuf->stream = NULL; -#ifdef HAVE_PULSE_0_9_13 - pa_sample_spec_init (&pbuf->sample_spec); +#ifdef HAVE_PULSE_1_0 + pbuf->format = NULL; + pbuf->channels = 0; + pbuf->is_pcm = FALSE; #else - pbuf->sample_spec.format = PA_SAMPLE_INVALID; - pbuf->sample_spec.rate = 0; - pbuf->sample_spec.channels = 0; + pa_sample_spec_init (&pbuf->sample_spec); #endif -#ifdef HAVE_PULSE_0_9_16 pbuf->m_data = NULL; pbuf->m_towrite = 0; pbuf->m_writable = 0; pbuf->m_offset = 0; pbuf->m_lastoffset = 0; -#endif pbuf->corked = TRUE; pbuf->in_commit = FALSE; @@ -255,7 +255,6 @@ gst_pulsering_destroy_stream (GstPulseRingBuffer * pbuf) { if (pbuf->stream) { -#ifdef HAVE_PULSE_0_9_16 if (pbuf->m_data) { /* drop shm memory buffer */ pa_stream_cancel_write (pbuf->stream); @@ -267,6 +266,13 @@ gst_pulsering_destroy_stream (GstPulseRingBuffer * pbuf) pbuf->m_offset = 0; pbuf->m_lastoffset = 0; } +#ifdef HAVE_PULSE_1_0 + if (pbuf->format) { + pa_format_info_free (pbuf->format); + pbuf->format = NULL; + pbuf->channels = 0; + pbuf->is_pcm = FALSE; + } #endif pa_stream_disconnect (pbuf->stream); @@ -318,9 +324,7 @@ gst_pulsering_destroy_context (GstPulseRingBuffer * pbuf) /* Make sure we don't get any further callbacks */ pa_context_set_state_callback (pctx->context, NULL, NULL); -#ifdef HAVE_PULSE_0_9_12 pa_context_set_subscribe_callback (pctx->context, NULL, NULL); -#endif g_hash_table_remove (gst_pulse_shared_contexts, pbuf->context_name); @@ -397,7 +401,6 @@ gst_pulsering_context_state_cb (pa_context * c, void *userdata) } } -#ifdef HAVE_PULSE_0_9_12 static void gst_pulsering_context_subscribe_cb (pa_context * c, pa_subscription_event_type_t t, uint32_t idx, void *userdata) @@ -422,6 +425,27 @@ gst_pulsering_context_subscribe_cb (pa_context * c, if (idx != pa_stream_get_index (pbuf->stream)) continue; +#ifdef HAVE_PULSE_1_0 + if (psink->device && pbuf->is_pcm && + !g_str_equal (psink->device, + pa_stream_get_device_name (pbuf->stream))) { + /* Underlying sink changed. And this is not a passthrough stream. Let's + * see if someone upstream wants to try to renegotiate. */ + GstEvent *renego; + + g_free (psink->device); + psink->device = g_strdup (pa_stream_get_device_name (pbuf->stream)); + + GST_INFO_OBJECT (psink, "emitting sink-changed"); + + renego = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("pulse-sink-changed", NULL)); + + if (!gst_pad_push_event (GST_BASE_SINK (psink)->sinkpad, renego)) + GST_DEBUG_OBJECT (psink, "Emitted sink-changed - nobody was listening"); + } +#endif + /* Actually this event is also triggered when other properties of * the stream change that are unrelated to the volume. However it is * probably cheaper to signal the change here and check for the @@ -431,7 +455,6 @@ gst_pulsering_context_subscribe_cb (pa_context * c, g_atomic_int_compare_and_exchange (&psink->notify, 0, 1); } } -#endif /* will be called when the device should be opened. In this case we will connect * to the server. We should not try to open any streams in this state. */ @@ -478,10 +501,8 @@ gst_pulseringbuffer_open_device (GstRingBuffer * buf) /* register some essential callbacks */ pa_context_set_state_callback (pctx->context, gst_pulsering_context_state_cb, mainloop); -#ifdef HAVE_PULSE_0_9_12 pa_context_set_subscribe_callback (pctx->context, gst_pulsering_context_subscribe_cb, pctx); -#endif /* try to connect to the server and wait for completion, we don't want to * autospawn a deamon */ @@ -659,11 +680,7 @@ gst_pulsering_stream_latency_cb (pa_stream * s, void *userdata) GST_LOG_OBJECT (psink, "latency update (information unknown)"); return; } -#ifdef HAVE_PULSE_0_9_11 sink_usec = info->configured_sink_usec; -#else - sink_usec = 0; -#endif GST_LOG_OBJECT (psink, "latency_update, %" G_GUINT64_FORMAT ", %d:%" G_GINT64_FORMAT ", %d:%" @@ -688,7 +705,6 @@ gst_pulsering_stream_suspended_cb (pa_stream * p, void *userdata) GST_DEBUG_OBJECT (psink, "stream resumed"); } -#ifdef HAVE_PULSE_0_9_11 static void gst_pulsering_stream_started_cb (pa_stream * p, void *userdata) { @@ -700,9 +716,7 @@ gst_pulsering_stream_started_cb (pa_stream * p, void *userdata) GST_DEBUG_OBJECT (psink, "stream started"); } -#endif -#ifdef HAVE_PULSE_0_9_15 static void gst_pulsering_stream_event_cb (pa_stream * p, const char *name, pa_proplist * pl, void *userdata) @@ -725,11 +739,59 @@ gst_pulsering_stream_event_cb (pa_stream * p, const char *name, gst_element_post_message (GST_ELEMENT_CAST (psink), gst_message_new_request_state (GST_OBJECT_CAST (psink), GST_STATE_PLAYING)); +#ifdef HAVE_PULSE_1_0 + } else if (!strcmp (name, PA_STREAM_EVENT_FORMAT_LOST)) { + GstEvent *renego; + + if (g_atomic_int_get (&psink->format_lost)) { + /* Duplicate event before we're done reconfiguring, discard */ + return; + } + + GST_DEBUG_OBJECT (psink, "got FORMAT LOST"); + g_atomic_int_set (&psink->format_lost, 1); + psink->format_lost_time = g_ascii_strtoull (pa_proplist_gets (pl, + "stream-time"), NULL, 0) * 1000; + + g_free (psink->device); + psink->device = g_strdup (pa_proplist_gets (pl, "device")); + + renego = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("pulse-format-lost", NULL)); + + if (!gst_pad_push_event (GST_BASE_SINK (psink)->sinkpad, renego)) { + /* Nobody handled the format change - emit an error */ + GST_ELEMENT_ERROR (psink, STREAM, FORMAT, ("Sink format changed"), + ("Sink format changed")); + } +#endif } else { GST_DEBUG_OBJECT (psink, "got unknown event %s", name); } } -#endif + +/* Called with the mainloop locked */ +static gboolean +gst_pulsering_wait_for_stream_ready (GstPulseSink * psink, pa_stream * stream) +{ + pa_stream_state_t state; + + for (;;) { + state = pa_stream_get_state (stream); + + GST_LOG_OBJECT (psink, "stream state is now %d", state); + + if (!PA_STREAM_IS_GOOD (state)) + return FALSE; + + if (state == PA_STREAM_READY) + return TRUE; + + /* Wait until the stream is ready */ + pa_threaded_mainloop_wait (mainloop); + } +} + /* This method should create a new stream of the given @spec. No playback should * start yet so we start in the corked state. */ @@ -749,14 +811,26 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) pa_stream_flags_t flags; const gchar *name; GstAudioClock *clock; +#ifdef HAVE_PULSE_1_0 + pa_format_info *formats[1]; +#ifndef GST_DISABLE_GST_DEBUG + gchar print_buf[PA_FORMAT_INFO_SNPRINT_MAX]; +#endif +#endif psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (buf)); pbuf = GST_PULSERING_BUFFER_CAST (buf); GST_LOG_OBJECT (psink, "creating sample spec"); /* convert the gstreamer sample spec to the pulseaudio format */ +#ifdef HAVE_PULSE_1_0 + if (!gst_pulse_fill_format_info (spec, &pbuf->format, &pbuf->channels)) + goto invalid_spec; + pbuf->is_pcm = pa_format_info_is_pcm (pbuf->format); +#else if (!gst_pulse_fill_sample_spec (spec, &pbuf->sample_spec)) goto invalid_spec; +#endif pa_threaded_mainloop_lock (mainloop); @@ -773,7 +847,12 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) pa_operation_unref (o); /* initialize the channel map */ +#ifdef HAVE_PULSE_1_0 + if (pbuf->is_pcm && gst_pulse_gst_to_channel_map (&channel_map, spec)) + pa_format_info_set_channel_map (pbuf->format, &channel_map); +#else gst_pulse_gst_to_channel_map (&channel_map, spec); +#endif /* find a good name for the stream */ if (psink->stream_name) @@ -782,10 +861,17 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) name = "Playback Stream"; /* create a stream */ +#ifdef HAVE_PULSE_1_0 + formats[0] = pbuf->format; + if (!(pbuf->stream = pa_stream_new_extended (pbuf->context, name, formats, 1, + psink->proplist))) + goto stream_failed; +#else GST_LOG_OBJECT (psink, "creating stream with name %s", name); if (!(pbuf->stream = pa_stream_new_with_proplist (pbuf->context, name, &pbuf->sample_spec, &channel_map, psink->proplist))) goto stream_failed; +#endif /* install essential callbacks */ pa_stream_set_state_callback (pbuf->stream, @@ -800,14 +886,10 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) gst_pulsering_stream_latency_cb, pbuf); pa_stream_set_suspended_callback (pbuf->stream, gst_pulsering_stream_suspended_cb, pbuf); -#ifdef HAVE_PULSE_0_9_11 pa_stream_set_started_callback (pbuf->stream, gst_pulsering_stream_started_cb, pbuf); -#endif -#ifdef HAVE_PULSE_0_9_15 pa_stream_set_event_callback (pbuf->stream, gst_pulsering_stream_event_cb, pbuf); -#endif /* buffering requirements. When setting prebuf to 0, the stream will not pause * when we cause an underrun, which causes time to continue. */ @@ -827,8 +909,17 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) if (psink->volume_set) { GST_LOG_OBJECT (psink, "have volume of %f", psink->volume); pv = &v; +#ifdef HAVE_PULSE_1_0 + if (pbuf->is_pcm) + gst_pulse_cvolume_from_linear (pv, pbuf->channels, psink->volume); + else { + GST_DEBUG_OBJECT (psink, "passthrough stream, not setting volume"); + pv = NULL; + } +#else gst_pulse_cvolume_from_linear (pv, pbuf->sample_spec.channels, psink->volume); +#endif } else { pv = NULL; } @@ -836,15 +927,10 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) /* construct the flags */ flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | -#ifdef HAVE_PULSE_0_9_11 - PA_STREAM_ADJUST_LATENCY | -#endif - PA_STREAM_START_CORKED; + PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; -#ifdef HAVE_PULSE_0_9_12 if (psink->mute_set && psink->mute) flags |= PA_STREAM_START_MUTED; -#endif /* we always start corked (see flags above) */ pbuf->corked = TRUE; @@ -860,22 +946,19 @@ gst_pulseringbuffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec) clock = GST_AUDIO_CLOCK (GST_BASE_AUDIO_SINK (psink)->provided_clock); gst_audio_clock_reset (clock, 0); - for (;;) { - pa_stream_state_t state; - - state = pa_stream_get_state (pbuf->stream); - - GST_LOG_OBJECT (psink, "stream state is now %d", state); - - if (!PA_STREAM_IS_GOOD (state)) - goto connect_failed; + if (!gst_pulsering_wait_for_stream_ready (psink, pbuf->stream)) + goto connect_failed; - if (state == PA_STREAM_READY) - break; +#ifdef HAVE_PULSE_1_0 + g_free (psink->device); + psink->device = g_strdup (pa_stream_get_device_name (pbuf->stream)); - /* Wait until the stream is ready */ - pa_threaded_mainloop_wait (mainloop); - } +#ifndef GST_DISABLE_GST_DEBUG + pa_format_info_snprint (print_buf, sizeof (print_buf), + pa_stream_get_format_info (pbuf->stream)); + GST_INFO_OBJECT (psink, "negotiated to: %s", print_buf); +#endif +#endif /* After we passed the volume off of to PA we never want to set it again, since it is PA's job to save/restore volumes. */ @@ -949,6 +1032,16 @@ gst_pulseringbuffer_release (GstRingBuffer * buf) gst_pulsering_destroy_stream (pbuf); pa_threaded_mainloop_unlock (mainloop); +#ifdef HAVE_PULSE_1_0 + { + GstPulseSink *psink; + + psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); + g_atomic_int_set (&psink->format_lost, FALSE); + psink->format_lost_time = GST_CLOCK_TIME_NONE; + } +#endif + return TRUE; } @@ -970,6 +1063,13 @@ gst_pulsering_set_corked (GstPulseRingBuffer * pbuf, gboolean corked, psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_get (&psink->format_lost)) { + /* Sink format changed, stream's gone so fake being paused */ + return TRUE; + } +#endif + GST_DEBUG_OBJECT (psink, "setting corked state to %d", corked); if (pbuf->corked != corked) { if (!(o = pa_stream_cork (pbuf->stream, corked, @@ -1028,6 +1128,7 @@ gst_pulseringbuffer_clear (GstRingBuffer * buf) pa_threaded_mainloop_unlock (mainloop); } +/* called from pulse with the mainloop lock */ static void mainloop_enter_defer_cb (pa_mainloop_api * api, void *userdata) { @@ -1045,8 +1146,8 @@ mainloop_enter_defer_cb (pa_mainloop_api * api, void *userdata) gst_element_post_message (GST_ELEMENT (pulsesink), message); - /* signal the waiter */ - pulsesink->pa_defer_ran = TRUE; + g_return_if_fail (pulsesink->defer_pending); + pulsesink->defer_pending--; pa_threaded_mainloop_signal (mainloop, 0); } @@ -1063,7 +1164,7 @@ gst_pulseringbuffer_start (GstRingBuffer * buf) pa_threaded_mainloop_lock (mainloop); GST_DEBUG_OBJECT (psink, "scheduling stream status"); - psink->pa_defer_ran = FALSE; + psink->defer_pending++; pa_mainloop_api_once (pa_threaded_mainloop_get_api (mainloop), mainloop_enter_defer_cb, psink); @@ -1072,8 +1173,8 @@ gst_pulseringbuffer_start (GstRingBuffer * buf) /* EOS needs running clock */ if (GST_BASE_SINK_CAST (psink)->eos || - g_atomic_int_get (&GST_BASE_AUDIO_SINK (psink)->abidata.ABI. - eos_rendering)) + g_atomic_int_get (&GST_BASE_AUDIO_SINK (psink)->abidata. + ABI.eos_rendering)) gst_pulsering_set_corked (pbuf, FALSE, FALSE); pa_threaded_mainloop_unlock (mainloop); @@ -1107,6 +1208,7 @@ gst_pulseringbuffer_pause (GstRingBuffer * buf) return res; } +/* called from pulse with the mainloop lock */ static void mainloop_leave_defer_cb (pa_mainloop_api * api, void *userdata) { @@ -1123,9 +1225,9 @@ mainloop_leave_defer_cb (pa_mainloop_api * api, void *userdata) gst_message_set_stream_status_object (message, &val); gst_element_post_message (GST_ELEMENT (pulsesink), message); - pulsesink->pa_defer_ran = TRUE; + g_return_if_fail (pulsesink->defer_pending); + pulsesink->defer_pending--; pa_threaded_mainloop_signal (mainloop, 0); - gst_object_unref (pulsesink); } /* stop playback, we flush everything. */ @@ -1141,26 +1243,33 @@ gst_pulseringbuffer_stop (GstRingBuffer * buf) psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); pa_threaded_mainloop_lock (mainloop); + pbuf->paused = TRUE; res = gst_pulsering_set_corked (pbuf, TRUE, TRUE); + /* Inform anyone waiting in _commit() call that it shall wakeup */ if (pbuf->in_commit) { GST_DEBUG_OBJECT (psink, "signal commit thread"); pa_threaded_mainloop_signal (mainloop, 0); } +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_get (&psink->format_lost)) { + /* Don't try to flush, the stream's probably gone by now */ + res = TRUE; + goto cleanup; + } +#endif - if (strcmp (psink->pa_version, "0.9.12")) { - /* then try to flush, it's not fatal when this fails */ - GST_DEBUG_OBJECT (psink, "flushing"); - if ((o = pa_stream_flush (pbuf->stream, gst_pulsering_success_cb, pbuf))) { - while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { - GST_DEBUG_OBJECT (psink, "wait for completion"); - pa_threaded_mainloop_wait (mainloop); - if (gst_pulsering_is_dead (psink, pbuf, TRUE)) - goto server_dead; - } - GST_DEBUG_OBJECT (psink, "flush completed"); + /* then try to flush, it's not fatal when this fails */ + GST_DEBUG_OBJECT (psink, "flushing"); + if ((o = pa_stream_flush (pbuf->stream, gst_pulsering_success_cb, pbuf))) { + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + GST_DEBUG_OBJECT (psink, "wait for completion"); + pa_threaded_mainloop_wait (mainloop); + if (gst_pulsering_is_dead (psink, pbuf, TRUE)) + goto server_dead; } + GST_DEBUG_OBJECT (psink, "flush completed"); } res = TRUE; @@ -1171,12 +1280,10 @@ cleanup: } GST_DEBUG_OBJECT (psink, "scheduling stream status"); - psink->pa_defer_ran = FALSE; - gst_object_ref (psink); + psink->defer_pending++; pa_mainloop_api_once (pa_threaded_mainloop_get_api (mainloop), mainloop_leave_defer_cb, psink); - GST_DEBUG_OBJECT (psink, "waiting for stream status"); pa_threaded_mainloop_unlock (mainloop); return res; @@ -1259,7 +1366,6 @@ G_STMT_START { \ GST_DEBUG ("rev_down end %d/%d",*accum,*toprocess); \ } G_STMT_END - /* our custom commit function because we write into the buffer of pulseaudio * instead of keeping our own buffer */ static guint @@ -1298,6 +1404,7 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, } pa_threaded_mainloop_lock (mainloop); + GST_DEBUG_OBJECT (psink, "entering commit"); pbuf->in_commit = TRUE; @@ -1322,6 +1429,13 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, * needed to properly handle reverse playback: it points to the last sample. */ data_end = data + (bps * inr); +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_get (&psink->format_lost)) { + /* Sink format changed, drop the data and hope upstream renegotiates */ + goto fake_done; + } +#endif + if (pbuf->paused) goto was_paused; @@ -1336,16 +1450,13 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, "need to write %d samples at offset %" G_GINT64_FORMAT, *toprocess, offset); -#ifdef HAVE_PULSE_0_9_16 if (offset != pbuf->m_lastoffset) GST_LOG_OBJECT (psink, "discontinuity, offset is %" G_GINT64_FORMAT ", " "last offset was %" G_GINT64_FORMAT, offset, pbuf->m_lastoffset); towrite = out_samples * bps; - /* Only ever write segsize bytes at once. This will - * also limit the PA shm buffer to segsize - */ + /* Wait for at least segsize bytes to become available */ if (towrite > buf->spec.segsize) towrite = buf->spec.segsize; @@ -1372,6 +1483,13 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, for (;;) { pbuf->m_writable = pa_stream_writable_size (pbuf->stream); +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_get (&psink->format_lost)) { + /* Sink format changed, give up and hope upstream renegotiates */ + goto fake_done; + } +#endif + if (pbuf->m_writable == (size_t) - 1) goto writable_size_failed; @@ -1387,7 +1505,7 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, goto uncork_failed; } - /* we can't write a single byte, wait a bit */ + /* we can't write segsize bytes, wait a bit */ GST_LOG_OBJECT (psink, "waiting for free space"); pa_threaded_mainloop_wait (mainloop); @@ -1395,14 +1513,10 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, goto was_paused; } - /* make sure we only buffer up latency-time samples */ - if (pbuf->m_writable > buf->spec.segsize) { - /* limit buffering to latency-time value */ - pbuf->m_writable = buf->spec.segsize; - - GST_LOG_OBJECT (psink, "Limiting buffering to %" G_GSIZE_FORMAT, - pbuf->m_writable); - } + /* Recalculate what we can write in the next chunk */ + towrite = out_samples * bps; + if (pbuf->m_writable > towrite) + pbuf->m_writable = towrite; GST_LOG_OBJECT (psink, "requesting %" G_GSIZE_FORMAT " bytes of " "shared memory", pbuf->m_writable); @@ -1416,20 +1530,23 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, GST_LOG_OBJECT (psink, "got %" G_GSIZE_FORMAT " bytes of shared memory", pbuf->m_writable); - /* Just to make sure that we didn't get more than requested */ - if (pbuf->m_writable > buf->spec.segsize) { - /* limit buffering to latency-time value */ - pbuf->m_writable = buf->spec.segsize; - } } - if (pbuf->m_writable < towrite) + if (towrite > pbuf->m_writable) towrite = pbuf->m_writable; avail = towrite / bps; GST_LOG_OBJECT (psink, "writing %u samples at offset %" G_GUINT64_FORMAT, (guint) avail, offset); +#ifdef HAVE_PULSE_1_0 + /* No trick modes for passthrough streams */ + if (G_UNLIKELY (!pbuf->is_pcm && (inr != outr || reverse))) { + GST_WARNING_OBJECT (psink, "Passthrough stream can't run in trick mode"); + goto unlock_and_fail; + } +#endif + if (G_LIKELY (inr == outr && !reverse)) { /* no rate conversion, simply write out the samples */ /* copy the data into internal buffer */ @@ -1484,94 +1601,10 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, pbuf->m_towrite = 0; pbuf->m_offset = offset + towrite; /* keep track of current offset */ } -#else - - for (;;) { - /* FIXME, this is not quite right */ - if ((avail = pa_stream_writable_size (pbuf->stream)) == (size_t) - 1) - goto writable_size_failed; - - /* We always try to satisfy a request for data */ - GST_LOG_OBJECT (psink, "writable bytes %" G_GSIZE_FORMAT, avail); - - /* convert to samples, we can only deal with multiples of the - * sample size */ - avail /= bps; - - if (avail > 0) - break; - - /* see if we need to uncork because we have no free space */ - if (pbuf->corked) { - if (!gst_pulsering_set_corked (pbuf, FALSE, FALSE)) - goto uncork_failed; - } - - /* we can't write a single byte, wait a bit */ - GST_LOG_OBJECT (psink, "waiting for free space"); - pa_threaded_mainloop_wait (mainloop); - - if (pbuf->paused) - goto was_paused; - } - - if (avail > out_samples) - avail = out_samples; - - towrite = avail * bps; - - GST_LOG_OBJECT (psink, "writing %u samples at offset %" G_GUINT64_FORMAT, - (guint) avail, offset); - - if (G_LIKELY (inr == outr && !reverse)) { - /* no rate conversion, simply write out the samples */ - if (pa_stream_write (pbuf->stream, data, towrite, NULL, offset, - PA_SEEK_ABSOLUTE) < 0) - goto write_failed; - - data += towrite; - in_samples -= avail; - out_samples -= avail; - } else { - guint8 *dest, *d, *d_end; - - /* we need to allocate a temporary buffer to resample the data into, - * FIXME, we should have a pulseaudio API to allocate this buffer for us - * from the shared memory. */ - dest = d = g_malloc (towrite); - d_end = d + towrite; - - if (!reverse) { - if (inr >= outr) - /* forward speed up */ - FWD_UP_SAMPLES (data, data_end, d, d_end); - else - /* forward slow down */ - FWD_DOWN_SAMPLES (data, data_end, d, d_end); - } else { - if (inr >= outr) - /* reverse speed up */ - REV_UP_SAMPLES (data, data_end, d, d_end); - else - /* reverse slow down */ - REV_DOWN_SAMPLES (data, data_end, d, d_end); - } - /* see what we have left to write */ - towrite = (d - dest); - if (pa_stream_write (pbuf->stream, dest, towrite, - g_free, offset, PA_SEEK_ABSOLUTE) < 0) - goto write_failed; - - avail = towrite / bps; - } -#endif /* HAVE_PULSE_0_9_16 */ *sample += avail; offset += avail * bps; - -#ifdef HAVE_PULSE_0_9_16 pbuf->m_lastoffset = offset; -#endif /* check if we need to uncork after writing the samples */ if (pbuf->corked) { @@ -1593,6 +1626,10 @@ gst_pulseringbuffer_commit (GstRingBuffer * buf, guint64 * sample, } } } + +#ifdef HAVE_PULSE_1_0 +fake_done: +#endif /* we consumed all samples here */ data = data_end + bps; @@ -1657,7 +1694,6 @@ write_failed: static void gst_pulsering_flush (GstPulseRingBuffer * pbuf) { -#ifdef HAVE_PULSE_0_9_16 GstPulseSink *psink; psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); @@ -1694,7 +1730,6 @@ write_failed: pa_strerror (pa_context_errno (pbuf->context))), (NULL)); goto done; } -#endif } static void gst_pulsesink_set_property (GObject * object, guint prop_id, @@ -1710,12 +1745,6 @@ static GstStateChangeReturn gst_pulsesink_change_state (GstElement * element, static void gst_pulsesink_init_interfaces (GType type); -#if (G_BYTE_ORDER == G_LITTLE_ENDIAN) -# define ENDIANNESS "LITTLE_ENDIAN, BIG_ENDIAN" -#else -# define ENDIANNESS "BIG_ENDIAN, LITTLE_ENDIAN" -#endif - GST_IMPLEMENT_PULSEPROBE_METHODS (GstPulseSink, gst_pulsesink); #define _do_init(type) \ @@ -1758,14 +1787,11 @@ gst_pulsesink_init_interfaces (GType type) NULL, NULL, }; -#ifdef HAVE_PULSE_0_9_12 static const GInterfaceInfo svol_iface_info = { NULL, NULL, NULL }; g_type_add_interface_static (type, GST_TYPE_STREAM_VOLUME, &svol_iface_info); -#endif - g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, &implements_iface_info); g_type_add_interface_static (type, GST_TYPE_PROPERTY_PROBE, @@ -1778,59 +1804,14 @@ gst_pulsesink_base_init (gpointer g_class) static GstStaticPadTemplate pad_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw-int, " - "endianness = (int) { " ENDIANNESS " }, " - "signed = (boolean) TRUE, " - "width = (int) 16, " - "depth = (int) 16, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, 32 ];" - "audio/x-raw-float, " - "endianness = (int) { " ENDIANNESS " }, " - "width = (int) 32, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, 32 ];" - "audio/x-raw-int, " - "endianness = (int) { " ENDIANNESS " }, " - "signed = (boolean) TRUE, " - "width = (int) 32, " - "depth = (int) 32, " - "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" -#ifdef HAVE_PULSE_0_9_15 - "audio/x-raw-int, " - "endianness = (int) { " ENDIANNESS " }, " - "signed = (boolean) TRUE, " - "width = (int) 24, " - "depth = (int) 24, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, 32 ];" - "audio/x-raw-int, " - "endianness = (int) { " ENDIANNESS " }, " - "signed = (boolean) TRUE, " - "width = (int) 32, " - "depth = (int) 24, " - "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" -#endif - "audio/x-raw-int, " - "signed = (boolean) FALSE, " - "width = (int) 8, " - "depth = (int) 8, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, 32 ];" - "audio/x-alaw, " - "rate = (int) [ 1, MAX], " - "channels = (int) [ 1, 32 ];" - "audio/x-mulaw, " - "rate = (int) [ 1, MAX], " "channels = (int) [ 1, 32 ]") - ); + GST_STATIC_CAPS (PULSE_SINK_TEMPLATE_CAPS)); GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); gst_element_class_set_details_simple (element_class, "PulseAudio Audio Sink", "Sink/Audio", "Plays audio to a PulseAudio server", "Lennart Poettering"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&pad_template)); + gst_element_class_add_static_pad_template (element_class, &pad_template); } static GstRingBuffer * @@ -1845,6 +1826,40 @@ gst_pulsesink_create_ringbuffer (GstBaseAudioSink * sink) return buffer; } +static GstBuffer * +gst_pulsesink_payload (GstBaseAudioSink * sink, GstBuffer * buf) +{ + switch (sink->ringbuffer->spec.type) { + case GST_BUFTYPE_AC3: + case GST_BUFTYPE_EAC3: + case GST_BUFTYPE_DTS: + case GST_BUFTYPE_MPEG: + { + /* FIXME: alloc memory from PA if possible */ + gint framesize = gst_audio_iec61937_frame_size (&sink->ringbuffer->spec); + GstBuffer *out; + + if (framesize <= 0) + return NULL; + + out = gst_buffer_new_and_alloc (framesize); + + if (!gst_audio_iec61937_payload (GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf), GST_BUFFER_DATA (out), + GST_BUFFER_SIZE (out), &sink->ringbuffer->spec)) { + gst_buffer_unref (out); + return NULL; + } + + gst_buffer_copy_metadata (out, buf, GST_BUFFER_COPY_ALL); + return out; + } + + default: + return gst_buffer_ref (buf); + } +} + static void gst_pulsesink_class_init (GstPulseSinkClass * klass) { @@ -1853,6 +1868,7 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) GstBaseSinkClass *bc; GstBaseAudioSinkClass *gstaudiosink_class = GST_BASE_AUDIO_SINK_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + gchar *clientname; gobject_class->finalize = gst_pulsesink_finalize; gobject_class->set_property = gst_pulsesink_set_property; @@ -1869,6 +1885,7 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) gstaudiosink_class->create_ringbuffer = GST_DEBUG_FUNCPTR (gst_pulsesink_create_ringbuffer); + gstaudiosink_class->payload = GST_DEBUG_FUNCPTR (gst_pulsesink_payload); /* Overwrite GObject fields */ g_object_class_install_property (gobject_class, @@ -1888,7 +1905,6 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) "Human-readable name of the sound device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); -#ifdef HAVE_PULSE_0_9_12 g_object_class_install_property (gobject_class, PROP_VOLUME, g_param_spec_double ("volume", "Volume", @@ -1899,7 +1915,6 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) g_param_spec_boolean ("mute", "Mute", "Mute state of this stream", DEFAULT_MUTE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -#endif /** * GstPulseSink:client @@ -1908,12 +1923,14 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) * * Since: 0.10.25 */ + clientname = gst_pulse_client_name (); g_object_class_install_property (gobject_class, PROP_CLIENT, g_param_spec_string ("client", "Client", - "The PulseAudio client name to use", gst_pulse_client_name (), + "The PulseAudio client name to use", clientname, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_MUTABLE_READY)); + g_free (clientname); /** * GstPulseSink:stream-properties @@ -1953,6 +1970,14 @@ gst_pulsesink_get_time (GstClock * clock, GstBaseAudioSink * sink) pbuf = GST_PULSERING_BUFFER_CAST (sink->ringbuffer); psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_get (&psink->format_lost)) { + /* Stream was lost in a format change, it'll get set up again once + * upstream renegotiates */ + return psink->format_lost_time; + } +#endif + pa_threaded_mainloop_lock (mainloop); if (gst_pulsering_is_dead (psink, pbuf, TRUE)) goto server_dead; @@ -1982,6 +2007,183 @@ server_dead: } static void +gst_pulsesink_sink_info_cb (pa_context * c, const pa_sink_info * i, int eol, + void *userdata) +{ + GstPulseRingBuffer *pbuf; + GstPulseSink *psink; +#ifdef HAVE_PULSE_1_0 + GList *l; + guint8 j; +#endif + + pbuf = GST_PULSERING_BUFFER_CAST (userdata); + psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); + + if (!i) + goto done; + + g_free (psink->device_description); + psink->device_description = g_strdup (i->description); + +#ifdef HAVE_PULSE_1_0 + g_mutex_lock (psink->sink_formats_lock); + + for (l = g_list_first (psink->sink_formats); l; l = g_list_next (l)) + pa_format_info_free ((pa_format_info *) l->data); + + g_list_free (psink->sink_formats); + psink->sink_formats = NULL; + + for (j = 0; j < i->n_formats; j++) + psink->sink_formats = g_list_prepend (psink->sink_formats, + pa_format_info_copy (i->formats[j])); + + g_mutex_unlock (psink->sink_formats_lock); +#endif + +done: + pa_threaded_mainloop_signal (mainloop, 0); +} + +#ifdef HAVE_PULSE_1_0 +/* NOTE: If you're making changes here, see if pulseaudiosink acceptcaps also + * needs to be changed accordingly. */ +static gboolean +gst_pulsesink_pad_acceptcaps (GstPad * pad, GstCaps * caps) +{ + GstPulseSink *psink = GST_PULSESINK (gst_pad_get_parent_element (pad)); + GstPulseRingBuffer *pbuf = GST_PULSERING_BUFFER_CAST (GST_BASE_AUDIO_SINK + (psink)->ringbuffer); + GstCaps *pad_caps; + GstStructure *st; + gboolean ret = FALSE; + + GstRingBufferSpec spec = { 0 }; + pa_stream *stream = NULL; + pa_operation *o = NULL; + pa_channel_map channel_map; + pa_stream_flags_t flags; + pa_format_info *format = NULL, *formats[1]; + guint channels; + + pad_caps = gst_pad_get_caps_reffed (pad); + if (pad_caps) { + ret = gst_caps_can_intersect (pad_caps, caps); + gst_caps_unref (pad_caps); + } + + /* Either template caps didn't match, or we're still in NULL state */ + if (!ret || !pbuf->context) + goto done; + + /* If we've not got fixed caps, creating a stream might fail, so let's just + * return from here with default acceptcaps behaviour */ + if (!gst_caps_is_fixed (caps)) + goto done; + + ret = FALSE; + + pa_threaded_mainloop_lock (mainloop); + + spec.latency_time = GST_BASE_AUDIO_SINK (psink)->latency_time; + if (!gst_ring_buffer_parse_caps (&spec, caps)) + goto out; + + if (!gst_pulse_fill_format_info (&spec, &format, &channels)) + goto out; + + /* Make sure input is framed (one frame per buffer) and can be payloaded */ + if (!pa_format_info_is_pcm (format)) { + gboolean framed = FALSE, parsed = FALSE; + st = gst_caps_get_structure (caps, 0); + + gst_structure_get_boolean (st, "framed", &framed); + gst_structure_get_boolean (st, "parsed", &parsed); + if ((!framed && !parsed) || gst_audio_iec61937_frame_size (&spec) <= 0) + goto out; + } + + /* initialize the channel map */ + if (pa_format_info_is_pcm (format) && + gst_pulse_gst_to_channel_map (&channel_map, &spec)) + pa_format_info_set_channel_map (format, &channel_map); + + if (pbuf->stream) { + /* We're already in PAUSED or above, so just reuse this stream to query + * sink formats and use those. */ + GList *i; + + if (!(o = pa_context_get_sink_info_by_name (pbuf->context, psink->device, + gst_pulsesink_sink_info_cb, pbuf))) + goto info_failed; + + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + pa_threaded_mainloop_wait (mainloop); + if (gst_pulsering_is_dead (psink, pbuf, TRUE)) + goto out; + } + + g_mutex_lock (psink->sink_formats_lock); + for (i = g_list_first (psink->sink_formats); i; i = g_list_next (i)) { + if (pa_format_info_is_compatible ((pa_format_info *) i->data, format)) { + ret = TRUE; + break; + } + } + g_mutex_unlock (psink->sink_formats_lock); + } else { + /* We're in READY, let's connect a stream to see if the format is + * accpeted by whatever sink we're routed to */ + formats[0] = format; + + if (!(stream = pa_stream_new_extended (pbuf->context, "pulsesink probe", + formats, 1, psink->proplist))) + goto out; + + /* construct the flags */ + flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | + PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; + + pa_stream_set_state_callback (stream, gst_pulsering_stream_state_cb, pbuf); + + if (pa_stream_connect_playback (stream, psink->device, NULL, flags, NULL, + NULL) < 0) + goto out; + + ret = gst_pulsering_wait_for_stream_ready (psink, stream); + } + +out: + if (format) + pa_format_info_free (format); + + if (o) + pa_operation_unref (o); + + if (stream) { + pa_stream_set_state_callback (stream, NULL, NULL); + pa_stream_disconnect (stream); + pa_stream_unref (stream); + } + + pa_threaded_mainloop_unlock (mainloop); + +done: + gst_object_unref (psink); + return ret; + +info_failed: + { + GST_ELEMENT_ERROR (psink, RESOURCE, FAILED, + ("pa_context_get_sink_input_info() failed: %s", + pa_strerror (pa_context_errno (pbuf->context))), (NULL)); + goto out; + } +} +#endif + +static void gst_pulsesink_init (GstPulseSink * pulsesink, GstPulseSinkClass * klass) { pulsesink->server = NULL; @@ -1989,6 +2191,11 @@ gst_pulsesink_init (GstPulseSink * pulsesink, GstPulseSinkClass * klass) pulsesink->device_description = NULL; pulsesink->client_name = gst_pulse_client_name (); +#ifdef HAVE_PULSE_1_0 + pulsesink->sink_formats_lock = g_mutex_new (); + pulsesink->sink_formats = NULL; +#endif + pulsesink->volume = DEFAULT_VOLUME; pulsesink->volume_set = FALSE; @@ -1997,15 +2204,14 @@ gst_pulsesink_init (GstPulseSink * pulsesink, GstPulseSinkClass * klass) pulsesink->notify = 0; - /* needed for conditional execution */ - pulsesink->pa_version = pa_get_library_version (); +#ifdef HAVE_PULSE_1_0 + g_atomic_int_set (&pulsesink->format_lost, FALSE); + pulsesink->format_lost_time = GST_CLOCK_TIME_NONE; +#endif pulsesink->properties = NULL; pulsesink->proplist = NULL; - GST_DEBUG_OBJECT (pulsesink, "using pulseaudio version %s", - pulsesink->pa_version); - /* override with a custom clock */ if (GST_BASE_AUDIO_SINK (pulsesink)->provided_clock) gst_object_unref (GST_BASE_AUDIO_SINK (pulsesink)->provided_clock); @@ -2014,6 +2220,11 @@ gst_pulsesink_init (GstPulseSink * pulsesink, GstPulseSinkClass * klass) gst_audio_clock_new ("GstPulseSinkClock", (GstAudioClockGetTimeFunc) gst_pulsesink_get_time, pulsesink); +#ifdef HAVE_PULSE_1_0 + gst_pad_set_acceptcaps_function (GST_BASE_SINK (pulsesink)->sinkpad, + GST_DEBUG_FUNCPTR (gst_pulsesink_pad_acceptcaps)); +#endif + /* TRUE for sinks, FALSE for sources */ pulsesink->probe = gst_pulseprobe_new (G_OBJECT (pulsesink), G_OBJECT_GET_CLASS (pulsesink), PROP_DEVICE, pulsesink->device, @@ -2024,12 +2235,23 @@ static void gst_pulsesink_finalize (GObject * object) { GstPulseSink *pulsesink = GST_PULSESINK_CAST (object); +#ifdef HAVE_PULSE_1_0 + GList *i; +#endif g_free (pulsesink->server); g_free (pulsesink->device); g_free (pulsesink->device_description); g_free (pulsesink->client_name); +#ifdef HAVE_PULSE_1_0 + for (i = g_list_first (pulsesink->sink_formats); i; i = g_list_next (i)) + pa_format_info_free ((pa_format_info *) i->data); + + g_list_free (pulsesink->sink_formats); + g_mutex_free (pulsesink->sink_formats_lock); +#endif + if (pulsesink->properties) gst_structure_free (pulsesink->properties); if (pulsesink->proplist) @@ -2043,7 +2265,6 @@ gst_pulsesink_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } -#ifdef HAVE_PULSE_0_9_12 static void gst_pulsesink_set_volume (GstPulseSink * psink, gdouble volume) { @@ -2066,7 +2287,16 @@ gst_pulsesink_set_volume (GstPulseSink * psink, gdouble volume) if ((idx = pa_stream_get_index (pbuf->stream)) == PA_INVALID_INDEX) goto no_index; +#ifdef HAVE_PULSE_1_0 + if (pbuf->is_pcm) + gst_pulse_cvolume_from_linear (&v, pbuf->channels, volume); + else + /* FIXME: this will eventually be superceded by checks to see if the volume + * is readable/writable */ + goto unlock; +#else gst_pulse_cvolume_from_linear (&v, pbuf->sample_spec.channels, volume); +#endif if (!(o = pa_context_set_sink_input_volume (pbuf->context, idx, &v, NULL, NULL))) @@ -2342,27 +2572,6 @@ info_failed: goto unlock; } } -#endif - -static void -gst_pulsesink_sink_info_cb (pa_context * c, const pa_sink_info * i, int eol, - void *userdata) -{ - GstPulseRingBuffer *pbuf; - GstPulseSink *psink; - - pbuf = GST_PULSERING_BUFFER_CAST (userdata); - psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf)); - - if (!i) - goto done; - - g_free (psink->device_description); - psink->device_description = g_strdup (i->description); - -done: - pa_threaded_mainloop_signal (mainloop, 0); -} static gchar * gst_pulsesink_device_description (GstPulseSink * psink) @@ -2435,14 +2644,12 @@ gst_pulsesink_set_property (GObject * object, g_free (pulsesink->device); pulsesink->device = g_value_dup_string (value); break; -#ifdef HAVE_PULSE_0_9_12 case PROP_VOLUME: gst_pulsesink_set_volume (pulsesink, g_value_get_double (value)); break; case PROP_MUTE: gst_pulsesink_set_mute (pulsesink, g_value_get_boolean (value)); break; -#endif case PROP_CLIENT: g_free (pulsesink->client_name); if (!g_value_get_string (value)) { @@ -2484,14 +2691,12 @@ gst_pulsesink_get_property (GObject * object, case PROP_DEVICE_NAME: g_value_take_string (value, gst_pulsesink_device_description (pulsesink)); break; -#ifdef HAVE_PULSE_0_9_12 case PROP_VOLUME: g_value_set_double (value, gst_pulsesink_get_volume (pulsesink)); break; case PROP_MUTE: g_value_set_boolean (value, gst_pulsesink_get_mute (pulsesink)); break; -#endif case PROP_CLIENT: g_value_set_string (value, pulsesink->client_name); break; @@ -2547,7 +2752,6 @@ name_failed: } } -#ifdef HAVE_PULSE_0_9_11 static void gst_pulsesink_change_props (GstPulseSink * psink, GstTagList * l) { @@ -2625,7 +2829,6 @@ update_failed: goto unlock; } } -#endif static void gst_pulsesink_flush_ringbuffer (GstPulseSink * psink) @@ -2701,9 +2904,7 @@ gst_pulsesink_event (GstBaseSink * sink, GstEvent * event) g_free (description); g_free (buf); -#ifdef HAVE_PULSE_0_9_11 gst_pulsesink_change_props (pulsesink, l); -#endif break; } @@ -2717,6 +2918,30 @@ gst_pulsesink_event (GstBaseSink * sink, GstEvent * event) return GST_BASE_SINK_CLASS (parent_class)->event (sink, event); } +static void +gst_pulsesink_release_mainloop (GstPulseSink * psink) +{ + if (!mainloop) + return; + + pa_threaded_mainloop_lock (mainloop); + while (psink->defer_pending) { + GST_DEBUG_OBJECT (psink, "waiting for stream status message emission"); + pa_threaded_mainloop_wait (mainloop); + } + pa_threaded_mainloop_unlock (mainloop); + + g_mutex_lock (pa_shared_resource_mutex); + mainloop_ref_ct--; + if (!mainloop_ref_ct) { + GST_INFO_OBJECT (psink, "terminating pa main loop thread"); + pa_threaded_mainloop_stop (mainloop); + pa_threaded_mainloop_free (mainloop); + mainloop = NULL; + } + g_mutex_unlock (pa_shared_resource_mutex); +} + static GstStateChangeReturn gst_pulsesink_change_state (GstElement * element, GstStateChange transition) { @@ -2730,8 +2955,11 @@ gst_pulsesink_change_state (GstElement * element, GstStateChange transition) GST_INFO_OBJECT (element, "new pa main loop thread"); if (!(mainloop = pa_threaded_mainloop_new ())) goto mainloop_failed; + if (pa_threaded_mainloop_start (mainloop) < 0) { + pa_threaded_mainloop_free (mainloop); + goto mainloop_start_failed; + } mainloop_ref_ct = 1; - pa_threaded_mainloop_start (mainloop); g_mutex_unlock (pa_shared_resource_mutex); } else { GST_INFO_OBJECT (element, "reusing pa main loop thread"); @@ -2744,6 +2972,7 @@ gst_pulsesink_change_state (GstElement * element, GstStateChange transition) gst_message_new_clock_provide (GST_OBJECT_CAST (element), GST_BASE_AUDIO_SINK (pulsesink)->provided_clock, TRUE)); break; + default: break; } @@ -2754,22 +2983,13 @@ gst_pulsesink_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: + /* format_lost is reset in release() in baseaudiosink */ gst_element_post_message (element, gst_message_new_clock_lost (GST_OBJECT_CAST (element), GST_BASE_AUDIO_SINK (pulsesink)->provided_clock)); break; case GST_STATE_CHANGE_READY_TO_NULL: - if (mainloop) { - g_mutex_lock (pa_shared_resource_mutex); - mainloop_ref_ct--; - if (!mainloop_ref_ct) { - GST_INFO_OBJECT (element, "terminating pa main loop thread"); - pa_threaded_mainloop_stop (mainloop); - pa_threaded_mainloop_free (mainloop); - mainloop = NULL; - } - g_mutex_unlock (pa_shared_resource_mutex); - } + gst_pulsesink_release_mainloop (pulsesink); break; default: break; @@ -2785,20 +3005,19 @@ mainloop_failed: ("pa_threaded_mainloop_new() failed"), (NULL)); return GST_STATE_CHANGE_FAILURE; } +mainloop_start_failed: + { + g_mutex_unlock (pa_shared_resource_mutex); + GST_ELEMENT_ERROR (pulsesink, RESOURCE, FAILED, + ("pa_threaded_mainloop_start() failed"), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } state_failure: { if (transition == GST_STATE_CHANGE_NULL_TO_READY) { /* Clear the PA mainloop if baseaudiosink failed to open the ring_buffer */ g_assert (mainloop); - g_mutex_lock (pa_shared_resource_mutex); - mainloop_ref_ct--; - if (!mainloop_ref_ct) { - GST_INFO_OBJECT (element, "terminating pa main loop thread"); - pa_threaded_mainloop_stop (mainloop); - pa_threaded_mainloop_free (mainloop); - mainloop = NULL; - } - g_mutex_unlock (pa_shared_resource_mutex); + gst_pulsesink_release_mainloop (pulsesink); } return ret; } diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h index 0f75fcc..340b481 100644 --- a/ext/pulse/pulsesink.h +++ b/ext/pulse/pulsesink.h @@ -24,6 +24,10 @@ #ifndef __GST_PULSESINK_H__ #define __GST_PULSESINK_H__ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -64,7 +68,7 @@ struct _GstPulseSink gboolean mute:1; gboolean mute_set:1; - gboolean pa_defer_ran:1; + guint defer_pending; gint notify; /* atomic */ @@ -72,6 +76,13 @@ struct _GstPulseSink GstStructure *properties; pa_proplist *proplist; + +#ifdef HAVE_PULSE_1_0 + GMutex *sink_formats_lock; + GList *sink_formats; + volatile gint format_lost; + GstClockTime format_lost_time; +#endif }; struct _GstPulseSinkClass @@ -81,6 +92,91 @@ struct _GstPulseSinkClass GType gst_pulsesink_get_type (void); +#if (G_BYTE_ORDER == G_LITTLE_ENDIAN) +# define ENDIANNESS "LITTLE_ENDIAN, BIG_ENDIAN" +#else +# define ENDIANNESS "BIG_ENDIAN, LITTLE_ENDIAN" +#endif + +#define _PULSE_SINK_CAPS_COMMON \ + "audio/x-raw-int, " \ + "endianness = (int) { " ENDIANNESS " }, " \ + "signed = (boolean) TRUE, " \ + "width = (int) 16, " \ + "depth = (int) 16, " \ + "rate = (int) [ 1, MAX ], " \ + "channels = (int) [ 1, 32 ];" \ + "audio/x-raw-float, " \ + "endianness = (int) { " ENDIANNESS " }, " \ + "width = (int) 32, " \ + "rate = (int) [ 1, MAX ], " \ + "channels = (int) [ 1, 32 ];" \ + "audio/x-raw-int, " \ + "endianness = (int) { " ENDIANNESS " }, " \ + "signed = (boolean) TRUE, " \ + "width = (int) 32, " \ + "depth = (int) 32, " \ + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" \ + "audio/x-raw-int, " \ + "signed = (boolean) FALSE, " \ + "width = (int) 8, " \ + "depth = (int) 8, " \ + "rate = (int) [ 1, MAX ], " \ + "channels = (int) [ 1, 32 ];" \ + "audio/x-alaw, " \ + "rate = (int) [ 1, MAX], " \ + "channels = (int) [ 1, 32 ];" \ + "audio/x-mulaw, " \ + "rate = (int) [ 1, MAX], " "channels = (int) [ 1, 32 ];" \ + "audio/x-raw-int, " \ + "endianness = (int) { " ENDIANNESS " }, " \ + "signed = (boolean) TRUE, " \ + "width = (int) 24, " \ + "depth = (int) 24, " \ + "rate = (int) [ 1, MAX ], " \ + "channels = (int) [ 1, 32 ];" \ + "audio/x-raw-int, " \ + "endianness = (int) { " ENDIANNESS " }, " \ + "signed = (boolean) TRUE, " \ + "width = (int) 32, " \ + "depth = (int) 24, " \ + "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 32 ];" + +#ifdef HAVE_PULSE_1_0 +#define _PULSE_SINK_CAPS_1_0 \ + "audio/x-ac3, framed = (boolean) true;" \ + "audio/x-eac3, framed = (boolean) true; " \ + "audio/x-dts, framed = (boolean) true, " \ + "block-size = (int) { 512, 1024, 2048 }; " \ + "audio/mpeg, mpegversion = (int) 1, " \ + "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;" +#else +#define _PULSE_SINK_CAPS_1_0 "" +#endif + +#define PULSE_SINK_TEMPLATE_CAPS \ + _PULSE_SINK_CAPS_COMMON \ + _PULSE_SINK_CAPS_1_0 + +#ifdef HAVE_PULSE_1_0 + +#define GST_TYPE_PULSE_AUDIO_SINK \ + (gst_pulse_audio_sink_get_type()) +#define GST_PULSE_AUDIO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PULSE_AUDIO_SINK,GstPulseAudioSink)) +#define GST_PULSE_AUDIO_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PULSE_AUDIO_SINK,GstPulseAudioSinkClass)) +#define GST_IS_PULSE_AUDIO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PULSE_AUDIO_SINK)) +#define GST_IS_PULSE_AUDIO_SINK_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PULSE_AUDIO_SINK)) +#define GST_PULSE_AUDIO_SINK_CAST(obj) \ + ((GstPulseAudioSink *)(obj)) + +GType gst_pulse_audio_sink_get_type (void); + +#endif /* HAVE_PULSE_1_0 */ + G_END_DECLS #endif /* __GST_PULSESINK_H__ */ diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c index ebb41c1..12e5282 100644 --- a/ext/pulse/pulsesrc.c +++ b/ext/pulse/pulsesrc.c @@ -43,6 +43,9 @@ #include #include +#ifdef HAVE_PULSE_1_0 +#include +#endif #include "pulsesrc.h" #include "pulseutil.h" @@ -55,6 +58,12 @@ GST_DEBUG_CATEGORY_EXTERN (pulse_debug); #define DEFAULT_DEVICE NULL #define DEFAULT_DEVICE_NAME NULL +#ifdef HAVE_PULSE_1_0 +#define DEFAULT_VOLUME 1.0 +#define DEFAULT_MUTE FALSE +#define MAX_VOLUME 10.0 +#endif + enum { PROP_0, @@ -63,6 +72,11 @@ enum PROP_DEVICE_NAME, PROP_CLIENT, PROP_STREAM_PROPERTIES, + PROP_SOURCE_OUTPUT_INDEX, +#ifdef HAVE_PULSE_1_0 + PROP_VOLUME, + PROP_MUTE, +#endif PROP_LAST }; @@ -120,6 +134,11 @@ gst_pulsesrc_interface_supported (GstImplementsInterface * if (interface_type == GST_TYPE_PROPERTY_PROBE && this->probe) return TRUE; +#ifdef HAVE_PULSE_1_0 + if (interface_type == GST_TYPE_STREAM_VOLUME) + return TRUE; +#endif + return FALSE; } @@ -132,6 +151,11 @@ gst_pulsesrc_implements_interface_init (GstImplementsInterfaceClass * klass) static void gst_pulsesrc_init_interfaces (GType type) { +#ifdef HAVE_PULSE_1_0 + static const GInterfaceInfo svol_iface_info = { + NULL, NULL, NULL, + }; +#endif static const GInterfaceInfo implements_iface_info = { (GInterfaceInitFunc) gst_pulsesrc_implements_interface_init, NULL, @@ -148,6 +172,9 @@ gst_pulsesrc_init_interfaces (GType type) NULL, }; +#ifdef HAVE_PULSE_1_0 + g_type_add_interface_static (type, GST_TYPE_STREAM_VOLUME, &svol_iface_info); +#endif g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, &implements_iface_info); g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_iface_info); @@ -200,8 +227,7 @@ gst_pulsesrc_base_init (gpointer g_class) "PulseAudio Audio Source", "Source/Audio", "Captures audio from a PulseAudio server", "Lennart Poettering"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&pad_template)); + gst_element_class_add_static_pad_template (element_class, &pad_template); } static void @@ -211,6 +237,7 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) GstAudioSrcClass *gstaudiosrc_class = GST_AUDIO_SRC_CLASS (klass); GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + gchar *clientname; gobject_class->finalize = gst_pulsesrc_finalize; gobject_class->set_property = gst_pulsesrc_set_property; @@ -247,8 +274,9 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) "Human-readable name of the sound device", DEFAULT_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + clientname = gst_pulse_client_name (); /** - * GstPulseSink:client + * GstPulseSrc:client * * The PulseAudio client name to use. * @@ -257,9 +285,10 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) g_object_class_install_property (gobject_class, PROP_CLIENT, g_param_spec_string ("client", "Client", - "The PulseAudio client_name_to_use", gst_pulse_client_name (), + "The PulseAudio client_name_to_use", clientname, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_MUTABLE_READY)); + g_free (clientname); /** * GstPulseSrc:stream-properties @@ -283,6 +312,49 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) g_param_spec_boxed ("stream-properties", "stream properties", "list of pulseaudio stream properties", GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstPulseSrc:source-output-index + * + * The index of the PulseAudio source output corresponding to this element. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, + PROP_SOURCE_OUTPUT_INDEX, + g_param_spec_uint ("source-output-index", "source output index", + "The index of the PulseAudio source output corresponding to this " + "record stream", 0, G_MAXUINT, PA_INVALID_INDEX, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + +#ifdef HAVE_PULSE_1_0 + /** + * GstPulseSrc:volume + * + * The volume of the record stream. Only works when using PulseAudio 1.0 or + * later. + * + * Since: 0.10.36 + */ + g_object_class_install_property (gobject_class, + PROP_VOLUME, g_param_spec_double ("volume", "Volume", + "Linear volume of this stream, 1.0=100%", + 0.0, MAX_VOLUME, DEFAULT_VOLUME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstPulseSrc:mute + * + * Whether the stream is muted or not. Only works when using PulseAudio 1.0 + * or later. + * + * Since: 0.10.36 + */ + g_object_class_install_property (gobject_class, + PROP_MUTE, g_param_spec_boolean ("mute", "Mute", + "Mute state of this stream", + DEFAULT_MUTE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +#endif } static void @@ -295,22 +367,27 @@ gst_pulsesrc_init (GstPulseSrc * pulsesrc, GstPulseSrcClass * klass) pulsesrc->context = NULL; pulsesrc->stream = NULL; + pulsesrc->source_output_idx = PA_INVALID_INDEX; pulsesrc->read_buffer = NULL; pulsesrc->read_buffer_length = 0; -#ifdef HAVE_PULSE_0_9_13 pa_sample_spec_init (&pulsesrc->sample_spec); -#else - pulsesrc->sample_spec.format = PA_SAMPLE_INVALID; - pulsesrc->sample_spec.rate = 0; - pulsesrc->sample_spec.channels = 0; -#endif pulsesrc->operation_success = FALSE; pulsesrc->paused = FALSE; pulsesrc->in_read = FALSE; +#ifdef HAVE_PULSE_1_0 + pulsesrc->volume = DEFAULT_VOLUME; + pulsesrc->volume_set = FALSE; + + pulsesrc->mute = DEFAULT_MUTE; + pulsesrc->mute_set = FALSE; + + pulsesrc->notify = 0; +#endif + pulsesrc->mixer = NULL; pulsesrc->properties = NULL; @@ -330,6 +407,8 @@ gst_pulsesrc_destroy_stream (GstPulseSrc * pulsesrc) pa_stream_disconnect (pulsesrc->stream); pa_stream_unref (pulsesrc->stream); pulsesrc->stream = NULL; + pulsesrc->source_output_idx = PA_INVALID_INDEX; + g_object_notify (G_OBJECT (pulsesrc), "source-output-index"); } g_free (pulsesrc->device_description); @@ -344,7 +423,15 @@ gst_pulsesrc_destroy_context (GstPulseSrc * pulsesrc) if (pulsesrc->context) { pa_context_disconnect (pulsesrc->context); + + /* Make sure we don't get any further callbacks */ + pa_context_set_state_callback (pulsesrc->context, NULL, NULL); +#ifdef HAVE_PULSE_1_0 + pa_context_set_subscribe_callback (pulsesrc->context, NULL, NULL); +#endif + pa_context_unref (pulsesrc->context); + pulsesrc->context = NULL; } } @@ -462,6 +549,260 @@ no_mainloop: } } +#ifdef HAVE_PULSE_1_0 +static void +gst_pulsesrc_source_output_info_cb (pa_context * c, + const pa_source_output_info * i, int eol, void *userdata) +{ + GstPulseSrc *psrc; + + psrc = GST_PULSESRC_CAST (userdata); + + if (!i) + goto done; + + /* If the index doesn't match our current stream, + * it implies we just recreated the stream (caps change) + */ + if (i->index == psrc->source_output_idx) { + psrc->volume = pa_sw_volume_to_linear (pa_cvolume_max (&i->volume)); + psrc->mute = i->mute; + } + +done: + pa_threaded_mainloop_signal (psrc->mainloop, 0); +} + +static gdouble +gst_pulsesrc_get_stream_volume (GstPulseSrc * pulsesrc) +{ + pa_operation *o = NULL; + gdouble v; + + if (!pulsesrc->mainloop) + goto no_mainloop; + + if (pulsesrc->source_output_idx == PA_INVALID_INDEX) + goto no_index; + + pa_threaded_mainloop_lock (pulsesrc->mainloop); + + if (!(o = pa_context_get_source_output_info (pulsesrc->context, + pulsesrc->source_output_idx, gst_pulsesrc_source_output_info_cb, + pulsesrc))) + goto info_failed; + + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + pa_threaded_mainloop_wait (pulsesrc->mainloop); + if (gst_pulsesrc_is_dead (pulsesrc, TRUE)) + goto unlock; + } + +unlock: + v = pulsesrc->volume; + + if (o) + pa_operation_unref (o); + + pa_threaded_mainloop_unlock (pulsesrc->mainloop); + + if (v > MAX_VOLUME) { + GST_WARNING_OBJECT (pulsesrc, "Clipped volume from %f to %f", v, + MAX_VOLUME); + v = MAX_VOLUME; + } + + return v; + + /* ERRORS */ +no_mainloop: + { + v = pulsesrc->volume; + GST_DEBUG_OBJECT (pulsesrc, "we have no mainloop"); + return v; + } +no_index: + { + v = pulsesrc->volume; + GST_DEBUG_OBJECT (pulsesrc, "we don't have a stream index"); + return v; + } +info_failed: + { + GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, + ("pa_context_get_source_output_info() failed: %s", + pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); + goto unlock; + } +} + +static gboolean +gst_pulsesrc_get_stream_mute (GstPulseSrc * pulsesrc) +{ + pa_operation *o = NULL; + gboolean mute; + + if (!pulsesrc->mainloop) + goto no_mainloop; + + if (pulsesrc->source_output_idx == PA_INVALID_INDEX) + goto no_index; + + pa_threaded_mainloop_lock (pulsesrc->mainloop); + + if (!(o = pa_context_get_source_output_info (pulsesrc->context, + pulsesrc->source_output_idx, gst_pulsesrc_source_output_info_cb, + pulsesrc))) + goto info_failed; + + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + pa_threaded_mainloop_wait (pulsesrc->mainloop); + if (gst_pulsesrc_is_dead (pulsesrc, TRUE)) + goto unlock; + } + +unlock: + mute = pulsesrc->mute; + + if (o) + pa_operation_unref (o); + + pa_threaded_mainloop_unlock (pulsesrc->mainloop); + + return mute; + + /* ERRORS */ +no_mainloop: + { + mute = pulsesrc->mute; + GST_DEBUG_OBJECT (pulsesrc, "we have no mainloop"); + return mute; + } +no_index: + { + mute = pulsesrc->mute; + GST_DEBUG_OBJECT (pulsesrc, "we don't have a stream index"); + return mute; + } +info_failed: + { + GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, + ("pa_context_get_source_output_info() failed: %s", + pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); + goto unlock; + } +} + +static void +gst_pulsesrc_set_stream_volume (GstPulseSrc * pulsesrc, gdouble volume) +{ + pa_cvolume v; + pa_operation *o = NULL; + + if (!pulsesrc->mainloop) + goto no_mainloop; + + if (!pulsesrc->source_output_idx) + goto no_index; + + pa_threaded_mainloop_lock (pulsesrc->mainloop); + + GST_DEBUG_OBJECT (pulsesrc, "setting volume to %f", volume); + + gst_pulse_cvolume_from_linear (&v, pulsesrc->sample_spec.channels, volume); + + if (!(o = pa_context_set_source_output_volume (pulsesrc->context, + pulsesrc->source_output_idx, &v, NULL, NULL))) + goto volume_failed; + + /* We don't really care about the result of this call */ +unlock: + + if (o) + pa_operation_unref (o); + + pa_threaded_mainloop_unlock (pulsesrc->mainloop); + + return; + + /* ERRORS */ +no_mainloop: + { + pulsesrc->volume = volume; + pulsesrc->volume_set = TRUE; + GST_DEBUG_OBJECT (pulsesrc, "we have no mainloop"); + return; + } +no_index: + { + pulsesrc->volume = volume; + pulsesrc->volume_set = TRUE; + GST_DEBUG_OBJECT (pulsesrc, "we don't have a stream index"); + return; + } +volume_failed: + { + GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, + ("pa_stream_set_source_output_volume() failed: %s", + pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); + goto unlock; + } +} + +static void +gst_pulsesrc_set_stream_mute (GstPulseSrc * pulsesrc, gboolean mute) +{ + pa_operation *o = NULL; + + if (!pulsesrc->mainloop) + goto no_mainloop; + + if (!pulsesrc->source_output_idx) + goto no_index; + + pa_threaded_mainloop_lock (pulsesrc->mainloop); + + GST_DEBUG_OBJECT (pulsesrc, "setting mute state to %d", mute); + + if (!(o = pa_context_set_source_output_mute (pulsesrc->context, + pulsesrc->source_output_idx, mute, NULL, NULL))) + goto mute_failed; + + /* We don't really care about the result of this call */ +unlock: + + if (o) + pa_operation_unref (o); + + pa_threaded_mainloop_unlock (pulsesrc->mainloop); + + return; + + /* ERRORS */ +no_mainloop: + { + pulsesrc->mute = mute; + pulsesrc->mute_set = TRUE; + GST_DEBUG_OBJECT (pulsesrc, "we have no mainloop"); + return; + } +no_index: + { + pulsesrc->mute = mute; + pulsesrc->mute_set = TRUE; + GST_DEBUG_OBJECT (pulsesrc, "we don't have a stream index"); + return; + } +mute_failed: + { + GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, + ("pa_stream_set_source_output_mute() failed: %s", + pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); + goto unlock; + } +} +#endif + static void gst_pulsesrc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) @@ -498,6 +839,14 @@ gst_pulsesrc_set_property (GObject * object, pa_proplist_free (pulsesrc->proplist); pulsesrc->proplist = gst_pulse_make_proplist (pulsesrc->properties); break; +#ifdef HAVE_PULSE_1_0 + case PROP_VOLUME: + gst_pulsesrc_set_stream_volume (pulsesrc, g_value_get_double (value)); + break; + case PROP_MUTE: + gst_pulsesrc_set_stream_mute (pulsesrc, g_value_get_boolean (value)); + break; +#endif default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -527,6 +876,17 @@ gst_pulsesrc_get_property (GObject * object, case PROP_STREAM_PROPERTIES: gst_value_set_structure (value, pulsesrc->properties); break; + case PROP_SOURCE_OUTPUT_INDEX: + g_value_set_uint (value, pulsesrc->source_output_idx); + break; +#ifdef HAVE_PULSE_1_0 + case PROP_VOLUME: + g_value_set_double (value, gst_pulsesrc_get_stream_volume (pulsesrc)); + break; + case PROP_MUTE: + g_value_set_boolean (value, gst_pulsesrc_get_stream_mute (pulsesrc)); + break; +#endif default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -598,11 +958,7 @@ gst_pulsesrc_stream_latency_update_cb (pa_stream * s, void *userdata) "latency update (information unknown)"); return; } -#ifdef HAVE_PULSE_0_9_11 source_usec = info->configured_source_usec; -#else - source_usec = 0; -#endif GST_LOG_OBJECT (GST_PULSESRC_CAST (userdata), "latency_update, %" G_GUINT64_FORMAT ", %d:%" G_GINT64_FORMAT ", %d:%" @@ -624,6 +980,30 @@ gst_pulsesrc_stream_overflow_cb (pa_stream * s, void *userdata) GST_WARNING_OBJECT (GST_PULSESRC_CAST (userdata), "Got overflow"); } +#ifdef HAVE_PULSE_1_0 +static void +gst_pulsesrc_context_subscribe_cb (pa_context * c, + pa_subscription_event_type_t t, uint32_t idx, void *userdata) +{ + GstPulseSrc *psrc = GST_PULSESRC (userdata); + + if (t != (PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT | PA_SUBSCRIPTION_EVENT_CHANGE) + && t != (PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT | PA_SUBSCRIPTION_EVENT_NEW)) + return; + + if (idx != psrc->source_output_idx) + return; + + /* Actually this event is also triggered when other properties of the stream + * change that are unrelated to the volume. However it is probably cheaper to + * signal the change here and check for the volume when the GObject property + * is read instead of querying it always. */ + + /* inform streaming thread to notify */ + g_atomic_int_compare_and_exchange (&psrc->notify, 0, 1); +} +#endif + static gboolean gst_pulsesrc_open (GstAudioSrc * asrc) { @@ -646,6 +1026,10 @@ gst_pulsesrc_open (GstAudioSrc * asrc) pa_context_set_state_callback (pulsesrc->context, gst_pulsesrc_context_state_cb, pulsesrc); +#ifdef HAVE_PULSE_1_0 + pa_context_set_subscribe_callback (pulsesrc->context, + gst_pulsesrc_context_subscribe_cb, pulsesrc); +#endif GST_DEBUG_OBJECT (pulsesrc, "connect to server %s", GST_STR_NULL (pulsesrc->server)); @@ -727,6 +1111,13 @@ gst_pulsesrc_read (GstAudioSrc * asrc, gpointer data, guint length) pa_threaded_mainloop_lock (pulsesrc->mainloop); pulsesrc->in_read = TRUE; +#ifdef HAVE_PULSE_1_0 + if (g_atomic_int_compare_and_exchange (&pulsesrc->notify, 1, 0)) { + g_object_notify (G_OBJECT (pulsesrc), "volume"); + g_object_notify (G_OBJECT (pulsesrc), "mute"); + } +#endif + if (pulsesrc->paused) goto was_paused; @@ -839,7 +1230,7 @@ gst_pulsesrc_delay (GstAudioSrc * asrc) pa_threaded_mainloop_unlock (pulsesrc->mainloop); - if (res > 0) { + if (res < 0) { GST_DEBUG_OBJECT (pulsesrc, "could not get latency"); result = 0; } else { @@ -1026,9 +1417,27 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec) pa_buffer_attr wanted; const pa_buffer_attr *actual; GstPulseSrc *pulsesrc = GST_PULSESRC_CAST (asrc); + pa_stream_flags_t flags; +#ifdef HAVE_PULSE_1_0 + pa_operation *o; +#endif pa_threaded_mainloop_lock (pulsesrc->mainloop); +#ifdef HAVE_PULSE_1_0 + /* enable event notifications */ + GST_LOG_OBJECT (pulsesrc, "subscribing to context events"); + if (!(o = pa_context_subscribe (pulsesrc->context, + PA_SUBSCRIPTION_MASK_SINK_INPUT, NULL, NULL))) { + GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, + ("pa_context_subscribe() failed: %s", + pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); + goto unlock_and_fail; + } + + pa_operation_unref (o); +#endif + wanted.maxlength = -1; wanted.tlength = -1; wanted.prebuf = 0; @@ -1041,13 +1450,17 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec) GST_INFO_OBJECT (pulsesrc, "minreq: %d", wanted.minreq); GST_INFO_OBJECT (pulsesrc, "fragsize: %d", wanted.fragsize); - if (pa_stream_connect_record (pulsesrc->stream, pulsesrc->device, &wanted, - PA_STREAM_INTERPOLATE_TIMING | - PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_NOT_MONOTONOUS | -#ifdef HAVE_PULSE_0_9_11 - PA_STREAM_ADJUST_LATENCY | + flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | + PA_STREAM_NOT_MONOTONIC | PA_STREAM_ADJUST_LATENCY | + PA_STREAM_START_CORKED; + +#ifdef HAVE_PULSE_1_0 + if (pulsesrc->mute_set && pulsesrc->mute) + flags |= PA_STREAM_START_MUTED; #endif - PA_STREAM_START_CORKED) < 0) { + + if (pa_stream_connect_record (pulsesrc->stream, pulsesrc->device, &wanted, + flags) < 0) { GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED, ("Failed to connect stream: %s", pa_strerror (pa_context_errno (pulsesrc->context))), (NULL)); @@ -1075,6 +1488,17 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc, GstRingBufferSpec * spec) pa_threaded_mainloop_wait (pulsesrc->mainloop); } + /* store the source output index so it can be accessed via a property */ + pulsesrc->source_output_idx = pa_stream_get_index (pulsesrc->stream); + g_object_notify (G_OBJECT (pulsesrc), "source-output-index"); + +#ifdef HAVE_PULSE_1_0 + if (pulsesrc->volume_set) { + gst_pulsesrc_set_stream_volume (pulsesrc, pulsesrc->volume); + pulsesrc->volume_set = FALSE; + } +#endif + /* get the actual buffering properties now */ actual = pa_stream_get_buffer_attr (pulsesrc->stream); @@ -1253,10 +1677,13 @@ gst_pulsesrc_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: - this->mainloop = pa_threaded_mainloop_new (); - g_assert (this->mainloop); - - pa_threaded_mainloop_start (this->mainloop); + if (!(this->mainloop = pa_threaded_mainloop_new ())) + goto mainloop_failed; + if (pa_threaded_mainloop_start (this->mainloop) < 0) { + pa_threaded_mainloop_free (this->mainloop); + this->mainloop = NULL; + goto mainloop_start_failed; + } if (!this->mixer) this->mixer = @@ -1306,4 +1733,18 @@ gst_pulsesrc_change_state (GstElement * element, GstStateChange transition) } return ret; + + /* ERRORS */ +mainloop_failed: + { + GST_ELEMENT_ERROR (this, RESOURCE, FAILED, + ("pa_threaded_mainloop_new() failed"), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +mainloop_start_failed: + { + GST_ELEMENT_ERROR (this, RESOURCE, FAILED, + ("pa_threaded_mainloop_start() failed"), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } } diff --git a/ext/pulse/pulsesrc.h b/ext/pulse/pulsesrc.h index 6e6322b..655417f 100644 --- a/ext/pulse/pulsesrc.h +++ b/ext/pulse/pulsesrc.h @@ -61,6 +61,7 @@ struct _GstPulseSrc pa_context *context; pa_stream *stream; + guint32 source_output_idx; pa_sample_spec sample_spec; @@ -71,6 +72,15 @@ struct _GstPulseSrc GstPulseMixerCtrl *mixer; GstPulseProbe *probe; +#ifdef HAVE_PULSE_1_0 + gdouble volume; + gboolean volume_set:1; + gboolean mute:1; + gboolean mute_set:1; + + gint notify; /* atomic */ +#endif + gboolean corked:1; gboolean operation_success:1; gboolean paused:1; diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c index c779e1a..0d8af79 100644 --- a/ext/pulse/pulseutil.c +++ b/ext/pulse/pulseutil.c @@ -98,7 +98,6 @@ gst_pulse_fill_sample_spec (GstRingBufferSpec * spec, pa_sample_spec * ss) ss->format = PA_SAMPLE_S32LE; else if (spec->format == GST_S32_BE && spec->width == 32) ss->format = PA_SAMPLE_S32BE; -#ifdef HAVE_PULSE_0_9_15 else if (spec->format == GST_S24_3LE && spec->width == 24) ss->format = PA_SAMPLE_S24LE; else if (spec->format == GST_S24_3BE && spec->width == 24) @@ -107,7 +106,6 @@ gst_pulse_fill_sample_spec (GstRingBufferSpec * spec, pa_sample_spec * ss) ss->format = PA_SAMPLE_S24_32LE; else if (spec->format == GST_S24_BE && spec->width == 32) ss->format = PA_SAMPLE_S24_32BE; -#endif else return FALSE; @@ -120,6 +118,94 @@ gst_pulse_fill_sample_spec (GstRingBufferSpec * spec, pa_sample_spec * ss) return TRUE; } +#ifdef HAVE_PULSE_1_0 +gboolean +gst_pulse_fill_format_info (GstRingBufferSpec * spec, pa_format_info ** f, + guint * channels) +{ + pa_format_info *format; + pa_sample_format_t sf = PA_SAMPLE_INVALID; + + format = pa_format_info_new (); + + if (spec->format == GST_MU_LAW && spec->width == 8) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_ULAW; + } else if (spec->format == GST_A_LAW && spec->width == 8) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_ALAW; + } else if (spec->format == GST_U8 && spec->width == 8) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_U8; + } else if (spec->format == GST_S16_LE && spec->width == 16) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S16LE; + } else if (spec->format == GST_S16_BE && spec->width == 16) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S16BE; + } else if (spec->format == GST_FLOAT32_LE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_FLOAT32LE; + } else if (spec->format == GST_FLOAT32_BE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_FLOAT32BE; + } else if (spec->format == GST_S32_LE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S32LE; + } else if (spec->format == GST_S32_BE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S32BE; + } else if (spec->format == GST_S24_3LE && spec->width == 24) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S24LE; + } else if (spec->format == GST_S24_3BE && spec->width == 24) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S24BE; + } else if (spec->format == GST_S24_LE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S24_32LE; + } else if (spec->format == GST_S24_BE && spec->width == 32) { + format->encoding = PA_ENCODING_PCM; + sf = PA_SAMPLE_S24_32BE; + } else if (spec->format == GST_AC3) { + format->encoding = PA_ENCODING_AC3_IEC61937; + } else if (spec->format == GST_EAC3) { + format->encoding = PA_ENCODING_EAC3_IEC61937; + } else if (spec->format == GST_DTS) { + format->encoding = PA_ENCODING_DTS_IEC61937; + } else if (spec->format == GST_MPEG) { + format->encoding = PA_ENCODING_MPEG_IEC61937; + } else { + goto fail; + } + + if (format->encoding == PA_ENCODING_PCM) { + pa_format_info_set_sample_format (format, sf); + pa_format_info_set_channels (format, spec->channels); + } + + pa_format_info_set_rate (format, spec->rate); + + if (!pa_format_info_valid (format)) + goto fail; + + *f = format; + *channels = spec->channels; + + return TRUE; + +fail: + if (format) + pa_format_info_free (format); + return FALSE; +} +#endif + +/* PATH_MAX is not defined everywhere, e.g. on GNU Hurd */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + gchar * gst_pulse_client_name (void) { diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h index 75b3112..4adfeb1 100644 --- a/ext/pulse/pulseutil.h +++ b/ext/pulse/pulseutil.h @@ -22,12 +22,20 @@ #ifndef __GST_PULSEUTIL_H__ #define __GST_PULSEUTIL_H__ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include gboolean gst_pulse_fill_sample_spec (GstRingBufferSpec * spec, pa_sample_spec * ss); +#ifdef HAVE_PULSE_1_0 +gboolean gst_pulse_fill_format_info (GstRingBufferSpec * spec, + pa_format_info ** f, guint * channels); +#endif gchar *gst_pulse_client_name (void); @@ -41,22 +49,4 @@ void gst_pulse_cvolume_from_linear (pa_cvolume *v, unsigned channels, gdouble vo pa_proplist *gst_pulse_make_proplist (const GstStructure *properties); -#if !HAVE_PULSE_0_9_11 -static inline int PA_CONTEXT_IS_GOOD(pa_context_state_t x) { - return - x == PA_CONTEXT_CONNECTING || - x == PA_CONTEXT_AUTHORIZING || - x == PA_CONTEXT_SETTING_NAME || - x == PA_CONTEXT_READY; -} - -/** Return non-zero if the passed state is one of the connected states */ -static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) { - return - x == PA_STREAM_CREATING || - x == PA_STREAM_READY; -} - -#endif - #endif diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in index 34f1630..0b4e7ac 100644 --- a/ext/raw1394/Makefile.in +++ b/ext/raw1394/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +121,8 @@ am_libgst1394_la_OBJECTS = libgst1394_la-gst1394.lo \ libgst1394_la-gst1394probe.lo libgst1394_la-gstdv1394src.lo \ $(am__objects_1) libgst1394_la-gst1394clock.lo libgst1394_la_OBJECTS = $(am_libgst1394_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgst1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgst1394_la_SOURCES) DIST_SOURCES = $(am__libgst1394_la_SOURCES_DIST) @@ -232,7 +237,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -307,7 +315,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -331,6 +338,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -365,18 +373,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -429,6 +429,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -463,7 +464,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -575,7 +575,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgst1394.la: $(libgst1394_la_OBJECTS) $(libgst1394_la_DEPENDENCIES) +libgst1394.la: $(libgst1394_la_OBJECTS) $(libgst1394_la_DEPENDENCIES) $(EXTRA_libgst1394_la_DEPENDENCIES) $(AM_V_CCLD)$(libgst1394_la_LINK) -rpath $(plugindir) $(libgst1394_la_OBJECTS) $(libgst1394_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -593,66 +593,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgst1394_la-gst1394.lo: gst1394.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394.Tpo -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394.Tpo $(DEPDIR)/libgst1394_la-gst1394.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst1394.c' object='libgst1394_la-gst1394.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst1394.c' object='libgst1394_la-gst1394.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394.lo `test -f 'gst1394.c' || echo '$(srcdir)/'`gst1394.c libgst1394_la-gst1394probe.lo: gst1394probe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394probe.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394probe.Tpo -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394probe.Tpo $(DEPDIR)/libgst1394_la-gst1394probe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst1394probe.c' object='libgst1394_la-gst1394probe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst1394probe.c' object='libgst1394_la-gst1394probe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394probe.lo `test -f 'gst1394probe.c' || echo '$(srcdir)/'`gst1394probe.c libgst1394_la-gstdv1394src.lo: gstdv1394src.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gstdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gstdv1394src.Tpo -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gstdv1394src.Tpo $(DEPDIR)/libgst1394_la-gstdv1394src.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdv1394src.c' object='libgst1394_la-gstdv1394src.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdv1394src.c' object='libgst1394_la-gstdv1394src.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gstdv1394src.lo `test -f 'gstdv1394src.c' || echo '$(srcdir)/'`gstdv1394src.c libgst1394_la-gsthdv1394src.lo: gsthdv1394src.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gsthdv1394src.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gsthdv1394src.Tpo -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gsthdv1394src.Tpo $(DEPDIR)/libgst1394_la-gsthdv1394src.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsthdv1394src.c' object='libgst1394_la-gsthdv1394src.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsthdv1394src.c' object='libgst1394_la-gsthdv1394src.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gsthdv1394src.lo `test -f 'gsthdv1394src.c' || echo '$(srcdir)/'`gsthdv1394src.c libgst1394_la-gst1394clock.lo: gst1394clock.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -MT libgst1394_la-gst1394clock.lo -MD -MP -MF $(DEPDIR)/libgst1394_la-gst1394clock.Tpo -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgst1394_la-gst1394clock.Tpo $(DEPDIR)/libgst1394_la-gst1394clock.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst1394clock.c' object='libgst1394_la-gst1394clock.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst1394clock.c' object='libgst1394_la-gst1394clock.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgst1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgst1394_la_CFLAGS) $(CFLAGS) -c -o libgst1394_la-gst1394clock.lo `test -f 'gst1394clock.c' || echo '$(srcdir)/'`gst1394clock.c mostlyclean-libtool: -rm -f *.lo @@ -759,10 +751,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/raw1394/gst1394clock.c b/ext/raw1394/gst1394clock.c index b7d4a8f..0505c8c 100644 --- a/ext/raw1394/gst1394clock.c +++ b/ext/raw1394/gst1394clock.c @@ -113,6 +113,7 @@ gst_1394_clock_get_internal_time (GstClock * clock) _1394clock = GST_1394_CLOCK_CAST (clock); if (_1394clock->handle != NULL) { + GST_OBJECT_LOCK (clock); raw1394_read_cycle_timer (_1394clock->handle, &cycle_timer, &local_time); if (cycle_timer < _1394clock->cycle_timer_lo) { @@ -130,6 +131,7 @@ gst_1394_clock_get_internal_time (GstClock * clock) result += (((cycle_timer >> 12) & 0x1fff) * 125) * GST_USECOND; GST_LOG_OBJECT (clock, "result %" GST_TIME_FORMAT, GST_TIME_ARGS (result)); + GST_OBJECT_UNLOCK (clock); } else { result = GST_CLOCK_TIME_NONE; } diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c index a175b62..1a3cae6 100644 --- a/ext/raw1394/gstdv1394src.c +++ b/ext/raw1394/gstdv1394src.c @@ -170,8 +170,7 @@ gst_dv1394src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "Firewire (1394) DV video source", "Source/Video", diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c index 70b602b..33ef11e 100644 --- a/ext/raw1394/gsthdv1394src.c +++ b/ext/raw1394/gsthdv1394src.c @@ -140,8 +140,7 @@ gst_hdv1394src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "Firewire (1394) HDV video source", "Source/Video", diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in index 1c327be..cebe633 100644 --- a/ext/shout2/Makefile.in +++ b/ext/shout2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstshout2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstshout2_la_OBJECTS = libgstshout2_la-gstshout2.lo libgstshout2_la_OBJECTS = $(am_libgstshout2_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstshout2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstshout2_la_SOURCES) DIST_SOURCES = $(libgstshout2_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +548,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstshout2.la: $(libgstshout2_la_OBJECTS) $(libgstshout2_la_DEPENDENCIES) +libgstshout2.la: $(libgstshout2_la_OBJECTS) $(libgstshout2_la_DEPENDENCIES) $(EXTRA_libgstshout2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstshout2_la_LINK) -rpath $(plugindir) $(libgstshout2_la_OBJECTS) $(libgstshout2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +562,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstshout2_la-gstshout2.lo: gstshout2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -MT libgstshout2_la-gstshout2.lo -MD -MP -MF $(DEPDIR)/libgstshout2_la-gstshout2.Tpo -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshout2_la-gstshout2.Tpo $(DEPDIR)/libgstshout2_la-gstshout2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshout2.c' object='libgstshout2_la-gstshout2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshout2.c' object='libgstshout2_la-gstshout2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshout2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshout2_la_CFLAGS) $(CFLAGS) -c -o libgstshout2_la-gstshout2.lo `test -f 'gstshout2.c' || echo '$(srcdir)/'`gstshout2.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +692,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c index 9a6363b..c1bfcc2 100644 --- a/ext/shout2/gstshout2.c +++ b/ext/shout2/gstshout2.c @@ -1,6 +1,7 @@ /* GStreamer * Copyright (C) <1999> Erik Walthinsen * Copyright (C) <2006> Tim-Philipp Müller + * Copyright (C) <2012> Ralph Giles * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -70,12 +71,17 @@ enum static GstElementClass *parent_class = NULL; +#ifdef SHOUT_FORMAT_WEBM +#define WEBM_CAPS "; video/webm" +#else +#define WEBM_CAPS "" +#endif static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/ogg; " - "audio/mpeg, mpegversion = (int) 1, layer = (int) [ 1, 3 ]") - ); + "audio/mpeg, mpegversion = (int) 1, layer = (int) [ 1, 3 ]" WEBM_CAPS)); + static void gst_shout2send_class_init (GstShout2sendClass * klass); static void gst_shout2send_base_init (GstShout2sendClass * klass); static void gst_shout2send_init (GstShout2send * shout2send); @@ -160,8 +166,7 @@ gst_shout2send_base_init (GstShout2sendClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_set_details_simple (element_class, "Icecast network sink", "Sink/Network", "Sends data to an icecast server", "Wim Taymans , " @@ -538,9 +543,14 @@ set_failed: static gboolean gst_shout2send_connect (GstShout2send * sink) { - GST_DEBUG_OBJECT (sink, "Connection format is: %s", + const char *format = (sink->audio_format == SHOUT_FORMAT_VORBIS) ? "vorbis" : - ((sink->audio_format == SHOUT_FORMAT_MP3) ? "mp3" : "unknown")); + ((sink->audio_format == SHOUT_FORMAT_MP3) ? "mp3" : "unknown"); +#ifdef SHOUT_FORMAT_WEBM + if (sink->audio_format == SHOUT_FORMAT_WEBM) + format = "webm"; +#endif + GST_DEBUG_OBJECT (sink, "Connection format is: %s", format); if (shout_set_format (sink->conn, sink->audio_format) != SHOUTERR_SUCCESS) goto could_not_set_format; @@ -810,6 +820,10 @@ gst_shout2send_setcaps (GstPad * pad, GstCaps * caps) shout2send->audio_format = SHOUT_FORMAT_MP3; } else if (!strcmp (mimetype, "application/ogg")) { shout2send->audio_format = SHOUT_FORMAT_VORBIS; +#ifdef SHOUT_FORMAT_WEBM + } else if (!strcmp (mimetype, "video/webm")) { + shout2send->audio_format = SHOUT_FORMAT_WEBM; +#endif } else { ret = FALSE; } diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am index 9488519..6916b17 100644 --- a/ext/soup/Makefile.am +++ b/ext/soup/Makefile.am @@ -1,10 +1,10 @@ plugin_LTLIBRARIES = libgstsouphttpsrc.la -libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c +libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(SOUP_LIBS) libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstsouphttpsrc.h +noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in index bb30ad5..bbb13ad 100644 --- a/ext/soup/Makefile.in +++ b/ext/soup/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,16 +102,24 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstsouphttpsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstsouphttpsrc_la_OBJECTS = \ - libgstsouphttpsrc_la-gstsouphttpsrc.lo + libgstsouphttpsrc_la-gstsouphttpsrc.lo \ + libgstsouphttpsrc_la-gstsouphttpclientsink.lo \ + libgstsouphttpsrc_la-gstsoup.lo libgstsouphttpsrc_la_OBJECTS = $(am_libgstsouphttpsrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsouphttpsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -128,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsouphttpsrc_la_SOURCES) DIST_SOURCES = $(libgstsouphttpsrc_la_SOURCES) @@ -225,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -478,12 +480,12 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstsouphttpsrc.la -libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c +libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(SOUP_CFLAGS) libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(SOUP_LIBS) libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstsouphttpsrc.h +noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h all: all-am .SUFFIXES: @@ -549,7 +551,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsouphttpsrc.la: $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_DEPENDENCIES) +libgstsouphttpsrc.la: $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_DEPENDENCIES) $(EXTRA_libgstsouphttpsrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsouphttpsrc_la_LINK) -rpath $(plugindir) $(libgstsouphttpsrc_la_OBJECTS) $(libgstsouphttpsrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -558,39 +560,51 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpclientsink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpsrc.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsouphttpsrc_la-gstsouphttpsrc.lo: gstsouphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstsouphttpsrc_la-gstsouphttpsrc.lo -MD -MP -MF $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpsrc.Tpo -c -o libgstsouphttpsrc_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpsrc.Tpo $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsouphttpsrc.c' object='libgstsouphttpsrc_la-gstsouphttpsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsouphttpsrc.c' object='libgstsouphttpsrc_la-gstsouphttpsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsouphttpsrc.lo `test -f 'gstsouphttpsrc.c' || echo '$(srcdir)/'`gstsouphttpsrc.c + +libgstsouphttpsrc_la-gstsouphttpclientsink.lo: gstsouphttpclientsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstsouphttpsrc_la-gstsouphttpclientsink.lo -MD -MP -MF $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpclientsink.Tpo -c -o libgstsouphttpsrc_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpclientsink.Tpo $(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpclientsink.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsouphttpclientsink.c' object='libgstsouphttpsrc_la-gstsouphttpclientsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c + +libgstsouphttpsrc_la-gstsoup.lo: gstsoup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstsouphttpsrc_la-gstsoup.lo -MD -MP -MF $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Tpo -c -o libgstsouphttpsrc_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Tpo $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsoup.c' object='libgstsouphttpsrc_la-gstsoup.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c mostlyclean-libtool: -rm -f *.lo @@ -697,10 +711,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/soup/gstsoup.c b/ext/soup/gstsoup.c new file mode 100644 index 0000000..de71df8 --- /dev/null +++ b/ext/soup/gstsoup.c @@ -0,0 +1,47 @@ +/* GStreamer + * Copyright (C) 2007-2008 Wouter Cloetens + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstsouphttpsrc.h" +#include "gstsouphttpclientsink.h" + + +static gboolean +plugin_init (GstPlugin * plugin) +{ +#ifdef ENABLE_NLS + GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE, + LOCALEDIR); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); +#endif + + gst_element_register (plugin, "souphttpsrc", GST_RANK_PRIMARY, + GST_TYPE_SOUP_HTTP_SRC); + gst_element_register (plugin, "souphttpclientsink", GST_RANK_NONE, + GST_TYPE_SOUP_HTTP_CLIENT_SINK); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "soup", + "libsoup HTTP client src/sink", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/soup/gstsouphttpclientsink.c b/ext/soup/gstsouphttpclientsink.c new file mode 100644 index 0000000..dc9e941 --- /dev/null +++ b/ext/soup/gstsouphttpclientsink.c @@ -0,0 +1,765 @@ +/* GStreamer + * Copyright (C) 2011 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Suite 500, + * Boston, MA 02110-1335, USA. + */ +/** + * SECTION:element-gstsouphttpclientsink + * + * The souphttpclientsink element sends pipeline data to an HTTP server + * using HTTP PUT commands. + * + * + * Example launch line + * |[ + * gst-launch -v videotestsrc num-buffers=300 ! theoraenc ! oggmux ! + * souphttpclientsink location=http://server/filename.ogv + * ]| + * + * This example encodes 10 seconds of video and sends it to the HTTP + * server "server" using HTTP PUT commands. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "gstsouphttpclientsink.h" + +#include + +GST_DEBUG_CATEGORY_STATIC (souphttpclientsink_dbg); +#define GST_CAT_DEFAULT souphttpclientsink_dbg + +/* prototypes */ + + +static void gst_soup_http_client_sink_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_soup_http_client_sink_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_soup_http_client_sink_dispose (GObject * object); +static void gst_soup_http_client_sink_finalize (GObject * object); + +static gboolean gst_soup_http_client_sink_set_caps (GstBaseSink * sink, + GstCaps * caps); +static void gst_soup_http_client_sink_get_times (GstBaseSink * sink, + GstBuffer * buffer, GstClockTime * start, GstClockTime * end); +static gboolean gst_soup_http_client_sink_start (GstBaseSink * sink); +static gboolean gst_soup_http_client_sink_stop (GstBaseSink * sink); +static gboolean gst_soup_http_client_sink_unlock (GstBaseSink * sink); +static gboolean gst_soup_http_client_sink_event (GstBaseSink * sink, + GstEvent * event); +static GstFlowReturn gst_soup_http_client_sink_preroll (GstBaseSink * sink, + GstBuffer * buffer); +static GstFlowReturn gst_soup_http_client_sink_render (GstBaseSink * sink, + GstBuffer * buffer); + +static void free_buffer_list (GList * list); +static void gst_soup_http_client_sink_reset (GstSoupHttpClientSink * + souphttpsink); +static void authenticate (SoupSession * session, SoupMessage * msg, + SoupAuth * auth, gboolean retrying, gpointer user_data); +static void callback (SoupSession * session, SoupMessage * msg, + gpointer user_data); +static gboolean gst_soup_http_client_sink_set_proxy (GstSoupHttpClientSink * + souphttpsink, const gchar * uri); + +enum +{ + PROP_0, + PROP_LOCATION, + PROP_USER_AGENT, + PROP_AUTOMATIC_REDIRECT, + PROP_PROXY, + PROP_USER_ID, + PROP_USER_PW, + PROP_PROXY_ID, + PROP_PROXY_PW, + PROP_COOKIES, + PROP_SESSION +}; + +#define DEFAULT_USER_AGENT "GStreamer souphttpclientsink " + +/* pad templates */ + +static GstStaticPadTemplate gst_soup_http_client_sink_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (souphttpclientsink_dbg, "souphttpclientsink", 0, \ + "souphttpclientsink element"); + +GST_BOILERPLATE_FULL (GstSoupHttpClientSink, gst_soup_http_client_sink, + GstBaseSink, GST_TYPE_BASE_SINK, DEBUG_INIT); + +static void +gst_soup_http_client_sink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_static_pad_template (element_class, + &gst_soup_http_client_sink_sink_template); + + gst_element_class_set_details_simple (element_class, "HTTP client sink", + "Generic", "Sends streams to HTTP server via PUT", + "David Schleef "); +} + +static void +gst_soup_http_client_sink_class_init (GstSoupHttpClientSinkClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSinkClass *base_sink_class = GST_BASE_SINK_CLASS (klass); + + gobject_class->set_property = gst_soup_http_client_sink_set_property; + gobject_class->get_property = gst_soup_http_client_sink_get_property; + gobject_class->dispose = gst_soup_http_client_sink_dispose; + gobject_class->finalize = gst_soup_http_client_sink_finalize; + base_sink_class->set_caps = + GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_set_caps); + if (0) + base_sink_class->get_times = + GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_get_times); + base_sink_class->start = GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_start); + base_sink_class->stop = GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_stop); + base_sink_class->unlock = + GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_unlock); + base_sink_class->event = GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_event); + if (0) + base_sink_class->preroll = + GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_preroll); + base_sink_class->render = + GST_DEBUG_FUNCPTR (gst_soup_http_client_sink_render); + + g_object_class_install_property (gobject_class, + PROP_LOCATION, + g_param_spec_string ("location", "Location", + "URI to send to", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_USER_AGENT, + g_param_spec_string ("user-agent", "User-Agent", + "Value of the User-Agent HTTP request header field", + DEFAULT_USER_AGENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_AUTOMATIC_REDIRECT, + g_param_spec_boolean ("automatic-redirect", "automatic-redirect", + "Automatically follow HTTP redirects (HTTP Status Code 3xx)", + TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_PROXY, + g_param_spec_string ("proxy", "Proxy", + "HTTP proxy server URI", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_USER_ID, + g_param_spec_string ("user-id", "user-id", + "user id for authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USER_PW, + g_param_spec_string ("user-pw", "user-pw", + "user password for authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY_ID, + g_param_spec_string ("proxy-id", "proxy-id", + "user id for proxy authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY_PW, + g_param_spec_string ("proxy-pw", "proxy-pw", + "user password for proxy authentication", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_SESSION, + g_param_spec_object ("session", "session", + "SoupSession object to use for communication", + SOUP_TYPE_SESSION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_COOKIES, + g_param_spec_boxed ("cookies", "Cookies", "HTTP request cookies", + G_TYPE_STRV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + +} + +static void +gst_soup_http_client_sink_init (GstSoupHttpClientSink * souphttpsink, + GstSoupHttpClientSinkClass * souphttpsink_class) +{ + const char *proxy; + + souphttpsink->mutex = g_mutex_new (); + souphttpsink->cond = g_cond_new (); + + souphttpsink->location = NULL; + souphttpsink->automatic_redirect = TRUE; + souphttpsink->user_agent = g_strdup (DEFAULT_USER_AGENT); + souphttpsink->user_id = NULL; + souphttpsink->user_pw = NULL; + souphttpsink->proxy_id = NULL; + souphttpsink->proxy_pw = NULL; + souphttpsink->prop_session = NULL; + souphttpsink->timeout = 1; + proxy = g_getenv ("http_proxy"); + if (proxy && !gst_soup_http_client_sink_set_proxy (souphttpsink, proxy)) { + GST_WARNING_OBJECT (souphttpsink, + "The proxy in the http_proxy env var (\"%s\") cannot be parsed.", + proxy); + } + + gst_soup_http_client_sink_reset (souphttpsink); +} + +static void +gst_soup_http_client_sink_reset (GstSoupHttpClientSink * souphttpsink) +{ + g_free (souphttpsink->reason_phrase); + souphttpsink->reason_phrase = NULL; + souphttpsink->status_code = 0; + souphttpsink->offset = 0; + +} + +static gboolean +gst_soup_http_client_sink_set_proxy (GstSoupHttpClientSink * souphttpsink, + const gchar * uri) +{ + if (souphttpsink->proxy) { + soup_uri_free (souphttpsink->proxy); + souphttpsink->proxy = NULL; + } + if (g_str_has_prefix (uri, "http://")) { + souphttpsink->proxy = soup_uri_new (uri); + } else { + gchar *new_uri = g_strconcat ("http://", uri, NULL); + + souphttpsink->proxy = soup_uri_new (new_uri); + g_free (new_uri); + } + + return TRUE; +} + +void +gst_soup_http_client_sink_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (object); + + g_mutex_lock (souphttpsink->mutex); + switch (property_id) { + case PROP_SESSION: + if (souphttpsink->prop_session) { + g_object_unref (souphttpsink->prop_session); + } + souphttpsink->prop_session = g_value_dup_object (value); + break; + case PROP_LOCATION: + g_free (souphttpsink->location); + souphttpsink->location = g_value_dup_string (value); + souphttpsink->offset = 0; + break; + case PROP_USER_AGENT: + g_free (souphttpsink->user_agent); + souphttpsink->user_agent = g_value_dup_string (value); + break; + case PROP_AUTOMATIC_REDIRECT: + souphttpsink->automatic_redirect = g_value_get_boolean (value); + break; + case PROP_USER_ID: + g_free (souphttpsink->user_id); + souphttpsink->user_id = g_value_dup_string (value); + break; + case PROP_USER_PW: + g_free (souphttpsink->user_pw); + souphttpsink->user_pw = g_value_dup_string (value); + break; + case PROP_PROXY_ID: + g_free (souphttpsink->proxy_id); + souphttpsink->proxy_id = g_value_dup_string (value); + break; + case PROP_PROXY_PW: + g_free (souphttpsink->proxy_pw); + souphttpsink->proxy_pw = g_value_dup_string (value); + break; + case PROP_PROXY: + { + const gchar *proxy; + + proxy = g_value_get_string (value); + + if (proxy == NULL) { + GST_WARNING ("proxy property cannot be NULL"); + goto done; + } + if (!gst_soup_http_client_sink_set_proxy (souphttpsink, proxy)) { + GST_WARNING ("badly formatted proxy URI"); + goto done; + } + break; + } + case PROP_COOKIES: + g_strfreev (souphttpsink->cookies); + souphttpsink->cookies = g_strdupv (g_value_get_boxed (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +done: + g_mutex_unlock (souphttpsink->mutex); +} + +void +gst_soup_http_client_sink_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (object); + + switch (property_id) { + case PROP_SESSION: + g_value_set_object (value, souphttpsink->prop_session); + break; + case PROP_LOCATION: + g_value_set_string (value, souphttpsink->location); + break; + case PROP_AUTOMATIC_REDIRECT: + g_value_set_boolean (value, souphttpsink->automatic_redirect); + break; + case PROP_USER_AGENT: + g_value_set_string (value, souphttpsink->user_agent); + break; + case PROP_USER_ID: + g_value_set_string (value, souphttpsink->user_id); + break; + case PROP_USER_PW: + g_value_set_string (value, souphttpsink->user_pw); + break; + case PROP_PROXY_ID: + g_value_set_string (value, souphttpsink->proxy_id); + break; + case PROP_PROXY_PW: + g_value_set_string (value, souphttpsink->proxy_pw); + break; + case PROP_PROXY: + if (souphttpsink->proxy == NULL) + g_value_set_static_string (value, ""); + else { + char *proxy = soup_uri_to_string (souphttpsink->proxy, FALSE); + + g_value_set_string (value, proxy); + g_free (proxy); + } + break; + case PROP_COOKIES: + g_value_set_boxed (value, g_strdupv (souphttpsink->cookies)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_soup_http_client_sink_dispose (GObject * object) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (object); + + /* clean up as possible. may be called multiple times */ + if (souphttpsink->prop_session) + g_object_unref (souphttpsink->prop_session); + souphttpsink->prop_session = NULL; + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_soup_http_client_sink_finalize (GObject * object) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (object); + + /* clean up object here */ + + g_free (souphttpsink->user_agent); + g_free (souphttpsink->user_id); + g_free (souphttpsink->user_pw); + g_free (souphttpsink->proxy_id); + g_free (souphttpsink->proxy_pw); + if (souphttpsink->proxy) + soup_uri_free (souphttpsink->proxy); + g_free (souphttpsink->location); + + g_cond_free (souphttpsink->cond); + g_mutex_free (souphttpsink->mutex); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + + + +static gboolean +gst_soup_http_client_sink_set_caps (GstBaseSink * sink, GstCaps * caps) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (sink); + GstStructure *structure; + const GValue *value_array; + int i, n; + + structure = gst_caps_get_structure (caps, 0); + value_array = gst_structure_get_value (structure, "streamheader"); + if (value_array) { + free_buffer_list (souphttpsink->streamheader_buffers); + souphttpsink->streamheader_buffers = NULL; + + n = gst_value_array_get_size (value_array); + for (i = 0; i < n; i++) { + const GValue *value; + GstBuffer *buffer; + value = gst_value_array_get_value (value_array, i); + buffer = GST_BUFFER (gst_value_get_buffer (value)); + souphttpsink->streamheader_buffers = + g_list_append (souphttpsink->streamheader_buffers, + gst_buffer_ref (buffer)); + } + } + + return TRUE; +} + +static void +gst_soup_http_client_sink_get_times (GstBaseSink * sink, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + +} + +static gboolean +thread_ready_idle_cb (gpointer data) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (data); + + GST_LOG_OBJECT (souphttpsink, "thread ready"); + + g_mutex_lock (souphttpsink->mutex); + g_cond_signal (souphttpsink->cond); + g_mutex_unlock (souphttpsink->mutex); + + return FALSE; /* only run once */ +} + +static gpointer +thread_func (gpointer ptr) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (ptr); + + GST_DEBUG ("thread start"); + + g_main_loop_run (souphttpsink->loop); + + GST_DEBUG ("thread quit"); + + return NULL; +} + +static gboolean +gst_soup_http_client_sink_start (GstBaseSink * sink) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (sink); + + if (souphttpsink->prop_session) { + souphttpsink->session = souphttpsink->prop_session; + } else { + GSource *source; + GError *error = NULL; + + souphttpsink->context = g_main_context_new (); + + /* set up idle source to signal when the main loop is running and + * it's safe for ::stop() to call g_main_loop_quit() */ + source = g_idle_source_new (); + g_source_set_callback (source, thread_ready_idle_cb, sink, NULL); + g_source_attach (source, souphttpsink->context); + g_source_unref (source); + + souphttpsink->loop = g_main_loop_new (souphttpsink->context, TRUE); + + g_mutex_lock (souphttpsink->mutex); + + /* FIXME: error handling */ +#if !GLIB_CHECK_VERSION (2, 31, 0) + souphttpsink->thread = g_thread_create (thread_func, souphttpsink, + TRUE, &error); +#else + souphttpsink->thread = g_thread_try_new ("souphttpclientsink-thread", + thread_func, souphttpsink, &error); +#endif + + GST_LOG_OBJECT (souphttpsink, "waiting for main loop thread to start up"); + g_cond_wait (souphttpsink->cond, souphttpsink->mutex); + g_mutex_unlock (souphttpsink->mutex); + GST_LOG_OBJECT (souphttpsink, "main loop thread running"); + + souphttpsink->session = + soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, + souphttpsink->context, SOUP_SESSION_USER_AGENT, + souphttpsink->user_agent, SOUP_SESSION_TIMEOUT, souphttpsink->timeout, + NULL); + + //soup_session_add_feature (souphttpsink->session, + // SOUP_SESSION_FEATURE (soup_logger_new (SOUP_LOGGER_LOG_BODY, 100))); + + g_signal_connect (souphttpsink->session, "authenticate", + G_CALLBACK (authenticate), souphttpsink); + } + + return TRUE; +} + +static gboolean +gst_soup_http_client_sink_stop (GstBaseSink * sink) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (sink); + + GST_DEBUG ("stop"); + + if (souphttpsink->prop_session == NULL) { + soup_session_abort (souphttpsink->session); + g_object_unref (souphttpsink->session); + } + + if (souphttpsink->loop) { + g_main_loop_quit (souphttpsink->loop); + g_thread_join (souphttpsink->thread); + g_main_loop_unref (souphttpsink->loop); + souphttpsink->loop = NULL; + } + if (souphttpsink->context) { + g_main_context_unref (souphttpsink->context); + souphttpsink->context = NULL; + } + + gst_soup_http_client_sink_reset (souphttpsink); + + return TRUE; +} + +static gboolean +gst_soup_http_client_sink_unlock (GstBaseSink * sink) +{ + GST_DEBUG ("unlock"); + + return TRUE; +} + +static gboolean +gst_soup_http_client_sink_event (GstBaseSink * sink, GstEvent * event) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (sink); + + GST_DEBUG_OBJECT (souphttpsink, "event"); + + if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) { + GST_DEBUG_OBJECT (souphttpsink, "got eos"); + g_mutex_lock (souphttpsink->mutex); + while (souphttpsink->message) { + GST_DEBUG_OBJECT (souphttpsink, "waiting"); + g_cond_wait (souphttpsink->cond, souphttpsink->mutex); + } + g_mutex_unlock (souphttpsink->mutex); + GST_DEBUG_OBJECT (souphttpsink, "finished eos"); + } + + return TRUE; +} + +static GstFlowReturn +gst_soup_http_client_sink_preroll (GstBaseSink * sink, GstBuffer * buffer) +{ + GST_DEBUG ("preroll"); + + return GST_FLOW_OK; +} + +static void +free_buffer_list (GList * list) +{ + GList *g; + for (g = list; g; g = g_list_next (g)) { + GstBuffer *buffer = g->data; + gst_buffer_unref (buffer); + } + g_list_free (list); +} + +static void +send_message_locked (GstSoupHttpClientSink * souphttpsink) +{ + GList *g; + guint64 n; + + if (souphttpsink->queued_buffers == NULL || souphttpsink->message) { + return; + } + + /* If the URI went away, drop all these buffers */ + if (souphttpsink->location == NULL) { + free_buffer_list (souphttpsink->queued_buffers); + souphttpsink->queued_buffers = NULL; + return; + } + + souphttpsink->message = soup_message_new ("PUT", souphttpsink->location); + + n = 0; + if (souphttpsink->offset == 0) { + for (g = souphttpsink->streamheader_buffers; g; g = g_list_next (g)) { + GstBuffer *buffer = g->data; + soup_message_body_append (souphttpsink->message->request_body, + SOUP_MEMORY_STATIC, GST_BUFFER_DATA (buffer), + GST_BUFFER_SIZE (buffer)); + n += GST_BUFFER_SIZE (buffer); + } + } + + for (g = souphttpsink->queued_buffers; g; g = g_list_next (g)) { + GstBuffer *buffer = g->data; + if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_IN_CAPS)) { + soup_message_body_append (souphttpsink->message->request_body, + SOUP_MEMORY_STATIC, GST_BUFFER_DATA (buffer), + GST_BUFFER_SIZE (buffer)); + n += GST_BUFFER_SIZE (buffer); + } + } + + if (souphttpsink->offset != 0) { + char *s; + s = g_strdup_printf ("bytes %" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT "/*", + souphttpsink->offset, souphttpsink->offset + n - 1); + soup_message_headers_append (souphttpsink->message->request_headers, + "Content-Range", s); + g_free (s); + } + + if (n == 0) { + free_buffer_list (souphttpsink->queued_buffers); + souphttpsink->queued_buffers = NULL; + g_object_unref (souphttpsink->message); + souphttpsink->message = NULL; + return; + } + + souphttpsink->sent_buffers = souphttpsink->queued_buffers; + souphttpsink->queued_buffers = NULL; + + GST_DEBUG_OBJECT (souphttpsink, + "queue message %" G_GUINT64_FORMAT " %" G_GUINT64_FORMAT, + souphttpsink->offset, n); + soup_session_queue_message (souphttpsink->session, souphttpsink->message, + callback, souphttpsink); + + souphttpsink->offset += n; +} + +static gboolean +send_message (GstSoupHttpClientSink * souphttpsink) +{ + g_mutex_lock (souphttpsink->mutex); + send_message_locked (souphttpsink); + g_mutex_unlock (souphttpsink->mutex); + + return FALSE; +} + +static void +callback (SoupSession * session, SoupMessage * msg, gpointer user_data) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (user_data); + + GST_DEBUG_OBJECT (souphttpsink, "callback status=%d %s", + msg->status_code, msg->reason_phrase); + + g_mutex_lock (souphttpsink->mutex); + g_cond_signal (souphttpsink->cond); + souphttpsink->message = NULL; + + if (!SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) { + souphttpsink->status_code = msg->status_code; + souphttpsink->reason_phrase = g_strdup (msg->reason_phrase); + g_mutex_unlock (souphttpsink->mutex); + return; + } + + free_buffer_list (souphttpsink->sent_buffers); + souphttpsink->sent_buffers = NULL; + + send_message_locked (souphttpsink); + g_mutex_unlock (souphttpsink->mutex); +} + +static GstFlowReturn +gst_soup_http_client_sink_render (GstBaseSink * sink, GstBuffer * buffer) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (sink); + GSource *source; + gboolean wake; + + if (souphttpsink->status_code != 0) { + /* FIXME we should allow a moderate amount of retries. */ + GST_ELEMENT_ERROR (souphttpsink, RESOURCE, WRITE, + ("Could not write to HTTP URI"), + ("error: %d %s", souphttpsink->status_code, + souphttpsink->reason_phrase)); + return GST_FLOW_ERROR; + } + + g_mutex_lock (souphttpsink->mutex); + if (souphttpsink->location != NULL) { + wake = (souphttpsink->queued_buffers == NULL); + souphttpsink->queued_buffers = + g_list_append (souphttpsink->queued_buffers, gst_buffer_ref (buffer)); + + if (wake) { + source = g_idle_source_new (); + g_source_set_callback (source, (GSourceFunc) (send_message), + souphttpsink, NULL); + g_source_attach (source, souphttpsink->context); + g_source_unref (source); + } + } + g_mutex_unlock (souphttpsink->mutex); + + return GST_FLOW_OK; +} + +static void +authenticate (SoupSession * session, SoupMessage * msg, + SoupAuth * auth, gboolean retrying, gpointer user_data) +{ + GstSoupHttpClientSink *souphttpsink = GST_SOUP_HTTP_CLIENT_SINK (user_data); + + if (!retrying) { + if (souphttpsink->user_id && souphttpsink->user_pw) { + soup_auth_authenticate (auth, + souphttpsink->user_id, souphttpsink->user_pw); + } + } +} diff --git a/ext/soup/gstsouphttpclientsink.h b/ext/soup/gstsouphttpclientsink.h new file mode 100644 index 0000000..fab1430 --- /dev/null +++ b/ext/soup/gstsouphttpclientsink.h @@ -0,0 +1,81 @@ +/* GStreamer + * Copyright (C) 2011 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GST_SOUP_HTTP_CLIENT_SINK_H_ +#define _GST_SOUP_HTTP_CLIENT_SINK_H_ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SOUP_HTTP_CLIENT_SINK (gst_soup_http_client_sink_get_type()) +#define GST_SOUP_HTTP_CLIENT_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SOUP_HTTP_CLIENT_SINK,GstSoupHttpClientSink)) +#define GST_SOUP_HTTP_CLIENT_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SOUP_HTTP_CLIENT_SINK,GstSoupHttpClientSinkClass)) +#define GST_IS_SOUP_HTTP_CLIENT_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SOUP_HTTP_CLIENT_SINK)) +#define GST_IS_SOUP_HTTP_CLIENT_SINK_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SOUP_HTTP_CLIENT_SINK)) + +typedef struct _GstSoupHttpClientSink GstSoupHttpClientSink; +typedef struct _GstSoupHttpClientSinkClass GstSoupHttpClientSinkClass; + +struct _GstSoupHttpClientSink +{ + GstBaseSink base_souphttpsink; + + GMutex *mutex; + GCond *cond; + GMainContext *context; + GMainLoop *loop; + GThread *thread; + SoupMessage *message; + SoupSession *session; + GList *queued_buffers; + GList *sent_buffers; + GList *streamheader_buffers; + + int status_code; + char *reason_phrase; + + guint64 offset; + int timeout; + + /* properties */ + SoupSession *prop_session; + char *location; + char *user_id; + char *user_pw; + SoupURI *proxy; + char *proxy_id; + char *proxy_pw; + char *user_agent; + gboolean automatic_redirect; + gchar **cookies; + +}; + +struct _GstSoupHttpClientSinkClass +{ + GstBaseSinkClass base_souphttpsink_class; +}; + +GType gst_soup_http_client_sink_get_type (void); + +G_END_DECLS + +#endif diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index 819fdec..158eac2 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -86,6 +86,7 @@ #include +#define SEEK_CHANGES GST_DEBUG_CATEGORY_STATIC (souphttpsrc_debug); #define GST_CAT_DEFAULT souphttpsrc_debug @@ -113,7 +114,12 @@ enum PROP_IRADIO_URL, PROP_IRADIO_TITLE, PROP_TIMEOUT, +#ifdef SEEK_CHANGES + PROP_EXTRA_HEADERS, + PROP_BLOCKSIZE, +#else PROP_EXTRA_HEADERS +#endif }; #define DEFAULT_USER_AGENT "GStreamer souphttpsrc " @@ -193,8 +199,7 @@ gst_soup_http_src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "HTTP client source", "Source/Network", @@ -269,6 +274,12 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass) "Extra headers to append to the HTTP request", GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +#ifdef SEEK_CHANGES + g_object_class_install_property (gobject_class, PROP_BLOCKSIZE, + g_param_spec_int64 ("blocksize", "blocksize", + "Size of each buffer downloaded from libsoup", + -1, G_MAXUINT, 4096, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +#endif /* icecast stuff */ g_object_class_install_property (gobject_class, PROP_IRADIO_MODE, @@ -324,6 +335,9 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src) src->request_position = 0; src->content_size = 0; +#ifdef SEEK_CHANGES + src->file_size = 0; +#endif gst_caps_replace (&src->src_caps, NULL); g_free (src->iradio_name); src->iradio_name = NULL; @@ -353,6 +367,10 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src, GstSoupHTTPSrcClass * g_class) src->context = NULL; src->session = NULL; src->msg = NULL; +#ifdef SEEK_CHANGES + src->file_size = 0; + src->range_size = 0; +#endif proxy = g_getenv ("http_proxy"); if (proxy && !gst_soup_http_src_set_proxy (src, proxy)) { GST_WARNING_OBJECT (src, @@ -435,9 +453,22 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id, break; } case PROP_COOKIES: + { +#ifdef GST_EXT_SOUP_MODIFICATION + char **array; +#endif g_strfreev (src->cookies); src->cookies = g_strdupv (g_value_get_boxed (value)); +#ifdef GST_EXT_SOUP_MODIFICATION + if ((array = src->cookies) != NULL) { + while (*array != NULL) { + soup_cookie_jar_add_cookie (src->cookie_jar, + soup_cookie_parse (*array++, NULL)); + } + } +#endif break; + } case PROP_IS_LIVE: gst_base_src_set_live (GST_BASE_SRC (src), g_value_get_boolean (value)); break; @@ -473,6 +504,12 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id, src->extra_headers = s ? gst_structure_copy (s) : NULL; break; } +#ifdef SEEK_CHANGES + case PROP_BLOCKSIZE:{ + src->range_size = g_value_get_int64 (value); + break; + } +#endif default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -508,8 +545,26 @@ gst_soup_http_src_get_property (GObject * object, guint prop_id, } break; case PROP_COOKIES: + { +#ifdef GST_EXT_SOUP_MODIFICATION + GSList *cookie_list, *c; + gchar **cookies, **array; + + cookies = NULL; + if ((cookie_list = soup_cookie_jar_all_cookies (src->cookie_jar)) != NULL) { + cookies = g_new0 (gchar *, g_slist_length(cookie_list) + 1); + array = cookies; + for (c = cookie_list; c; c = c->next) { + *array++ = soup_cookie_to_set_cookie_header ((SoupCookie *)(c->data)); + } + soup_cookies_free (cookie_list); + } + g_value_set_boxed (value, cookies); +#else g_value_set_boxed (value, g_strdupv (src->cookies)); +#endif break; + } case PROP_IS_LIVE: g_value_set_boolean (value, gst_base_src_is_live (GST_BASE_SRC (src))); break; @@ -546,6 +601,11 @@ gst_soup_http_src_get_property (GObject * object, guint prop_id, case PROP_EXTRA_HEADERS: gst_value_set_structure (value, src->extra_headers); break; +#ifdef SEEK_CHANGES + case PROP_BLOCKSIZE: + g_value_set_int64 (value, src->range_size); + break; +#endif default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -589,12 +649,23 @@ gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src, guint64 offset) gint rc; soup_message_headers_remove (src->msg->request_headers, "Range"); + +#ifdef GST_EXT_SOUP_MODIFICATION + /* Note : Some http server could not handle Range header in the middle of playing. + * Need to add Range header at first for seeking properly. + */ + rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-", offset); + if (rc > sizeof (buf) || rc < 0) + return FALSE; + soup_message_headers_append (src->msg->request_headers, "Range", buf); +#else if (offset) { rc = g_snprintf (buf, sizeof (buf), "bytes=%" G_GUINT64_FORMAT "-", offset); if (rc > sizeof (buf) || rc < 0) return FALSE; soup_message_headers_append (src->msg->request_headers, "Range", buf); } +#endif src->read_position = offset; return TRUE; } @@ -728,15 +799,27 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) GstTagList *tag_list; GstBaseSrc *basesrc; guint64 newsize; +#ifdef SEEK_CHANGES + goffset start = 0, end = 0, total_length = 0; +#endif GHashTable *params = NULL; GST_DEBUG_OBJECT (src, "got headers:"); soup_message_headers_foreach (msg->response_headers, gst_soup_http_src_headers_foreach, src); + if (msg->status_code == 407 && src->proxy_id && src->proxy_pw) + return; + if (src->automatic_redirect && SOUP_STATUS_IS_REDIRECTION (msg->status_code)) { +#ifdef GST_EXT_SOUP_MODIFICATION + value = soup_message_headers_get (msg->response_headers, "Location"); + gst_soup_http_src_set_location (src, value); + GST_DEBUG_OBJECT (src, "%u redirect to \"%s\"", msg->status_code, value); +#else GST_DEBUG_OBJECT (src, "%u redirect to \"%s\"", msg->status_code, soup_message_headers_get (msg->response_headers, "Location")); +#endif return; } @@ -752,6 +835,10 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) soup_message_headers_get_content_length (msg->response_headers); if (!src->have_size || (src->content_size != newsize)) { src->content_size = newsize; +#ifdef SEEK_CHANGES + if(!src->file_size) + src->file_size = newsize; +#endif src->have_size = TRUE; src->seekable = TRUE; GST_DEBUG_OBJECT (src, "size = %" G_GUINT64_FORMAT, src->content_size); @@ -763,6 +850,20 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) gst_message_new_duration (GST_OBJECT (src), GST_FORMAT_BYTES, src->content_size)); } +#ifdef SEEK_CHANGES + soup_message_headers_get_content_range(msg->response_headers, &start, &end, &total_length); + if(total_length > 0) + { + src->file_size = total_length; + GST_DEBUG_OBJECT (src, "size = %" G_GUINT64_FORMAT, src->file_size); + basesrc = GST_BASE_SRC_CAST (src); + gst_segment_set_duration (&basesrc->segment, GST_FORMAT_BYTES, + src->file_size); + gst_element_post_message (GST_ELEMENT (src), + gst_message_new_duration (GST_OBJECT (src), GST_FORMAT_BYTES, + src->file_size)); + } +#endif } /* Icecast stuff */ @@ -1137,11 +1238,28 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src) } if (src->cookies) { gchar **cookie; +#ifdef GST_EXT_SOUP_MODIFICATION + SoupURI *uri; + SoupCookie *cookie_parsed; + gchar *header; + uri = soup_uri_new (src->location); + for (cookie = src->cookies; *cookie != NULL; cookie++) { + if ((cookie_parsed = soup_cookie_parse (*cookie, uri)) != NULL) { + header = soup_cookie_to_cookie_header (cookie_parsed); + soup_message_headers_append (src->msg->request_headers, "Cookie", + header); + g_free (header); + soup_cookie_free (cookie_parsed); + } + } + soup_uri_free (uri); +#else for (cookie = src->cookies; *cookie != NULL; cookie++) { soup_message_headers_append (src->msg->request_headers, "Cookie", *cookie); } +#endif } soup_message_headers_append (src->msg->request_headers, "transferMode.dlna.org", "Streaming"); @@ -1159,6 +1277,17 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src) (src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT)); soup_message_set_chunk_allocator (src->msg, gst_soup_http_src_chunk_allocator, src, NULL); +#ifdef SEEK_CHANGES + //gst_soup_http_src_add_range_header (src, src->request_position); + if(src->range_size > 0) + soup_message_headers_set_range(src->msg->request_headers, src->request_position, (src->request_position+src->range_size-1)); + else { + gst_soup_http_src_add_range_header (src, src->request_position); + gst_soup_http_src_add_extra_headers (src); + GST_DEBUG_OBJECT (src, "request headers:"); + soup_message_headers_foreach (src->msg->request_headers,gst_soup_http_src_headers_foreach, src); + } +#else gst_soup_http_src_add_range_header (src, src->request_position); gst_soup_http_src_add_extra_headers (src); @@ -1166,6 +1295,7 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src) GST_DEBUG_OBJECT (src, "request headers:"); soup_message_headers_foreach (src->msg->request_headers, gst_soup_http_src_headers_foreach, src); +#endif return TRUE; } @@ -1178,7 +1308,11 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) src = GST_SOUP_HTTP_SRC (psrc); if (src->msg && (src->request_position != src->read_position)) { +#ifdef SEEK_CHANGES + if (src->file_size != 0 && src->request_position >= src->file_size) { +#else if (src->content_size != 0 && src->request_position >= src->content_size) { +#endif GST_WARNING_OBJECT (src, "Seeking behind the end of file -- EOS"); return GST_FLOW_UNEXPECTED; } else if (src->session_io_status == @@ -1188,9 +1322,28 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) GST_DEBUG_OBJECT (src, "Seek from position %" G_GUINT64_FORMAT " to %" G_GUINT64_FORMAT ": requeueing connection request", src->read_position, src->request_position); +#ifndef SEEK_CHANGES gst_soup_http_src_cancel_message (src); +#endif + } + } +#ifdef SEEK_CHANGES + if(src->msg && src->seeked) { + GST_DEBUG_OBJECT (src, "seeking to offset start %llu end %llu", src->request_position, (src->request_position+src->range_size-1)); + if(src->msg) { + soup_session_cancel_message (src->session, src->msg, SOUP_STATUS_OK); + src->msg = NULL; + if (!gst_soup_http_src_build_message (src)) + return GST_FLOW_ERROR; } + soup_session_queue_message (src->session, src->msg, (SoupSessionCallback) gst_soup_http_src_response_cb, src); + src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_QUEUED; + src->read_position = src->request_position; + if(src->range_size > 0) src->content_size = src->request_position+src->range_size-1; + else src->content_size = src->file_size; } + src->seeked = FALSE; +#endif if (!src->msg) if (!gst_soup_http_src_build_message (src)) return GST_FLOW_ERROR; @@ -1284,6 +1437,11 @@ gst_soup_http_src_start (GstBaseSrc * bsrc) return FALSE; } +#ifdef GST_EXT_SOUP_MODIFICATION + soup_session_add_feature_by_type (src->session, SOUP_TYPE_COOKIE_JAR); + src->cookie_jar = SOUP_COOKIE_JAR (soup_session_get_feature (src->session, SOUP_TYPE_COOKIE_JAR)); +#endif + g_signal_connect (src->session, "authenticate", G_CALLBACK (gst_soup_http_src_authenticate_cb), src); return TRUE; @@ -1348,9 +1506,15 @@ gst_soup_http_src_get_size (GstBaseSrc * bsrc, guint64 * size) src = GST_SOUP_HTTP_SRC (bsrc); if (src->have_size) { +#ifdef SEEK_CHANGES + GST_DEBUG_OBJECT (src, "get_size() = %" G_GUINT64_FORMAT, + src->file_size); + *size = src->file_size; +#else GST_DEBUG_OBJECT (src, "get_size() = %" G_GUINT64_FORMAT, src->content_size); *size = src->content_size; +#endif return TRUE; } GST_DEBUG_OBJECT (src, "get_size() = FALSE"); @@ -1372,6 +1536,9 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT ")", segment->start); +#ifdef SEEK_CHANGES + src->seeked = TRUE; +#endif if (src->read_position == segment->start) { GST_DEBUG_OBJECT (src, "Seeking to current read position"); return TRUE; @@ -1382,12 +1549,16 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) return FALSE; } - if (segment->rate != 1.0 || segment->format != GST_FORMAT_BYTES) { + if (segment->rate < 0.0 || segment->format != GST_FORMAT_BYTES) { GST_WARNING_OBJECT (src, "Invalid seek segment"); return FALSE; } +#ifdef SEEK_CHANGES + if (src->content_size != 0 && segment->start >= src->file_size) { +#else if (src->content_size != 0 && segment->start >= src->content_size) { +#endif GST_WARNING_OBJECT (src, "Seeking behind end of file, will go to EOS soon"); } @@ -1488,26 +1659,3 @@ gst_soup_http_src_uri_handler_init (gpointer g_iface, gpointer iface_data) iface->get_uri = gst_soup_http_src_uri_get_uri; iface->set_uri = gst_soup_http_src_uri_set_uri; } - -static gboolean -plugin_init (GstPlugin * plugin) -{ - GST_DEBUG_CATEGORY_INIT (souphttpsrc_debug, "souphttpsrc", 0, - "SOUP HTTP Client Source"); - -#ifdef ENABLE_NLS - GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE, - LOCALEDIR); - bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); -#endif - - return gst_element_register (plugin, "souphttpsrc", GST_RANK_PRIMARY, - GST_TYPE_SOUP_HTTP_SRC); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "soup", - "libsoup HTTP client src", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h index 1427e1c..95bbc0c 100644 --- a/ext/soup/gstsouphttpsrc.h +++ b/ext/soup/gstsouphttpsrc.h @@ -70,11 +70,14 @@ struct _GstSoupHTTPSrc { gboolean have_size; /* Received and parsed Content-Length header. */ + guint64 file_size; + gint64 range_size; guint64 content_size; /* Value of Content-Length header. */ guint64 read_position; /* Current position. */ gboolean seekable; /* FALSE if the server does not support Range. */ guint64 request_position; /* Seek to this position. */ + gboolean seeked; /* Shoutcast/icecast metadata extraction handling. */ gboolean iradio_mode; @@ -87,6 +90,9 @@ struct _GstSoupHTTPSrc { GstStructure *extra_headers; guint timeout; +#ifdef GST_EXT_SOUP_MODIFICATION + SoupCookieJar *cookie_jar; +#endif }; struct _GstSoupHTTPSrcClass { diff --git a/ext/speex/Makefile.am b/ext/speex/Makefile.am index f2efb36..fe55237 100644 --- a/ext/speex/Makefile.am +++ b/ext/speex/Makefile.am @@ -1,13 +1,14 @@ plugin_LTLIBRARIES = libgstspeex.la libgstspeex_la_SOURCES = gstspeex.c gstspeexdec.c gstspeexenc.c -libgstspeex_la_CFLAGS = \ +libgstspeex_la_CFLAGS = -DGST_USE_UNSTABLE_API \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(SPEEX_CFLAGS) libgstspeex_la_LIBADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgsttag-$(GST_MAJORMINOR) -lgstaudio-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(SPEEX_LIBS) diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in index 1021379..8f5bcef 100644 --- a/ext/speex/Makefile.in +++ b/ext/speex/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +117,8 @@ libgstspeex_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstspeex_la_OBJECTS = libgstspeex_la-gstspeex.lo \ libgstspeex_la-gstspeexdec.lo libgstspeex_la-gstspeexenc.lo libgstspeex_la_OBJECTS = $(am_libgstspeex_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstspeex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstspeex_la_SOURCES) DIST_SOURCES = $(libgstspeex_la_SOURCES) @@ -226,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -301,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -325,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -359,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -423,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -457,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -480,14 +480,15 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstspeex.la libgstspeex_la_SOURCES = gstspeex.c gstspeexdec.c gstspeexenc.c -libgstspeex_la_CFLAGS = \ +libgstspeex_la_CFLAGS = -DGST_USE_UNSTABLE_API \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) \ $(SPEEX_CFLAGS) libgstspeex_la_LIBADD = \ - $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgsttag-$(GST_MAJORMINOR) -lgstaudio-$(GST_MAJORMINOR) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ $(SPEEX_LIBS) @@ -560,7 +561,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstspeex.la: $(libgstspeex_la_OBJECTS) $(libgstspeex_la_DEPENDENCIES) +libgstspeex.la: $(libgstspeex_la_OBJECTS) $(libgstspeex_la_DEPENDENCIES) $(EXTRA_libgstspeex_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspeex_la_LINK) -rpath $(plugindir) $(libgstspeex_la_OBJECTS) $(libgstspeex_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -576,50 +577,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstspeex_la-gstspeex.lo: gstspeex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeex.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeex.Tpo -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeex.Tpo $(DEPDIR)/libgstspeex_la-gstspeex.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspeex.c' object='libgstspeex_la-gstspeex.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspeex.c' object='libgstspeex_la-gstspeex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeex.lo `test -f 'gstspeex.c' || echo '$(srcdir)/'`gstspeex.c libgstspeex_la-gstspeexdec.lo: gstspeexdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexdec.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexdec.Tpo -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeexdec.Tpo $(DEPDIR)/libgstspeex_la-gstspeexdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspeexdec.c' object='libgstspeex_la-gstspeexdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspeexdec.c' object='libgstspeex_la-gstspeexdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexdec.lo `test -f 'gstspeexdec.c' || echo '$(srcdir)/'`gstspeexdec.c libgstspeex_la-gstspeexenc.lo: gstspeexenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -MT libgstspeex_la-gstspeexenc.lo -MD -MP -MF $(DEPDIR)/libgstspeex_la-gstspeexenc.Tpo -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspeex_la-gstspeexenc.Tpo $(DEPDIR)/libgstspeex_la-gstspeexenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspeexenc.c' object='libgstspeex_la-gstspeexenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspeexenc.c' object='libgstspeex_la-gstspeexenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspeex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspeex_la_CFLAGS) $(CFLAGS) -c -o libgstspeex_la-gstspeexenc.lo `test -f 'gstspeexenc.c' || echo '$(srcdir)/'`gstspeexenc.c mostlyclean-libtool: -rm -f *.lo @@ -726,10 +721,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index 46f774b..e1d80b6 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -76,45 +76,31 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_CAPS ("audio/x-speex") ); -GST_BOILERPLATE (GstSpeexDec, gst_speex_dec, GstElement, GST_TYPE_ELEMENT); - -static gboolean speex_dec_sink_event (GstPad * pad, GstEvent * event); -static GstFlowReturn speex_dec_chain (GstPad * pad, GstBuffer * buf); -static GstStateChangeReturn speex_dec_change_state (GstElement * element, - GstStateChange transition); - -static gboolean speex_dec_src_event (GstPad * pad, GstEvent * event); -static gboolean speex_dec_src_query (GstPad * pad, GstQuery * query); -static gboolean speex_dec_sink_query (GstPad * pad, GstQuery * query); -static gboolean speex_dec_sink_setcaps (GstPad * pad, GstCaps * caps); -static const GstQueryType *speex_get_src_query_types (GstPad * pad); -static const GstQueryType *speex_get_sink_query_types (GstPad * pad); -static gboolean speex_dec_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value); +GST_BOILERPLATE (GstSpeexDec, gst_speex_dec, GstAudioDecoder, + GST_TYPE_AUDIO_DECODER); + + +static gboolean gst_speex_dec_start (GstAudioDecoder * dec); +static gboolean gst_speex_dec_stop (GstAudioDecoder * dec); +static gboolean gst_speex_dec_set_format (GstAudioDecoder * bdec, + GstCaps * caps); +static GstFlowReturn gst_speex_dec_handle_frame (GstAudioDecoder * dec, + GstBuffer * buffer); static void gst_speex_dec_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static void gst_speex_dec_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static GstFlowReturn speex_dec_chain_parse_data (GstSpeexDec * dec, - GstBuffer * buf, GstClockTime timestamp, GstClockTime duration); - -static GstFlowReturn speex_dec_chain_parse_header (GstSpeexDec * dec, - GstBuffer * buf); -static GstFlowReturn speex_dec_chain_parse_comments (GstSpeexDec * dec, - GstBuffer * buf); - static void gst_speex_dec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&speex_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&speex_dec_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &speex_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &speex_dec_sink_factory); gst_element_class_set_details_simple (element_class, "Speex audio decoder", "Codec/Decoder/Audio", "decode speex streams to audio", "Wim Taymans "); @@ -124,20 +110,23 @@ static void gst_speex_dec_class_init (GstSpeexDecClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + GstAudioDecoderClass *base_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + base_class = (GstAudioDecoderClass *) klass; gobject_class->set_property = gst_speex_dec_set_property; gobject_class->get_property = gst_speex_dec_get_property; + base_class->start = GST_DEBUG_FUNCPTR (gst_speex_dec_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_speex_dec_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_speex_dec_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_speex_dec_handle_frame); + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_ENH, g_param_spec_boolean ("enh", "Enh", "Enable perceptual enhancement", DEFAULT_ENH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - gstelement_class->change_state = GST_DEBUG_FUNCPTR (speex_dec_change_state); - GST_DEBUG_CATEGORY_INIT (speexdec_debug, "speexdec", 0, "speex decoding element"); } @@ -145,7 +134,6 @@ gst_speex_dec_class_init (GstSpeexDecClass * klass) static void gst_speex_dec_reset (GstSpeexDec * dec) { - gst_segment_init (&dec->segment, GST_FORMAT_UNDEFINED); dec->packetno = 0; dec->frame_size = 0; dec->frame_duration = 0; @@ -171,396 +159,38 @@ gst_speex_dec_reset (GstSpeexDec * dec) static void gst_speex_dec_init (GstSpeexDec * dec, GstSpeexDecClass * g_class) { - dec->sinkpad = - gst_pad_new_from_static_template (&speex_dec_sink_factory, "sink"); - gst_pad_set_chain_function (dec->sinkpad, - GST_DEBUG_FUNCPTR (speex_dec_chain)); - gst_pad_set_event_function (dec->sinkpad, - GST_DEBUG_FUNCPTR (speex_dec_sink_event)); - gst_pad_set_query_type_function (dec->sinkpad, - GST_DEBUG_FUNCPTR (speex_get_sink_query_types)); - gst_pad_set_query_function (dec->sinkpad, - GST_DEBUG_FUNCPTR (speex_dec_sink_query)); - gst_pad_set_setcaps_function (dec->sinkpad, - GST_DEBUG_FUNCPTR (speex_dec_sink_setcaps)); - gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); - - dec->srcpad = - gst_pad_new_from_static_template (&speex_dec_src_factory, "src"); - gst_pad_use_fixed_caps (dec->srcpad); - gst_pad_set_event_function (dec->srcpad, - GST_DEBUG_FUNCPTR (speex_dec_src_event)); - gst_pad_set_query_type_function (dec->srcpad, - GST_DEBUG_FUNCPTR (speex_get_src_query_types)); - gst_pad_set_query_function (dec->srcpad, - GST_DEBUG_FUNCPTR (speex_dec_src_query)); - gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); - dec->enh = DEFAULT_ENH; gst_speex_dec_reset (dec); } static gboolean -speex_dec_sink_setcaps (GstPad * pad, GstCaps * caps) +gst_speex_dec_start (GstAudioDecoder * dec) { - GstSpeexDec *dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - gboolean ret = TRUE; - GstStructure *s; - const GValue *streamheader; + GstSpeexDec *sd = GST_SPEEX_DEC (dec); - s = gst_caps_get_structure (caps, 0); - if ((streamheader = gst_structure_get_value (s, "streamheader")) && - G_VALUE_HOLDS (streamheader, GST_TYPE_ARRAY) && - gst_value_array_get_size (streamheader) >= 2) { - const GValue *header, *vorbiscomment; - GstBuffer *buf; - GstFlowReturn res = GST_FLOW_OK; + GST_DEBUG_OBJECT (dec, "start"); + gst_speex_dec_reset (sd); - header = gst_value_array_get_value (streamheader, 0); - if (header && G_VALUE_HOLDS (header, GST_TYPE_BUFFER)) { - buf = gst_value_get_buffer (header); - res = speex_dec_chain_parse_header (dec, buf); - if (res != GST_FLOW_OK) - goto done; - gst_buffer_replace (&dec->streamheader, buf); - } + /* we know about concealment */ + gst_audio_decoder_set_plc_aware (dec, TRUE); - vorbiscomment = gst_value_array_get_value (streamheader, 1); - if (vorbiscomment && G_VALUE_HOLDS (vorbiscomment, GST_TYPE_BUFFER)) { - buf = gst_value_get_buffer (vorbiscomment); - res = speex_dec_chain_parse_comments (dec, buf); - if (res != GST_FLOW_OK) - goto done; - gst_buffer_replace (&dec->vorbiscomment, buf); - } - } - -done: - gst_object_unref (dec); - return ret; + return TRUE; } static gboolean -speex_dec_convert (GstPad * pad, - GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) +gst_speex_dec_stop (GstAudioDecoder * dec) { - gboolean res = TRUE; - GstSpeexDec *dec; - guint64 scale = 1; - - dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - - if (src_format == *dest_format) { - *dest_value = src_value; - res = TRUE; - goto cleanup; - } + GstSpeexDec *sd = GST_SPEEX_DEC (dec); - if (dec->packetno < 1) { - res = FALSE; - goto cleanup; - } - - if (pad == dec->sinkpad && - (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES)) { - res = FALSE; - goto cleanup; - } + GST_DEBUG_OBJECT (dec, "stop"); + gst_speex_dec_reset (sd); - switch (src_format) { - case GST_FORMAT_TIME: - switch (*dest_format) { - case GST_FORMAT_BYTES: - scale = 2 * dec->header->nb_channels; - case GST_FORMAT_DEFAULT: - *dest_value = - gst_util_uint64_scale_int (scale * src_value, dec->header->rate, - GST_SECOND); - break; - default: - res = FALSE; - break; - } - break; - case GST_FORMAT_DEFAULT: - switch (*dest_format) { - case GST_FORMAT_BYTES: - *dest_value = src_value * 2 * dec->header->nb_channels; - break; - case GST_FORMAT_TIME: - *dest_value = - gst_util_uint64_scale_int (src_value, GST_SECOND, - dec->header->rate); - break; - default: - res = FALSE; - break; - } - break; - case GST_FORMAT_BYTES: - switch (*dest_format) { - case GST_FORMAT_DEFAULT: - *dest_value = src_value / (2 * dec->header->nb_channels); - break; - case GST_FORMAT_TIME: - *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND, - dec->header->rate * 2 * dec->header->nb_channels); - break; - default: - res = FALSE; - break; - } - break; - default: - res = FALSE; - break; - } - -cleanup: - gst_object_unref (dec); - return res; -} - -static const GstQueryType * -speex_get_sink_query_types (GstPad * pad) -{ - static const GstQueryType speex_dec_sink_query_types[] = { - GST_QUERY_CONVERT, - 0 - }; - - return speex_dec_sink_query_types; -} - -static gboolean -speex_dec_sink_query (GstPad * pad, GstQuery * query) -{ - GstSpeexDec *dec; - gboolean res; - - dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_CONVERT: - { - GstFormat src_fmt, dest_fmt; - gint64 src_val, dest_val; - - gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); - res = speex_dec_convert (pad, src_fmt, src_val, &dest_fmt, &dest_val); - if (res) { - gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); - } - break; - } - default: - res = gst_pad_query_default (pad, query); - break; - } - - gst_object_unref (dec); - return res; -} - -static const GstQueryType * -speex_get_src_query_types (GstPad * pad) -{ - static const GstQueryType speex_dec_src_query_types[] = { - GST_QUERY_POSITION, - GST_QUERY_DURATION, - 0 - }; - - return speex_dec_src_query_types; -} - -static gboolean -speex_dec_src_query (GstPad * pad, GstQuery * query) -{ - GstSpeexDec *dec; - gboolean res = FALSE; - - dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_POSITION:{ - GstSegment segment; - GstFormat format; - gint64 cur; - - gst_query_parse_position (query, &format, NULL); - - GST_PAD_STREAM_LOCK (dec->sinkpad); - segment = dec->segment; - GST_PAD_STREAM_UNLOCK (dec->sinkpad); - - if (segment.format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (dec, "segment not initialised yet"); - break; - } - - if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_TIME, - segment.last_stop, &format, &cur))) { - gst_query_set_position (query, format, cur); - } - break; - } - case GST_QUERY_DURATION:{ - GstFormat format = GST_FORMAT_TIME; - gint64 dur; - - /* get duration from demuxer */ - if (!gst_pad_query_peer_duration (dec->sinkpad, &format, &dur)) - break; - - gst_query_parse_duration (query, &format, NULL); - - /* and convert it into the requested format */ - if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_TIME, - dur, &format, &dur))) { - gst_query_set_duration (query, format, dur); - } - break; - } - default: - res = gst_pad_query_default (pad, query); - break; - } - - gst_object_unref (dec); - return res; -} - -static gboolean -speex_dec_src_event (GstPad * pad, GstEvent * event) -{ - gboolean res = FALSE; - GstSpeexDec *dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - - GST_LOG_OBJECT (dec, "handling %s event", GST_EVENT_TYPE_NAME (event)); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_SEEK:{ - GstFormat format, tformat; - gdouble rate; - GstEvent *real_seek; - GstSeekFlags flags; - GstSeekType cur_type, stop_type; - gint64 cur, stop; - gint64 tcur, tstop; - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, - &stop_type, &stop); - - /* we have to ask our peer to seek to time here as we know - * nothing about how to generate a granulepos from the src - * formats or anything. - * - * First bring the requested format to time - */ - tformat = GST_FORMAT_TIME; - if (!(res = speex_dec_convert (pad, format, cur, &tformat, &tcur))) - break; - if (!(res = speex_dec_convert (pad, format, stop, &tformat, &tstop))) - break; - - /* then seek with time on the peer */ - real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME, - flags, cur_type, tcur, stop_type, tstop); - - GST_LOG_OBJECT (dec, "seek to %" GST_TIME_FORMAT, GST_TIME_ARGS (tcur)); - - res = gst_pad_push_event (dec->sinkpad, real_seek); - gst_event_unref (event); - break; - } - default: - res = gst_pad_event_default (pad, event); - break; - } - - gst_object_unref (dec); - return res; -} - -static gboolean -speex_dec_sink_event (GstPad * pad, GstEvent * event) -{ - GstSpeexDec *dec; - gboolean ret = FALSE; - - dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); - - GST_LOG_OBJECT (dec, "handling %s event", GST_EVENT_TYPE_NAME (event)); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_NEWSEGMENT:{ - GstFormat format; - gdouble rate, arate; - gint64 start, stop, time; - gboolean update; - - gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, - &start, &stop, &time); - - if (format != GST_FORMAT_TIME) - goto newseg_wrong_format; - - if (rate <= 0.0) - goto newseg_wrong_rate; - - if (update) { - /* time progressed without data, see if we can fill the gap with - * some concealment data */ - if (dec->segment.last_stop < start) { - GstClockTime duration; - - duration = start - dec->segment.last_stop; - speex_dec_chain_parse_data (dec, NULL, dec->segment.last_stop, - duration); - } - } - - /* now configure the values */ - gst_segment_set_newsegment_full (&dec->segment, update, - rate, arate, GST_FORMAT_TIME, start, stop, time); - - GST_DEBUG_OBJECT (dec, "segment now: cur = %" GST_TIME_FORMAT " [%" - GST_TIME_FORMAT " - %" GST_TIME_FORMAT "]", - GST_TIME_ARGS (dec->segment.last_stop), - GST_TIME_ARGS (dec->segment.start), - GST_TIME_ARGS (dec->segment.stop)); - - ret = gst_pad_push_event (dec->srcpad, event); - break; - } - default: - ret = gst_pad_event_default (pad, event); - break; - } - - gst_object_unref (dec); - return ret; - - /* ERRORS */ -newseg_wrong_format: - { - GST_DEBUG_OBJECT (dec, "received non TIME newsegment"); - gst_object_unref (dec); - return FALSE; - } -newseg_wrong_rate: - { - GST_DEBUG_OBJECT (dec, "negative rates not supported yet"); - gst_object_unref (dec); - return FALSE; - } + return TRUE; } static GstFlowReturn -speex_dec_chain_parse_header (GstSpeexDec * dec, GstBuffer * buf) +gst_speex_dec_parse_header (GstSpeexDec * dec, GstBuffer * buf) { GstCaps *caps; @@ -607,7 +237,7 @@ speex_dec_chain_parse_header (GstSpeexDec * dec, GstBuffer * buf) "endianness", G_TYPE_INT, G_BYTE_ORDER, "width", G_TYPE_INT, 16, "depth", G_TYPE_INT, 16, NULL); - if (!gst_pad_set_caps (dec->srcpad, caps)) + if (!gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), caps)) goto nego_failed; gst_caps_unref (caps); @@ -644,7 +274,7 @@ nego_failed: } static GstFlowReturn -speex_dec_chain_parse_comments (GstSpeexDec * dec, GstBuffer * buf) +gst_speex_dec_parse_comments (GstSpeexDec * dec, GstBuffer * buf) { GstTagList *list; gchar *ver, *encoder = NULL; @@ -679,7 +309,8 @@ speex_dec_chain_parse_comments (GstSpeexDec * dec, GstBuffer * buf) GST_INFO_OBJECT (dec, "tags: %" GST_PTR_FORMAT, list); - gst_element_found_tags_for_pad (GST_ELEMENT (dec), dec->srcpad, list); + gst_element_found_tags_for_pad (GST_ELEMENT (dec), + GST_AUDIO_DECODER_SRC_PAD (dec), list); g_free (encoder); g_free (ver); @@ -687,9 +318,47 @@ speex_dec_chain_parse_comments (GstSpeexDec * dec, GstBuffer * buf) return GST_FLOW_OK; } +static gboolean +gst_speex_dec_set_format (GstAudioDecoder * bdec, GstCaps * caps) +{ + GstSpeexDec *dec = GST_SPEEX_DEC (bdec); + gboolean ret = TRUE; + GstStructure *s; + const GValue *streamheader; + + s = gst_caps_get_structure (caps, 0); + if ((streamheader = gst_structure_get_value (s, "streamheader")) && + G_VALUE_HOLDS (streamheader, GST_TYPE_ARRAY) && + gst_value_array_get_size (streamheader) >= 2) { + const GValue *header, *vorbiscomment; + GstBuffer *buf; + GstFlowReturn res = GST_FLOW_OK; + + header = gst_value_array_get_value (streamheader, 0); + if (header && G_VALUE_HOLDS (header, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (header); + res = gst_speex_dec_parse_header (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->streamheader, buf); + } + + vorbiscomment = gst_value_array_get_value (streamheader, 1); + if (vorbiscomment && G_VALUE_HOLDS (vorbiscomment, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (vorbiscomment); + res = gst_speex_dec_parse_comments (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->vorbiscomment, buf); + } + } + +done: + return ret; +} + static GstFlowReturn -speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf, - GstClockTime timestamp, GstClockTime duration) +gst_speex_dec_parse_data (GstSpeexDec * dec, GstBuffer * buf) { GstFlowReturn res = GST_FLOW_OK; gint i, fpp; @@ -700,13 +369,7 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf, if (!dec->frame_duration) goto not_negotiated; - if (timestamp != -1) { - dec->segment.last_stop = timestamp; - } else { - timestamp = dec->segment.last_stop; - } - - if (buf) { + if (G_LIKELY (GST_BUFFER_SIZE (buf))) { data = GST_BUFFER_DATA (buf); size = GST_BUFFER_SIZE (buf); @@ -716,16 +379,16 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf, fpp = dec->header->frames_per_packet; bits = &dec->bits; - GST_DEBUG_OBJECT (dec, "received buffer of size %u, fpp %d, %d bits", size, - fpp, speex_bits_remaining (bits)); + GST_DEBUG_OBJECT (dec, "received buffer of size %u, fpp %d, %d bits", + size, fpp, speex_bits_remaining (bits)); } else { + /* FIXME ? actually consider how much concealment is needed */ /* concealment data, pass NULL as the bits parameters */ GST_DEBUG_OBJECT (dec, "creating concealment data"); fpp = dec->header->frames_per_packet; bits = NULL; } - /* now decode each frame, catering for unknown number of them (e.g. rtp) */ for (i = 0; i < fpp; i++) { GstBuffer *outbuf; @@ -735,9 +398,10 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf, GST_LOG_OBJECT (dec, "decoding frame %d/%d, %d bits remaining", i, fpp, bits ? speex_bits_remaining (bits) : -1); - res = gst_pad_alloc_buffer_and_set_caps (dec->srcpad, + res = + gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (dec), GST_BUFFER_OFFSET_NONE, dec->frame_size * dec->header->nb_channels * 2, - GST_PAD_CAPS (dec->srcpad), &outbuf); + GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (dec)), &outbuf); if (res != GST_FLOW_OK) { GST_DEBUG_OBJECT (dec, "buf alloc flow: %s", gst_flow_get_name (res)); @@ -752,39 +416,27 @@ speex_dec_chain_parse_data (GstSpeexDec * dec, GstBuffer * buf, if (fpp == 0 && speex_bits_remaining (bits) < 8) { /* if we did not know how many frames to expect, then we get this at the end if there are leftover bits to pad to the next byte */ + GST_DEBUG_OBJECT (dec, "Discarding leftover bits"); } else { GST_WARNING_OBJECT (dec, "Unexpected end of stream found"); } + gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), NULL, 1); gst_buffer_unref (outbuf); - outbuf = NULL; - break; } else if (ret == -2) { GST_WARNING_OBJECT (dec, "Decoding error: corrupted stream?"); + gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), NULL, 1); gst_buffer_unref (outbuf); - outbuf = NULL; - break; } if (bits && speex_bits_remaining (bits) < 0) { GST_WARNING_OBJECT (dec, "Decoding overflow: corrupted stream?"); + gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), NULL, 1); gst_buffer_unref (outbuf); - outbuf = NULL; - break; } if (dec->header->nb_channels == 2) speex_decode_stereo_int (out_data, dec->frame_size, dec->stereo); - GST_BUFFER_TIMESTAMP (outbuf) = timestamp; - GST_BUFFER_DURATION (outbuf) = dec->frame_duration; - - dec->segment.last_stop += dec->frame_duration; - timestamp = dec->segment.last_stop; - - GST_LOG_OBJECT (dec, "pushing buffer with ts=%" GST_TIME_FORMAT ", dur=%" - GST_TIME_FORMAT, GST_TIME_ARGS (timestamp), - GST_TIME_ARGS (dec->frame_duration)); - - res = gst_pad_push (dec->srcpad, outbuf); + res = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (dec), outbuf, 1); if (res != GST_FLOW_OK) { GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); @@ -804,12 +456,16 @@ not_negotiated: } static GstFlowReturn -speex_dec_chain (GstPad * pad, GstBuffer * buf) +gst_speex_dec_handle_frame (GstAudioDecoder * bdec, GstBuffer * buf) { GstFlowReturn res; GstSpeexDec *dec; - dec = GST_SPEEX_DEC (gst_pad_get_parent (pad)); + /* no fancy draining */ + if (G_UNLIKELY (!buf)) + return GST_FLOW_OK; + + dec = GST_SPEEX_DEC (bdec); /* If we have the streamheader and vorbiscomment from the caps already * ignore them here */ @@ -817,39 +473,42 @@ speex_dec_chain (GstPad * pad, GstBuffer * buf) if (GST_BUFFER_SIZE (dec->streamheader) == GST_BUFFER_SIZE (buf) && memcmp (GST_BUFFER_DATA (dec->streamheader), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)) == 0) { + GST_DEBUG_OBJECT (dec, "found streamheader"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); res = GST_FLOW_OK; } else if (GST_BUFFER_SIZE (dec->vorbiscomment) == GST_BUFFER_SIZE (buf) && memcmp (GST_BUFFER_DATA (dec->vorbiscomment), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)) == 0) { + GST_DEBUG_OBJECT (dec, "found vorbiscomments"); + gst_audio_decoder_finish_frame (bdec, NULL, 1); res = GST_FLOW_OK; } else { - res = - speex_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), - GST_BUFFER_DURATION (buf)); + res = gst_speex_dec_parse_data (dec, buf); } } else { /* Otherwise fall back to packet counting and assume that the * first two packets are the headers. */ switch (dec->packetno) { case 0: - res = speex_dec_chain_parse_header (dec, buf); + GST_DEBUG_OBJECT (dec, "counted streamheader"); + res = gst_speex_dec_parse_header (dec, buf); + gst_audio_decoder_finish_frame (bdec, NULL, 1); break; case 1: - res = speex_dec_chain_parse_comments (dec, buf); + GST_DEBUG_OBJECT (dec, "counted vorbiscomments"); + res = gst_speex_dec_parse_comments (dec, buf); + gst_audio_decoder_finish_frame (bdec, NULL, 1); break; default: - res = - speex_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), - GST_BUFFER_DURATION (buf)); + { + res = gst_speex_dec_parse_data (dec, buf); break; + } } } dec->packetno++; - gst_buffer_unref (buf); - gst_object_unref (dec); - return res; } @@ -888,37 +547,3 @@ gst_speex_dec_set_property (GObject * object, guint prop_id, break; } } - - -static GstStateChangeReturn -speex_dec_change_state (GstElement * element, GstStateChange transition) -{ - GstStateChangeReturn ret; - GstSpeexDec *dec = GST_SPEEX_DEC (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - case GST_STATE_CHANGE_READY_TO_PAUSED: - case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - default: - break; - } - - ret = parent_class->change_state (element, transition); - if (ret != GST_STATE_CHANGE_SUCCESS) - return ret; - - switch (transition) { - case GST_STATE_CHANGE_PLAYING_TO_PAUSED: - break; - case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_speex_dec_reset (dec); - break; - case GST_STATE_CHANGE_READY_TO_NULL: - break; - default: - break; - } - - return ret; -} diff --git a/ext/speex/gstspeexdec.h b/ext/speex/gstspeexdec.h index 660d805..8187af8 100644 --- a/ext/speex/gstspeexdec.h +++ b/ext/speex/gstspeexdec.h @@ -22,6 +22,8 @@ #define __GST_SPEEX_DEC_H__ #include +#include + #include #include #include @@ -44,11 +46,7 @@ typedef struct _GstSpeexDec GstSpeexDec; typedef struct _GstSpeexDecClass GstSpeexDecClass; struct _GstSpeexDec { - GstElement element; - - /* pads */ - GstPad *sinkpad; - GstPad *srcpad; + GstAudioDecoder element; void *state; SpeexStereoState *stereo; @@ -67,14 +65,12 @@ struct _GstSpeexDec { GstClockTime frame_duration; guint64 packetno; - GstSegment segment; /* STREAM LOCK */ - GstBuffer *streamheader; GstBuffer *vorbiscomment; }; struct _GstSpeexDecClass { - GstElementClass parent_class; + GstAudioDecoderClass parent_class; }; GType gst_speex_dec_get_type (void); diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index 6ace2da..b866e5c 100644 --- a/ext/speex/gstspeexenc.c +++ b/ext/speex/gstspeexenc.c @@ -113,71 +113,49 @@ gst_speex_enc_mode_get_type (void) return speex_enc_mode_type; } -#if 0 -static const GstFormat * -gst_speex_enc_get_formats (GstPad * pad) -{ - static const GstFormat src_formats[] = { - GST_FORMAT_BYTES, - GST_FORMAT_TIME, - 0 - }; - static const GstFormat sink_formats[] = { - GST_FORMAT_BYTES, - GST_FORMAT_DEFAULT, - GST_FORMAT_TIME, - 0 - }; - - return (GST_PAD_IS_SRC (pad) ? src_formats : sink_formats); -} -#endif - static void gst_speex_enc_finalize (GObject * object); -static gboolean gst_speex_enc_sinkevent (GstPad * pad, GstEvent * event); -static GstFlowReturn gst_speex_enc_chain (GstPad * pad, GstBuffer * buf); static gboolean gst_speex_enc_setup (GstSpeexEnc * enc); static void gst_speex_enc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static void gst_speex_enc_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); -static GstStateChangeReturn gst_speex_enc_change_state (GstElement * element, - GstStateChange transition); -static GstFlowReturn gst_speex_enc_encode (GstSpeexEnc * enc, gboolean flush); +static GstFlowReturn gst_speex_enc_encode (GstSpeexEnc * enc, GstBuffer * buf); + +static gboolean gst_speex_enc_start (GstAudioEncoder * enc); +static gboolean gst_speex_enc_stop (GstAudioEncoder * enc); +static gboolean gst_speex_enc_set_format (GstAudioEncoder * enc, + GstAudioInfo * info); +static GstFlowReturn gst_speex_enc_handle_frame (GstAudioEncoder * enc, + GstBuffer * in_buf); +static gboolean gst_speex_enc_sink_event (GstAudioEncoder * enc, + GstEvent * event); +static GstFlowReturn +gst_speex_enc_pre_push (GstAudioEncoder * benc, GstBuffer ** buffer); static void gst_speex_enc_setup_interfaces (GType speexenc_type) { static const GInterfaceInfo tag_setter_info = { NULL, NULL, NULL }; - const GInterfaceInfo preset_interface_info = { - NULL, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; g_type_add_interface_static (speexenc_type, GST_TYPE_TAG_SETTER, &tag_setter_info); - g_type_add_interface_static (speexenc_type, GST_TYPE_PRESET, - &preset_interface_info); GST_DEBUG_CATEGORY_INIT (speexenc_debug, "speexenc", 0, "Speex encoder"); } -GST_BOILERPLATE_FULL (GstSpeexEnc, gst_speex_enc, GstElement, GST_TYPE_ELEMENT, - gst_speex_enc_setup_interfaces); +GST_BOILERPLATE_FULL (GstSpeexEnc, gst_speex_enc, GstAudioEncoder, + GST_TYPE_AUDIO_ENCODER, gst_speex_enc_setup_interfaces); static void gst_speex_enc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Speex audio encoder", "Codec/Encoder/Audio", "Encodes audio in Speex format", "Wim Taymans "); @@ -187,63 +165,67 @@ static void gst_speex_enc_class_init (GstSpeexEncClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + GstAudioEncoderClass *base_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + base_class = (GstAudioEncoderClass *) klass; gobject_class->set_property = gst_speex_enc_set_property; gobject_class->get_property = gst_speex_enc_get_property; + base_class->start = GST_DEBUG_FUNCPTR (gst_speex_enc_start); + base_class->stop = GST_DEBUG_FUNCPTR (gst_speex_enc_stop); + base_class->set_format = GST_DEBUG_FUNCPTR (gst_speex_enc_set_format); + base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_speex_enc_handle_frame); + base_class->event = GST_DEBUG_FUNCPTR (gst_speex_enc_sink_event); + base_class->pre_push = GST_DEBUG_FUNCPTR (gst_speex_enc_pre_push); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_QUALITY, g_param_spec_float ("quality", "Quality", "Encoding quality", 0.0, 10.0, DEFAULT_QUALITY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BITRATE, g_param_spec_int ("bitrate", "Encoding Bit-rate", "Specify an encoding bit-rate (in bps). (0 = automatic)", 0, G_MAXINT, DEFAULT_BITRATE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_MODE, g_param_spec_enum ("mode", "Mode", "The encoding mode", GST_TYPE_SPEEX_ENC_MODE, GST_SPEEX_ENC_MODE_AUTO, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VBR, g_param_spec_boolean ("vbr", "VBR", "Enable variable bit-rate", DEFAULT_VBR, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_ABR, g_param_spec_int ("abr", "ABR", "Enable average bit-rate (0 = disabled)", 0, G_MAXINT, DEFAULT_ABR, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VAD, g_param_spec_boolean ("vad", "VAD", "Enable voice activity detection", DEFAULT_VAD, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DTX, g_param_spec_boolean ("dtx", "DTX", "Enable discontinuous transmission", DEFAULT_DTX, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_COMPLEXITY, g_param_spec_int ("complexity", "Complexity", "Set encoding complexity", 0, G_MAXINT, DEFAULT_COMPLEXITY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_NFRAMES, g_param_spec_int ("nframes", "NFrames", "Number of frames per buffer", 0, G_MAXINT, DEFAULT_NFRAMES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_LAST_MESSAGE, g_param_spec_string ("last-message", "last-message", "The last status message", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); gobject_class->finalize = gst_speex_enc_finalize; - - gstelement_class->change_state = - GST_DEBUG_FUNCPTR (gst_speex_enc_change_state); } static void @@ -254,166 +236,53 @@ gst_speex_enc_finalize (GObject * object) enc = GST_SPEEX_ENC (object); g_free (enc->last_message); - g_object_unref (enc->adapter); G_OBJECT_CLASS (parent_class)->finalize (object); } -static gboolean -gst_speex_enc_sink_setcaps (GstPad * pad, GstCaps * caps) +static void +gst_speex_enc_init (GstSpeexEnc * enc, GstSpeexEncClass * klass) { - GstSpeexEnc *enc; - GstStructure *structure; - - enc = GST_SPEEX_ENC (GST_PAD_PARENT (pad)); - enc->setup = FALSE; - - structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "channels", &enc->channels); - gst_structure_get_int (structure, "rate", &enc->rate); + GstAudioEncoder *benc = GST_AUDIO_ENCODER (enc); - gst_speex_enc_setup (enc); - - return enc->setup; + /* arrange granulepos marking (and required perfect ts) */ + gst_audio_encoder_set_mark_granule (benc, TRUE); + gst_audio_encoder_set_perfect_timestamp (benc, TRUE); } - -static GstCaps * -gst_speex_enc_sink_getcaps (GstPad * pad) +static gboolean +gst_speex_enc_start (GstAudioEncoder * benc) { - GstCaps *caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); - GstCaps *peercaps = NULL; - GstSpeexEnc *enc = GST_SPEEX_ENC (gst_pad_get_parent_element (pad)); + GstSpeexEnc *enc = GST_SPEEX_ENC (benc); - peercaps = gst_pad_peer_get_caps (enc->srcpad); - - if (peercaps) { - if (!gst_caps_is_empty (peercaps) && !gst_caps_is_any (peercaps)) { - GstStructure *ps = gst_caps_get_structure (peercaps, 0); - GstStructure *s = gst_caps_get_structure (caps, 0); - gint rate, channels; - - if (gst_structure_get_int (ps, "rate", &rate)) { - gst_structure_fixate_field_nearest_int (s, "rate", rate); - } - - if (gst_structure_get_int (ps, "channels", &channels)) { - gst_structure_fixate_field_nearest_int (s, "channels", channels); - } - } - gst_caps_unref (peercaps); - } - - gst_object_unref (enc); + GST_DEBUG_OBJECT (enc, "start"); + speex_bits_init (&enc->bits); + enc->tags = gst_tag_list_new (); + enc->header_sent = FALSE; - return caps; + return TRUE; } - static gboolean -gst_speex_enc_convert_src (GstPad * pad, GstFormat src_format, gint64 src_value, - GstFormat * dest_format, gint64 * dest_value) +gst_speex_enc_stop (GstAudioEncoder * benc) { - gboolean res = TRUE; - GstSpeexEnc *enc; - gint64 avg; + GstSpeexEnc *enc = GST_SPEEX_ENC (benc); - enc = GST_SPEEX_ENC (GST_PAD_PARENT (pad)); - - if (enc->samples_in == 0 || enc->bytes_out == 0 || enc->rate == 0) - return FALSE; - - avg = (enc->bytes_out * enc->rate) / (enc->samples_in); - - switch (src_format) { - case GST_FORMAT_BYTES: - switch (*dest_format) { - case GST_FORMAT_TIME: - *dest_value = src_value * GST_SECOND / avg; - break; - default: - res = FALSE; - } - break; - case GST_FORMAT_TIME: - switch (*dest_format) { - case GST_FORMAT_BYTES: - *dest_value = src_value * avg / GST_SECOND; - break; - default: - res = FALSE; - } - break; - default: - res = FALSE; + GST_DEBUG_OBJECT (enc, "stop"); + enc->header_sent = FALSE; + if (enc->state) { + speex_encoder_destroy (enc->state); + enc->state = NULL; } - return res; -} + speex_bits_destroy (&enc->bits); + gst_tag_list_free (enc->tags); + enc->tags = NULL; + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + enc->headers = NULL; -static gboolean -gst_speex_enc_convert_sink (GstPad * pad, GstFormat src_format, - gint64 src_value, GstFormat * dest_format, gint64 * dest_value) -{ - gboolean res = TRUE; - guint scale = 1; - gint bytes_per_sample; - GstSpeexEnc *enc; + gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); - enc = GST_SPEEX_ENC (GST_PAD_PARENT (pad)); - - bytes_per_sample = enc->channels * 2; - - switch (src_format) { - case GST_FORMAT_BYTES: - switch (*dest_format) { - case GST_FORMAT_DEFAULT: - if (bytes_per_sample == 0) - return FALSE; - *dest_value = src_value / bytes_per_sample; - break; - case GST_FORMAT_TIME: - { - gint byterate = bytes_per_sample * enc->rate; - - if (byterate == 0) - return FALSE; - *dest_value = src_value * GST_SECOND / byterate; - break; - } - default: - res = FALSE; - } - break; - case GST_FORMAT_DEFAULT: - switch (*dest_format) { - case GST_FORMAT_BYTES: - *dest_value = src_value * bytes_per_sample; - break; - case GST_FORMAT_TIME: - if (enc->rate == 0) - return FALSE; - *dest_value = src_value * GST_SECOND / enc->rate; - break; - default: - res = FALSE; - } - break; - case GST_FORMAT_TIME: - switch (*dest_format) { - case GST_FORMAT_BYTES: - scale = bytes_per_sample; - /* fallthrough */ - case GST_FORMAT_DEFAULT: - *dest_value = src_value * scale * enc->rate / GST_SECOND; - break; - default: - res = FALSE; - } - break; - default: - res = FALSE; - } - return res; + return TRUE; } static gint64 @@ -426,187 +295,45 @@ gst_speex_enc_get_latency (GstSpeexEnc * enc) return 34 * GST_MSECOND; } -static const GstQueryType * -gst_speex_enc_get_query_types (GstPad * pad) -{ - static const GstQueryType gst_speex_enc_src_query_types[] = { - GST_QUERY_POSITION, - GST_QUERY_DURATION, - GST_QUERY_CONVERT, - GST_QUERY_LATENCY, - 0 - }; - - return gst_speex_enc_src_query_types; -} - static gboolean -gst_speex_enc_src_query (GstPad * pad, GstQuery * query) +gst_speex_enc_set_format (GstAudioEncoder * benc, GstAudioInfo * info) { - gboolean res = TRUE; GstSpeexEnc *enc; - enc = GST_SPEEX_ENC (gst_pad_get_parent (pad)); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_POSITION: - { - GstFormat fmt, req_fmt; - gint64 pos, val; + enc = GST_SPEEX_ENC (benc); - gst_query_parse_position (query, &req_fmt, NULL); - if ((res = gst_pad_query_peer_position (enc->sinkpad, &req_fmt, &val))) { - gst_query_set_position (query, req_fmt, val); - break; - } + enc->channels = GST_AUDIO_INFO_CHANNELS (info); + enc->rate = GST_AUDIO_INFO_RATE (info); - fmt = GST_FORMAT_TIME; - if (!(res = gst_pad_query_peer_position (enc->sinkpad, &fmt, &pos))) - break; - - if ((res = - gst_pad_query_peer_convert (enc->sinkpad, fmt, pos, &req_fmt, - &val))) - gst_query_set_position (query, req_fmt, val); - - break; - } - case GST_QUERY_DURATION: - { - GstFormat fmt, req_fmt; - gint64 dur, val; - - gst_query_parse_duration (query, &req_fmt, NULL); - if ((res = gst_pad_query_peer_duration (enc->sinkpad, &req_fmt, &val))) { - gst_query_set_duration (query, req_fmt, val); - break; - } - - fmt = GST_FORMAT_TIME; - if (!(res = gst_pad_query_peer_duration (enc->sinkpad, &fmt, &dur))) - break; - - if ((res = - gst_pad_query_peer_convert (enc->sinkpad, fmt, dur, &req_fmt, - &val))) { - gst_query_set_duration (query, req_fmt, val); - } - break; - } - case GST_QUERY_CONVERT: - { - GstFormat src_fmt, dest_fmt; - gint64 src_val, dest_val; - - gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); - if (!(res = gst_speex_enc_convert_src (pad, src_fmt, src_val, &dest_fmt, - &dest_val))) - goto error; - gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); - break; - } - case GST_QUERY_LATENCY: - { - gboolean live; - GstClockTime min_latency, max_latency; - gint64 latency; - - if ((res = gst_pad_peer_query (enc->sinkpad, query))) { - gst_query_parse_latency (query, &live, &min_latency, &max_latency); - GST_LOG_OBJECT (pad, "Upstream latency: %" GST_PTR_FORMAT, query); - - latency = gst_speex_enc_get_latency (enc); - - /* add our latency */ - min_latency += latency; - if (max_latency != -1) - max_latency += latency; - - gst_query_set_latency (query, live, min_latency, max_latency); - GST_LOG_OBJECT (pad, "Adjusted latency: %" GST_PTR_FORMAT, query); - } - break; - } - default: - res = gst_pad_peer_query (enc->sinkpad, query); - break; + /* handle reconfigure */ + if (enc->state) { + speex_encoder_destroy (enc->state); + enc->state = NULL; } -error: - - gst_object_unref (enc); + if (!gst_speex_enc_setup (enc)) + return FALSE; - return res; -} + /* feedback to base class */ + gst_audio_encoder_set_latency (benc, + gst_speex_enc_get_latency (enc), gst_speex_enc_get_latency (enc)); + gst_audio_encoder_set_lookahead (benc, enc->lookahead); -static gboolean -gst_speex_enc_sink_query (GstPad * pad, GstQuery * query) -{ - gboolean res = TRUE; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_CONVERT: - { - GstFormat src_fmt, dest_fmt; - gint64 src_val, dest_val; - - gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); - if (!(res = - gst_speex_enc_convert_sink (pad, src_fmt, src_val, &dest_fmt, - &dest_val))) - goto error; - gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); - break; - } - default: - res = gst_pad_query_default (pad, query); - break; + if (enc->nframes == 0) { + /* as many frames as available input allows */ + gst_audio_encoder_set_frame_samples_min (benc, enc->frame_size); + gst_audio_encoder_set_frame_samples_max (benc, enc->frame_size); + gst_audio_encoder_set_frame_max (benc, 0); + } else { + /* exactly as many frames as configured */ + gst_audio_encoder_set_frame_samples_min (benc, + enc->frame_size * enc->nframes); + gst_audio_encoder_set_frame_samples_max (benc, + enc->frame_size * enc->nframes); + gst_audio_encoder_set_frame_max (benc, 1); } -error: - return res; -} - -static void -gst_speex_enc_init (GstSpeexEnc * enc, GstSpeexEncClass * klass) -{ - enc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); - gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad); - gst_pad_set_event_function (enc->sinkpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_sinkevent)); - gst_pad_set_chain_function (enc->sinkpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_chain)); - gst_pad_set_setcaps_function (enc->sinkpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_sink_setcaps)); - gst_pad_set_getcaps_function (enc->sinkpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_sink_getcaps)); - gst_pad_set_query_function (enc->sinkpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_sink_query)); - - enc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); - gst_pad_set_query_function (enc->srcpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_src_query)); - gst_pad_set_query_type_function (enc->srcpad, - GST_DEBUG_FUNCPTR (gst_speex_enc_get_query_types)); - gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad); - - enc->channels = -1; - enc->rate = -1; - - enc->quality = DEFAULT_QUALITY; - enc->bitrate = DEFAULT_BITRATE; - enc->mode = DEFAULT_MODE; - enc->vbr = DEFAULT_VBR; - enc->abr = DEFAULT_ABR; - enc->vad = DEFAULT_VAD; - enc->dtx = DEFAULT_DTX; - enc->complexity = DEFAULT_COMPLEXITY; - enc->nframes = DEFAULT_NFRAMES; - - enc->setup = FALSE; - enc->header_sent = FALSE; - - enc->adapter = gst_adapter_new (); + return TRUE; } static GstBuffer * @@ -633,7 +360,7 @@ gst_speex_enc_create_metadata_buffer (GstSpeexEnc * enc) 0, "Encoded with GStreamer Speexenc"); gst_tag_list_free (merged_tags); - GST_BUFFER_OFFSET (comments) = enc->bytes_out; + GST_BUFFER_OFFSET (comments) = 0; GST_BUFFER_OFFSET_END (comments) = 0; return comments; @@ -651,8 +378,6 @@ gst_speex_enc_set_last_msg (GstSpeexEnc * enc, const gchar * msg) static gboolean gst_speex_enc_setup (GstSpeexEnc * enc) { - enc->setup = FALSE; - switch (enc->mode) { case GST_SPEEX_ENC_MODE_UWB: GST_LOG_OBJECT (enc, "configuring for requested UWB mode"); @@ -769,97 +494,30 @@ gst_speex_enc_setup (GstSpeexEnc * enc) GST_LOG_OBJECT (enc, "we have frame size %d, lookahead %d", enc->frame_size, enc->lookahead); - enc->setup = TRUE; - return TRUE; } -/* prepare a buffer for transmission */ -static GstBuffer * -gst_speex_enc_buffer_from_data (GstSpeexEnc * enc, guchar * data, - gint data_len, guint64 granulepos) -{ - GstBuffer *outbuf; - - outbuf = gst_buffer_new_and_alloc (data_len); - memcpy (GST_BUFFER_DATA (outbuf), data, data_len); - GST_BUFFER_OFFSET (outbuf) = enc->bytes_out; - GST_BUFFER_OFFSET_END (outbuf) = granulepos; - - GST_LOG_OBJECT (enc, "encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf)); - return outbuf; -} - - -/* push out the buffer and do internal bookkeeping */ +/* push out the buffer */ static GstFlowReturn gst_speex_enc_push_buffer (GstSpeexEnc * enc, GstBuffer * buffer) { guint size; size = GST_BUFFER_SIZE (buffer); - - enc->bytes_out += size; - GST_DEBUG_OBJECT (enc, "pushing output buffer of size %u", size); - return gst_pad_push (enc->srcpad, buffer); -} - -static GstCaps * -gst_speex_enc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1, - GstBuffer * buf2) -{ - GstStructure *structure = NULL; - GstBuffer *buf; - GValue array = { 0 }; - GValue value = { 0 }; - - caps = gst_caps_make_writable (caps); - structure = gst_caps_get_structure (caps, 0); - - g_assert (gst_buffer_is_metadata_writable (buf1)); - g_assert (gst_buffer_is_metadata_writable (buf2)); - - /* mark buffers */ - GST_BUFFER_FLAG_SET (buf1, GST_BUFFER_FLAG_IN_CAPS); - GST_BUFFER_FLAG_SET (buf2, GST_BUFFER_FLAG_IN_CAPS); - - /* put buffers in a fixed list */ - g_value_init (&array, GST_TYPE_ARRAY); - g_value_init (&value, GST_TYPE_BUFFER); - buf = gst_buffer_copy (buf1); - gst_value_set_buffer (&value, buf); - gst_buffer_unref (buf); - gst_value_array_append_value (&array, &value); - g_value_unset (&value); - g_value_init (&value, GST_TYPE_BUFFER); - buf = gst_buffer_copy (buf2); - gst_value_set_buffer (&value, buf); - gst_buffer_unref (buf); - gst_value_array_append_value (&array, &value); - gst_structure_set_value (structure, "streamheader", &array); - g_value_unset (&value); - g_value_unset (&array); - - return caps; + gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (enc))); + return gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (enc), buffer); } - static gboolean -gst_speex_enc_sinkevent (GstPad * pad, GstEvent * event) +gst_speex_enc_sink_event (GstAudioEncoder * benc, GstEvent * event) { - gboolean res = TRUE; GstSpeexEnc *enc; - enc = GST_SPEEX_ENC (gst_pad_get_parent (pad)); + enc = GST_SPEEX_ENC (benc); switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_EOS: - if (enc->setup) - gst_speex_enc_encode (enc, TRUE); - res = gst_pad_event_default (pad, event); - break; case GST_EVENT_TAG: { if (enc->tags) { @@ -871,114 +529,153 @@ gst_speex_enc_sinkevent (GstPad * pad, GstEvent * event) } else { g_assert_not_reached (); } - res = gst_pad_event_default (pad, event); break; } default: - res = gst_pad_event_default (pad, event); break; } - gst_object_unref (enc); - - return res; + /* we only peeked, let base class handle it */ + return FALSE; } static GstFlowReturn -gst_speex_enc_encode (GstSpeexEnc * enc, gboolean flush) +gst_speex_enc_encode (GstSpeexEnc * enc, GstBuffer * buf) { gint frame_size = enc->frame_size; - gint bytes = frame_size * 2 * enc->channels; + gint bytes = frame_size * 2 * enc->channels, samples, size; + gint outsize, written, dtx_ret = 0; + guint8 *data, *data0 = NULL; + GstBuffer *outbuf; GstFlowReturn ret = GST_FLOW_OK; - if (flush && gst_adapter_available (enc->adapter) % bytes != 0) { - guint diff = gst_adapter_available (enc->adapter) % bytes; - GstBuffer *buf = gst_buffer_new_and_alloc (diff); + if (G_LIKELY (buf)) { + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); - memset (GST_BUFFER_DATA (buf), 0, diff); - gst_adapter_push (enc->adapter, buf); + if (G_UNLIKELY (size % bytes)) { + GST_DEBUG_OBJECT (enc, "draining; adding silence samples"); + size = ((size / bytes) + 1) * bytes; + data0 = data = g_malloc0 (size); + memcpy (data, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + } + } else { + GST_DEBUG_OBJECT (enc, "nothing to drain"); + goto done; } - while (gst_adapter_available (enc->adapter) >= bytes) { - gint16 *data; - gint outsize, written, dtx_ret; - GstBuffer *outbuf; + samples = size / (2 * enc->channels); + speex_bits_reset (&enc->bits); - data = (gint16 *) gst_adapter_take (enc->adapter, bytes); - - enc->samples_in += frame_size; + /* FIXME what about dropped samples if DTS enabled ?? */ + while (size) { GST_DEBUG_OBJECT (enc, "encoding %d samples (%d bytes)", frame_size, bytes); if (enc->channels == 2) { - speex_encode_stereo_int (data, frame_size, &enc->bits); + speex_encode_stereo_int ((gint16 *) data, frame_size, &enc->bits); } - dtx_ret = speex_encode_int (enc->state, data, &enc->bits); + dtx_ret += speex_encode_int (enc->state, (gint16 *) data, &enc->bits); - g_free (data); + data += bytes; + size -= bytes; + } - enc->frameno++; - enc->frameno_out++; + speex_bits_insert_terminator (&enc->bits); + outsize = speex_bits_nbytes (&enc->bits); - if ((enc->frameno % enc->nframes) != 0) - continue; + ret = gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), + GST_BUFFER_OFFSET_NONE, outsize, + GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (enc)), &outbuf); - speex_bits_insert_terminator (&enc->bits); - outsize = speex_bits_nbytes (&enc->bits); + if ((GST_FLOW_OK != ret)) + goto done; - ret = gst_pad_alloc_buffer_and_set_caps (enc->srcpad, - GST_BUFFER_OFFSET_NONE, outsize, GST_PAD_CAPS (enc->srcpad), &outbuf); + written = speex_bits_write (&enc->bits, + (gchar *) GST_BUFFER_DATA (outbuf), outsize); - if ((GST_FLOW_OK != ret)) - goto done; + if (G_UNLIKELY (written < outsize)) { + GST_ERROR_OBJECT (enc, "short write: %d < %d bytes", written, outsize); + GST_BUFFER_SIZE (outbuf) = written; + } else if (G_UNLIKELY (written > outsize)) { + GST_ERROR_OBJECT (enc, "overrun: %d > %d bytes", written, outsize); + } - written = speex_bits_write (&enc->bits, - (gchar *) GST_BUFFER_DATA (outbuf), outsize); + if (!dtx_ret) + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP); - if (G_UNLIKELY (written != outsize)) { - GST_ERROR_OBJECT (enc, "short write: %d < %d bytes", written, outsize); - GST_BUFFER_SIZE (outbuf) = written; - } + ret = gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER (enc), + outbuf, samples); - speex_bits_reset (&enc->bits); +done: + g_free (data0); + return ret; +} - if (!dtx_ret) - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP); +/* + * (really really) FIXME: move into core (dixit tpm) + */ +/** + * _gst_caps_set_buffer_array: + * @caps: a #GstCaps + * @field: field in caps to set + * @buf: header buffers + * + * Adds given buffers to an array of buffers set as the given @field + * on the given @caps. List of buffer arguments must be NULL-terminated. + * + * Returns: input caps with a streamheader field added, or NULL if some error + */ +static GstCaps * +_gst_caps_set_buffer_array (GstCaps * caps, const gchar * field, + GstBuffer * buf, ...) +{ + GstStructure *structure = NULL; + va_list va; + GValue array = { 0 }; + GValue value = { 0 }; + + g_return_val_if_fail (caps != NULL, NULL); + g_return_val_if_fail (gst_caps_is_fixed (caps), NULL); + g_return_val_if_fail (field != NULL, NULL); + + caps = gst_caps_make_writable (caps); + structure = gst_caps_get_structure (caps, 0); - GST_BUFFER_TIMESTAMP (outbuf) = enc->start_ts + - gst_util_uint64_scale_int ((enc->frameno_out - - enc->nframes) * frame_size - enc->lookahead, GST_SECOND, enc->rate); - GST_BUFFER_DURATION (outbuf) = - gst_util_uint64_scale_int (frame_size * enc->nframes, GST_SECOND, - enc->rate); - /* set gp time and granulepos; see gst-plugins-base/ext/ogg/README */ - GST_BUFFER_OFFSET_END (outbuf) = enc->granulepos_offset + - ((enc->frameno_out) * frame_size - enc->lookahead); - GST_BUFFER_OFFSET (outbuf) = - gst_util_uint64_scale_int (GST_BUFFER_OFFSET_END (outbuf), GST_SECOND, - enc->rate); + g_value_init (&array, GST_TYPE_ARRAY); - ret = gst_speex_enc_push_buffer (enc, outbuf); + va_start (va, buf); + /* put buffers in a fixed list */ + while (buf) { + g_assert (gst_buffer_is_metadata_writable (buf)); + + /* mark buffer */ + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + + g_value_init (&value, GST_TYPE_BUFFER); + buf = gst_buffer_copy (buf); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); - if ((GST_FLOW_OK != ret) && (GST_FLOW_NOT_LINKED != ret)) - goto done; + buf = va_arg (va, GstBuffer *); } -done: + gst_structure_set_value (structure, field, &array); + g_value_unset (&array); - return ret; + return caps; } static GstFlowReturn -gst_speex_enc_chain (GstPad * pad, GstBuffer * buf) +gst_speex_enc_handle_frame (GstAudioEncoder * benc, GstBuffer * buf) { GstSpeexEnc *enc; GstFlowReturn ret = GST_FLOW_OK; - enc = GST_SPEEX_ENC (GST_PAD_PARENT (pad)); - - if (!enc->setup) - goto not_setup; + enc = GST_SPEEX_ENC (benc); if (!enc->header_sent) { /* Speex streams begin with two headers; the initial header (with @@ -994,139 +691,77 @@ gst_speex_enc_chain (GstPad * pad, GstBuffer * buf) /* create header buffer */ data = (guint8 *) speex_header_to_packet (&enc->header, &data_len); - buf1 = gst_speex_enc_buffer_from_data (enc, data, data_len, 0); - free (data); + buf1 = gst_buffer_new (); + GST_BUFFER_DATA (buf1) = GST_BUFFER_MALLOCDATA (buf1) = data; + GST_BUFFER_SIZE (buf1) = data_len; + GST_BUFFER_OFFSET_END (buf1) = 0; + GST_BUFFER_OFFSET (buf1) = 0; /* create comment buffer */ buf2 = gst_speex_enc_create_metadata_buffer (enc); /* mark and put on caps */ - caps = gst_pad_get_caps (enc->srcpad); - caps = gst_speex_enc_set_header_on_caps (caps, buf1, buf2); - - gst_caps_set_simple (caps, - "rate", G_TYPE_INT, enc->rate, + caps = gst_caps_new_simple ("audio/x-speex", "rate", G_TYPE_INT, enc->rate, "channels", G_TYPE_INT, enc->channels, NULL); + caps = _gst_caps_set_buffer_array (caps, "streamheader", buf1, buf2, NULL); /* negotiate with these caps */ GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps); - gst_pad_set_caps (enc->srcpad, caps); gst_buffer_set_caps (buf1, caps); gst_buffer_set_caps (buf2, caps); + gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (enc), caps); gst_caps_unref (caps); /* push out buffers */ - ret = gst_speex_enc_push_buffer (enc, buf1); - - if (ret != GST_FLOW_OK) { - gst_buffer_unref (buf2); - goto done; - } - - ret = gst_speex_enc_push_buffer (enc, buf2); - - if (ret != GST_FLOW_OK) - goto done; - - speex_bits_reset (&enc->bits); + /* store buffers for later pre_push sending */ + g_slist_foreach (enc->headers, (GFunc) gst_buffer_unref, NULL); + enc->headers = NULL; + GST_DEBUG_OBJECT (enc, "storing header buffers"); + enc->headers = g_slist_prepend (enc->headers, buf2); + enc->headers = g_slist_prepend (enc->headers, buf1); enc->header_sent = TRUE; } - /* Save the timestamp of the first buffer. This will be later - * used as offset for all following buffers */ - if (enc->start_ts == GST_CLOCK_TIME_NONE) { - if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { - enc->start_ts = GST_BUFFER_TIMESTAMP (buf); - enc->granulepos_offset = gst_util_uint64_scale - (GST_BUFFER_TIMESTAMP (buf), enc->rate, GST_SECOND); - } else { - enc->start_ts = 0; - enc->granulepos_offset = 0; - } - } + GST_DEBUG_OBJECT (enc, "received buffer %p of %u bytes", buf, + buf ? GST_BUFFER_SIZE (buf) : 0); - /* Check if we have a continous stream, if not drop some samples or the buffer or - * insert some silence samples */ - if (enc->next_ts != GST_CLOCK_TIME_NONE && - GST_BUFFER_TIMESTAMP (buf) < enc->next_ts) { - guint64 diff = enc->next_ts - GST_BUFFER_TIMESTAMP (buf); - guint64 diff_bytes; - - GST_WARNING_OBJECT (enc, "Buffer is older than previous " - "timestamp + duration (%" GST_TIME_FORMAT "< %" GST_TIME_FORMAT - "), cannot handle. Clipping buffer.", - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), - GST_TIME_ARGS (enc->next_ts)); - - diff_bytes = GST_CLOCK_TIME_TO_FRAMES (diff, enc->rate) * enc->channels * 2; - if (diff_bytes >= GST_BUFFER_SIZE (buf)) { - gst_buffer_unref (buf); - return GST_FLOW_OK; - } - buf = gst_buffer_make_metadata_writable (buf); - GST_BUFFER_DATA (buf) += diff_bytes; - GST_BUFFER_SIZE (buf) -= diff_bytes; + ret = gst_speex_enc_encode (enc, buf); - GST_BUFFER_TIMESTAMP (buf) += diff; - if (GST_BUFFER_DURATION_IS_VALID (buf)) - GST_BUFFER_DURATION (buf) -= diff; - } - - if (enc->next_ts != GST_CLOCK_TIME_NONE - && GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { - guint64 max_diff = - gst_util_uint64_scale (enc->frame_size, GST_SECOND, enc->rate); - - if (GST_BUFFER_TIMESTAMP (buf) != enc->next_ts && - GST_BUFFER_TIMESTAMP (buf) - enc->next_ts > max_diff) { - GST_WARNING_OBJECT (enc, - "Discontinuity detected: %" G_GUINT64_FORMAT " > %" G_GUINT64_FORMAT, - GST_BUFFER_TIMESTAMP (buf) - enc->next_ts, max_diff); + return ret; +} - gst_speex_enc_encode (enc, TRUE); +static GstFlowReturn +gst_speex_enc_pre_push (GstAudioEncoder * benc, GstBuffer ** buffer) +{ + GstSpeexEnc *enc; + GstFlowReturn ret = GST_FLOW_OK; - enc->frameno_out = 0; - enc->start_ts = GST_BUFFER_TIMESTAMP (buf); - enc->granulepos_offset = gst_util_uint64_scale - (GST_BUFFER_TIMESTAMP (buf), enc->rate, GST_SECOND); + enc = GST_SPEEX_ENC (benc); + + /* FIXME 0.11 ? get rid of this special ogg stuff and have it + * put and use 'codec data' in caps like anything else, + * with all the usual out-of-band advantage etc */ + if (G_UNLIKELY (enc->headers)) { + GSList *header = enc->headers; + + /* try to push all of these, if we lose one, might as well lose all */ + while (header) { + if (ret == GST_FLOW_OK) + ret = gst_speex_enc_push_buffer (enc, header->data); + else + gst_speex_enc_push_buffer (enc, header->data); + header = g_slist_next (header); } - } - - if (GST_BUFFER_TIMESTAMP_IS_VALID (buf) - && GST_BUFFER_DURATION_IS_VALID (buf)) - enc->next_ts = GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf); - else - enc->next_ts = GST_CLOCK_TIME_NONE; - - GST_DEBUG_OBJECT (enc, "received buffer of %u bytes", GST_BUFFER_SIZE (buf)); - - /* push buffer to adapter */ - gst_adapter_push (enc->adapter, buf); - buf = NULL; - ret = gst_speex_enc_encode (enc, FALSE); - -done: - - if (buf) - gst_buffer_unref (buf); - - return ret; - - /* ERRORS */ -not_setup: - { - GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), - ("encoder not initialized (input is not audio?)")); - ret = GST_FLOW_NOT_NEGOTIATED; - goto done; + g_slist_free (enc->headers); + enc->headers = NULL; } + return ret; } - static void gst_speex_enc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) @@ -1213,54 +848,3 @@ gst_speex_enc_set_property (GObject * object, guint prop_id, break; } } - -static GstStateChangeReturn -gst_speex_enc_change_state (GstElement * element, GstStateChange transition) -{ - GstSpeexEnc *enc = GST_SPEEX_ENC (element); - GstStateChangeReturn res; - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - enc->tags = gst_tag_list_new (); - break; - case GST_STATE_CHANGE_READY_TO_PAUSED: - speex_bits_init (&enc->bits); - enc->frameno = 0; - enc->frameno_out = 0; - enc->samples_in = 0; - enc->start_ts = GST_CLOCK_TIME_NONE; - enc->next_ts = GST_CLOCK_TIME_NONE; - enc->granulepos_offset = 0; - break; - case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - /* fall through */ - default: - break; - } - - res = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (res == GST_STATE_CHANGE_FAILURE) - return res; - - switch (transition) { - case GST_STATE_CHANGE_PLAYING_TO_PAUSED: - break; - case GST_STATE_CHANGE_PAUSED_TO_READY: - enc->setup = FALSE; - enc->header_sent = FALSE; - if (enc->state) { - speex_encoder_destroy (enc->state); - enc->state = NULL; - } - speex_bits_destroy (&enc->bits); - break; - case GST_STATE_CHANGE_READY_TO_NULL: - gst_tag_list_free (enc->tags); - enc->tags = NULL; - default: - break; - } - - return res; -} diff --git a/ext/speex/gstspeexenc.h b/ext/speex/gstspeexenc.h index 6de9ebd..5cf5cd8 100644 --- a/ext/speex/gstspeexenc.h +++ b/ext/speex/gstspeexenc.h @@ -23,7 +23,7 @@ #include -#include +#include #include #include @@ -53,14 +53,7 @@ typedef struct _GstSpeexEnc GstSpeexEnc; typedef struct _GstSpeexEncClass GstSpeexEncClass; struct _GstSpeexEnc { - GstElement element; - - /* pads */ - GstPad *sinkpad, - *srcpad; - - gint packet_count; - gint n_packets; + GstAudioEncoder element; SpeexBits bits; SpeexHeader header; @@ -70,9 +63,9 @@ struct _GstSpeexEnc { const SpeexMode *speex_mode; #endif void *state; - GstSpeexMode mode; - GstAdapter *adapter; + /* properties */ + GstSpeexMode mode; gfloat quality; gint bitrate; gboolean vbr; @@ -81,40 +74,25 @@ struct _GstSpeexEnc { gboolean dtx; gint complexity; gint nframes; - - gint lookahead; + gchar *last_message; gint channels; gint rate; - gboolean setup; gboolean header_sent; - - guint64 samples_in; - guint64 bytes_out; + GSList *headers; GstTagList *tags; - gchar *last_message; - gint frame_size; - guint64 frameno; - guint64 frameno_out; + gint lookahead; guint8 *comments; gint comment_len; - - /* Timestamp and granulepos tracking */ - GstClockTime start_ts; - GstClockTime next_ts; - guint64 granulepos_offset; }; struct _GstSpeexEncClass { - GstElementClass parent_class; - - /* signals */ - void (*frame_encoded) (GstElement *element); + GstAudioEncoderClass parent_class; }; GType gst_speex_enc_get_type (void); diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in index ffeab08..4d907c2 100644 --- a/ext/taglib/Makefile.in +++ b/ext/taglib/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgsttaglib_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgsttaglib_la_OBJECTS = libgsttaglib_la-gsttaglibmux.lo \ libgsttaglib_la-gstid3v2mux.lo libgsttaglib_la-gstapev2mux.lo libgsttaglib_la_OBJECTS = $(am_libgsttaglib_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsttaglib_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,18 +133,18 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -147,18 +152,18 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_$(V)) -am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CXXLD = $(am__v_CXXLD_$(V)) -am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsttaglib_la_SOURCES) DIST_SOURCES = $(libgsttaglib_la_SOURCES) @@ -241,7 +246,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -316,7 +324,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -340,6 +347,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -374,18 +382,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -438,6 +438,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -472,7 +473,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -578,7 +578,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsttaglib.la: $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_DEPENDENCIES) +libgsttaglib.la: $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_DEPENDENCIES) $(EXTRA_libgsttaglib_la_DEPENDENCIES) $(AM_V_CXXLD)$(libgsttaglib_la_LINK) -rpath $(plugindir) $(libgsttaglib_la_OBJECTS) $(libgsttaglib_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -594,74 +594,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsttaglib_la-gsttaglibmux.lo: gsttaglibmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -MT libgsttaglib_la-gsttaglibmux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gsttaglibmux.Tpo -c -o libgsttaglib_la-gsttaglibmux.lo `test -f 'gsttaglibmux.c' || echo '$(srcdir)/'`gsttaglibmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gsttaglibmux.Tpo $(DEPDIR)/libgsttaglib_la-gsttaglibmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttaglibmux.c' object='libgsttaglib_la-gsttaglibmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttaglibmux.c' object='libgsttaglib_la-gsttaglibmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -c -o libgsttaglib_la-gsttaglibmux.lo `test -f 'gsttaglibmux.c' || echo '$(srcdir)/'`gsttaglibmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CFLAGS) $(CFLAGS) -c -o libgsttaglib_la-gsttaglibmux.lo `test -f 'gsttaglibmux.c' || echo '$(srcdir)/'`gsttaglibmux.c .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libgsttaglib_la-gstid3v2mux.lo: gstid3v2mux.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstid3v2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Tpo -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Tpo $(DEPDIR)/libgsttaglib_la-gstid3v2mux.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstid3v2mux.cc' object='libgsttaglib_la-gstid3v2mux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstid3v2mux.cc' object='libgsttaglib_la-gstid3v2mux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstid3v2mux.lo `test -f 'gstid3v2mux.cc' || echo '$(srcdir)/'`gstid3v2mux.cc libgsttaglib_la-gstapev2mux.lo: gstapev2mux.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -MT libgsttaglib_la-gstapev2mux.lo -MD -MP -MF $(DEPDIR)/libgsttaglib_la-gstapev2mux.Tpo -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttaglib_la-gstapev2mux.Tpo $(DEPDIR)/libgsttaglib_la-gstapev2mux.Plo -@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstapev2mux.cc' object='libgsttaglib_la-gstapev2mux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='gstapev2mux.cc' object='libgsttaglib_la-gstapev2mux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgsttaglib_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttaglib_la_CXXFLAGS) $(CXXFLAGS) -c -o libgsttaglib_la-gstapev2mux.lo `test -f 'gstapev2mux.cc' || echo '$(srcdir)/'`gstapev2mux.cc mostlyclean-libtool: -rm -f *.lo @@ -768,10 +759,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/taglib/gstapev2mux.cc b/ext/taglib/gstapev2mux.cc index 58206e6..c99a31f 100644 --- a/ext/taglib/gstapev2mux.cc +++ b/ext/taglib/gstapev2mux.cc @@ -75,8 +75,7 @@ gst_apev2_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "TagLib-based APEv2 Muxer", "Formatter/Metadata", diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc index 6468048..2b5042e 100644 --- a/ext/taglib/gstid3v2mux.cc +++ b/ext/taglib/gstid3v2mux.cc @@ -84,8 +84,7 @@ gst_id3v2_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "TagLib-based ID3v2 Muxer", "Formatter/Metadata", diff --git a/ext/taglib/gsttaglibmux.c b/ext/taglib/gsttaglibmux.c index 7e8cf6e..094bec1 100644 --- a/ext/taglib/gsttaglibmux.c +++ b/ext/taglib/gsttaglibmux.c @@ -83,8 +83,8 @@ gst_tag_lib_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_tag_lib_mux_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_tag_lib_mux_sink_template); GST_DEBUG_CATEGORY_INIT (gst_tag_lib_mux_debug, "taglibmux", 0, "taglib-based muxer"); diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in index cad3fe0..4eb1dd1 100644 --- a/ext/wavpack/Makefile.in +++ b/ext/wavpack/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +121,8 @@ am_libgstwavpack_la_OBJECTS = libgstwavpack_la-gstwavpack.lo \ libgstwavpack_la-gstwavpackenc.lo \ libgstwavpack_la-gstwavpackstreamreader.lo libgstwavpack_la_OBJECTS = $(am_libgstwavpack_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstwavpack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstwavpack_la_SOURCES) DIST_SOURCES = $(libgstwavpack_la_SOURCES) @@ -230,7 +235,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -305,7 +313,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -329,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -363,18 +371,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -427,6 +427,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -461,7 +462,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -571,7 +571,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstwavpack.la: $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_DEPENDENCIES) +libgstwavpack.la: $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_DEPENDENCIES) $(EXTRA_libgstwavpack_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavpack_la_LINK) -rpath $(plugindir) $(libgstwavpack_la_OBJECTS) $(libgstwavpack_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -590,74 +590,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstwavpack_la-gstwavpack.lo: gstwavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpack.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpack.Tpo -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpack.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpack.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpack.c' object='libgstwavpack_la-gstwavpack.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpack.c' object='libgstwavpack_la-gstwavpack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpack.lo `test -f 'gstwavpack.c' || echo '$(srcdir)/'`gstwavpack.c libgstwavpack_la-gstwavpackcommon.lo: gstwavpackcommon.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackcommon.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Tpo -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackcommon.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpackcommon.c' object='libgstwavpack_la-gstwavpackcommon.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpackcommon.c' object='libgstwavpack_la-gstwavpackcommon.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackcommon.lo `test -f 'gstwavpackcommon.c' || echo '$(srcdir)/'`gstwavpackcommon.c libgstwavpack_la-gstwavpackparse.lo: gstwavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackparse.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackparse.Tpo -c -o libgstwavpack_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackparse.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpackparse.c' object='libgstwavpack_la-gstwavpackparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpackparse.c' object='libgstwavpack_la-gstwavpackparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackparse.lo `test -f 'gstwavpackparse.c' || echo '$(srcdir)/'`gstwavpackparse.c libgstwavpack_la-gstwavpackdec.lo: gstwavpackdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackdec.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Tpo -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpackdec.c' object='libgstwavpack_la-gstwavpackdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpackdec.c' object='libgstwavpack_la-gstwavpackdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackdec.lo `test -f 'gstwavpackdec.c' || echo '$(srcdir)/'`gstwavpackdec.c libgstwavpack_la-gstwavpackenc.lo: gstwavpackenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackenc.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Tpo -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpackenc.c' object='libgstwavpack_la-gstwavpackenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpackenc.c' object='libgstwavpack_la-gstwavpackenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackenc.lo `test -f 'gstwavpackenc.c' || echo '$(srcdir)/'`gstwavpackenc.c libgstwavpack_la-gstwavpackstreamreader.lo: gstwavpackstreamreader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -MT libgstwavpack_la-gstwavpackstreamreader.lo -MD -MP -MF $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Tpo -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Tpo $(DEPDIR)/libgstwavpack_la-gstwavpackstreamreader.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavpackstreamreader.c' object='libgstwavpack_la-gstwavpackstreamreader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavpackstreamreader.c' object='libgstwavpack_la-gstwavpackstreamreader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavpack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavpack_la_CFLAGS) $(CFLAGS) -c -o libgstwavpack_la-gstwavpackstreamreader.lo `test -f 'gstwavpackstreamreader.c' || echo '$(srcdir)/'`gstwavpackstreamreader.c mostlyclean-libtool: -rm -f *.lo @@ -764,10 +755,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c index f7c96ba..4ba242d 100644 --- a/ext/wavpack/gstwavpackdec.c +++ b/ext/wavpack/gstwavpackdec.c @@ -95,10 +95,8 @@ gst_wavpack_dec_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Wavpack audio decoder", "Codec/Decoder/Audio", "Decodes Wavpack audio data", diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c index aa085fc..a22dd23 100644 --- a/ext/wavpack/gstwavpackenc.c +++ b/ext/wavpack/gstwavpackenc.c @@ -218,12 +218,10 @@ gst_wavpack_enc_base_init (gpointer klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); /* add pad templates */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&wvcsrc_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &wvcsrc_factory); /* set element details */ gst_element_class_set_details_simple (element_class, "Wavpack audio encoder", @@ -858,7 +856,7 @@ gst_wavpack_enc_sink_event (GstPad * pad, GstEvent * event) /* Drop all remaining data, this is no complete block otherwise * it would've been pushed already */ if (enc->pending_buffer) { - gst_object_unref (enc->pending_buffer); + gst_buffer_unref (enc->pending_buffer); enc->pending_buffer = NULL; enc->pending_offset = 0; } diff --git a/ext/wavpack/gstwavpackparse.c b/ext/wavpack/gstwavpackparse.c index 2d9fac4..e1ff785 100644 --- a/ext/wavpack/gstwavpackparse.c +++ b/ext/wavpack/gstwavpackparse.c @@ -41,6 +41,11 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include @@ -115,12 +120,10 @@ gst_wavpack_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&wvc_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, + &wvc_src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Wavpack parser", "Codec/Demuxer/Audio", diff --git a/gconf/Makefile.in b/gconf/Makefile.in index 60f6345..d9d53b2 100644 --- a/gconf/Makefile.in +++ b/gconf/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -81,11 +80,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gstreamer.schemas CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -110,6 +109,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(schemadir)" DATA = $(schema_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -188,7 +193,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -263,7 +271,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -287,6 +294,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -321,18 +329,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -385,6 +385,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -419,7 +420,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -503,9 +503,7 @@ uninstall-schemaDATA: @$(NORMAL_UNINSTALL) @list='$(schema_DATA)'; test -n "$(schemadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(schemadir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(schemadir)" && rm -f $$files + dir='$(DESTDIR)$(schemadir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: @@ -560,10 +558,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h new file mode 100644 index 0000000..b9248e6 --- /dev/null +++ b/gst-libs/gst/glib-compat-private.h @@ -0,0 +1,135 @@ +/* + * glib-compat.c + * Functions copied from glib 2.10 + * + * Copyright 2005 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GLIB_COMPAT_PRIVATE_H__ +#define __GLIB_COMPAT_PRIVATE_H__ + +#include + +G_BEGIN_DECLS + +#if !GLIB_CHECK_VERSION(2,25,0) + +#if defined (_MSC_VER) && !defined(_WIN64) +typedef struct _stat32 GStatBuf; +#else +typedef struct stat GStatBuf; +#endif + +#endif + +#if GLIB_CHECK_VERSION(2,26,0) +#define GLIB_HAS_GDATETIME +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((a),(b),(c)) +#else +#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_pointer_compare_and_exchange ((volatile gpointer *)(a),(b),(c)) +#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \ + g_atomic_int_compare_and_exchange ((volatile int *)(a),(b),(c)) +#endif + +/* See bug #651514 */ +#if GLIB_CHECK_VERSION(2,29,5) +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_add ((a),(b)) +#else +#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_exchange_and_add ((a),(b)) +#endif + +/* copies */ + +#if GLIB_CHECK_VERSION (2, 31, 0) +#define g_mutex_new gst_g_mutex_new +static inline GMutex * +gst_g_mutex_new (void) +{ + GMutex *mutex = g_slice_new (GMutex); + g_mutex_init (mutex); + return mutex; +} +#define g_mutex_free gst_g_mutex_free +static inline void +gst_g_mutex_free (GMutex *mutex) +{ + g_mutex_clear (mutex); + g_slice_free (GMutex, mutex); +} +#define g_static_rec_mutex_init gst_g_static_rec_mutex_init +static inline void +gst_g_static_rec_mutex_init (GStaticRecMutex *mutex) +{ + static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT; + + *mutex = init_mutex; +} +#define g_cond_new gst_g_cond_new +static inline GCond * +gst_g_cond_new (void) +{ + GCond *cond = g_slice_new (GCond); + g_cond_init (cond); + return cond; +} +#define g_cond_free gst_g_cond_free +static inline void +gst_g_cond_free (GCond *cond) +{ + g_cond_clear (cond); + g_slice_free (GCond, cond); +} +#define g_cond_timed_wait gst_g_cond_timed_wait +static inline gboolean +gst_g_cond_timed_wait (GCond *cond, GMutex *mutex, GTimeVal *abs_time) +{ + gint64 end_time; + + if (abs_time == NULL) { + g_cond_wait (cond, mutex); + return TRUE; + } + + end_time = abs_time->tv_sec; + end_time *= 1000000; + end_time += abs_time->tv_usec; + + /* would be nice if we had clock_rtoffset, but that didn't seem to + * make it into the kernel yet... + */ + /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and + * g_get_real_time() are returning the same clock and we'd add ~0 + */ + end_time += g_get_monotonic_time () - g_get_real_time (); + return g_cond_wait_until (cond, mutex, end_time); +} +#endif /* GLIB_CHECK_VERSION (2, 31, 0) */ + +/* adaptations */ + +G_END_DECLS + +#endif diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap index 70a5b97..02c2cd7 100644 --- a/gst-plugins-good.doap +++ b/gst-plugins-good.doap @@ -34,6 +34,29 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library). + 0.10.31 + 0.10 + Faster + 2012-02-20 + + + + + + + + + 0.10.30 + 0.10 + Adagio + 2011-06-15 + + + + + + + 0.10.29 0.10 Soft Cheese Enthusiast diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec deleted file mode 100644 index bacdf06..0000000 --- a/gst-plugins-good.spec +++ /dev/null @@ -1,174 +0,0 @@ -%define majorminor 0.10 -%define gstreamer gstreamer - -%define gst_minver 0.10.0 - -Name: %{gstreamer}-plugins-good -Version: 0.10.29 -Release: 1.gst -Summary: GStreamer plug-ins with good code and licensing - -Group: Applications/Multimedia -License: LGPL -URL: http://gstreamer.freedesktop.org/ -Vendor: GStreamer Backpackers Team -Source: http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: %{gstreamer} >= %{gst_minver} -BuildRequires: %{gstreamer}-devel >= %{gst_minver} - -BuildRequires: gcc-c++ - -#BuildRequires: esound-devel >= 0.2.8 -#Obsoletes: gstreamer-esd -# -#Provides: gstreamer-audiosrc -#Provides: gstreamer-audiosink -#BuildRequires: flac-devel >= 1.0.3 -#BuildRequires: GConf2-devel -BuildRequires: libjpeg-devel -#BuildRequires: libcaca-devel -#BuildRequires: libdv-devel -BuildRequires: libpng-devel >= 1.2.0 -#BuildRequires: glibc-devel -#BuildRequires: speex-devel -#BuildRequires: hal-devel -#BuildRequires: libshout-devel >= 2.0 -#BuildRequires: aalib-devel >= 1.3 -#Provides: gstreamer-aasink = %{version}-%{release} -BuildRequires: pulseaudio-libs-devel -#BuildRequires: libavc1394-devel -#BuildRequires: libdc1394-devel -#BuildRequires: libiec61883-devel -#BuildRequires: libraw1394-devel - -%description -GStreamer is a streaming media framework, based on graphs of filters which -operate on media data. Applications using this library can do anything -from real-time sound processing to playing videos, and just about anything -else media-related. Its plugin-based architecture means that new data -types or processing capabilities can be added simply by installing new -plug-ins. - -%prep -%setup -q -n gst-plugins-good-%{version} -%build -%configure \ - --enable-debug \ - --enable-DEBUG - -make %{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT - -export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 -%makeinstall -unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL - -# Clean out files that should not be part of the rpm. -rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - -%find_lang gst-plugins-good-%{majorminor} - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -#export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -#gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/gstreamer-%{majorminor}.schemas > /dev/null - -%files -f gst-plugins-good-%{majorminor}.lang -%defattr(-, root, root) -%doc AUTHORS COPYING README REQUIREMENTS gst-plugins-good.doap -%{_datadir}/gstreamer-%{majorminor}/presets/GstIirEqualizer10Bands.prs -%{_datadir}/gstreamer-%{majorminor}/presets/GstIirEqualizer3Bands.prs - -# non-core plugins without external dependencies -%{_libdir}/gstreamer-%{majorminor}/libgstalaw.so -%{_libdir}/gstreamer-%{majorminor}/libgstalpha.so -%{_libdir}/gstreamer-%{majorminor}/libgstautodetect.so -%{_libdir}/gstreamer-%{majorminor}/libgstavi.so -%{_libdir}/gstreamer-%{majorminor}/libgsteffectv.so -%{_libdir}/gstreamer-%{majorminor}/libgstgoom.so -%{_libdir}/gstreamer-%{majorminor}/libgstlevel.so -%{_libdir}/gstreamer-%{majorminor}/libgstefence.so -%{_libdir}/gstreamer-%{majorminor}/libgstmulaw.so -%{_libdir}/gstreamer-%{majorminor}/libgstisomp4.so -%{_libdir}/gstreamer-%{majorminor}/libgstrtp.so -%{_libdir}/gstreamer-%{majorminor}/libgstrtpmanager.so -%{_libdir}/gstreamer-%{majorminor}/libgstrtsp.so -%{_libdir}/gstreamer-%{majorminor}/libgstsmpte.so -%{_libdir}/gstreamer-%{majorminor}/libgstudp.so -%{_libdir}/gstreamer-%{majorminor}/libgstvideobox.so -%{_libdir}/gstreamer-%{majorminor}/libgstwavenc.so -%{_libdir}/gstreamer-%{majorminor}/libgstwavparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstauparse.so -%{_libdir}/gstreamer-%{majorminor}/libgstdebug.so -%{_libdir}/gstreamer-%{majorminor}/libgstnavigationtest.so -%{_libdir}/gstreamer-%{majorminor}/libgstalphacolor.so -#%{_libdir}/gstreamer-%{majorminor}/libgstcairo.so -%{_libdir}/gstreamer-%{majorminor}/libgstflxdec.so -%{_libdir}/gstreamer-%{majorminor}/libgstmatroska.so -%{_libdir}/gstreamer-%{majorminor}/libgstvideomixer.so -%{_libdir}/gstreamer-%{majorminor}/libgstcutter.so -%{_libdir}/gstreamer-%{majorminor}/libgstmultipart.so -%{_libdir}/gstreamer-%{majorminor}/libgstid3demux.so -%{_libdir}/gstreamer-%{majorminor}/libgstgdkpixbuf.so -%{_libdir}/gstreamer-%{majorminor}/libgstapetag.so -%{_libdir}/gstreamer-%{majorminor}/libgstannodex.so -%{_libdir}/gstreamer-%{majorminor}/libgstvideocrop.so -%{_libdir}/gstreamer-%{majorminor}/libgsticydemux.so -%{_libdir}/gstreamer-%{majorminor}/libgsttaglib.so -%{_libdir}/gstreamer-%{majorminor}/libgstximagesrc.so -%{_libdir}/gstreamer-%{majorminor}/libgstaudiofx.so -%{_libdir}/gstreamer-%{majorminor}/libgstequalizer.so -%{_libdir}/gstreamer-%{majorminor}/libgstmultifile.so -%{_libdir}/gstreamer-%{majorminor}/libgstspectrum.so -%{_libdir}/gstreamer-%{majorminor}/libgstgoom2k1.so -%{_libdir}/gstreamer-%{majorminor}/libgstinterleave.so -%{_libdir}/gstreamer-%{majorminor}/libgstreplaygain.so -%{_libdir}/gstreamer-%{majorminor}/libgstdeinterlace.so -%{_libdir}/gstreamer-%{majorminor}/libgstflv.so -%{_libdir}/gstreamer-%{majorminor}/libgsty4menc.so -%{_libdir}/gstreamer-%{majorminor}/libgstoss4audio.so -%{_libdir}/gstreamer-%{majorminor}/libgstimagefreeze.so -%{_libdir}/gstreamer-%{majorminor}/libgstshapewipe.so -%{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so -%{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so - -# sys plugins -%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so - -# gstreamer-plugins with external dependencies but in the main package -#%{_libdir}/gstreamer-%{majorminor}/libgstcacasink.so -#%{_libdir}/gstreamer-%{majorminor}/libgstesd.so -#%{_libdir}/gstreamer-%{majorminor}/libgstflac.so -#%{_libdir}/gstreamer-%{majorminor}/libgstjack.so -%{_libdir}/gstreamer-%{majorminor}/libgstjpeg.so -%{_libdir}/gstreamer-%{majorminor}/libgstpng.so -#%{_libdir}/gstreamer-%{majorminor}/libgstossaudio.so -#%{_libdir}/gstreamer-%{majorminor}/libgstspeex.so -#%{_libdir}/gstreamer-%{majorminor}/libgstgconfelements.so -#%{_libdir}/gstreamer-%{majorminor}/libgsthalelements.so -#%{_libdir}/gstreamer-%{majorminor}/libgstshout2.so -#%{_libdir}/gstreamer-%{majorminor}/libgstaasink.so -#%{_libdir}/gstreamer-%{majorminor}/libgstdv.so -#%{_libdir}/gstreamer-%{majorminor}/libgst1394.so -#%{_libdir}/gstreamer-%{majorminor}/libgstwavpack.so -%{_libdir}/gstreamer-%{majorminor}/libgstsouphttpsrc.so -%{_libdir}/gstreamer-%{majorminor}/libgstpulse.so - -# schema files -#%{_sysconfdir}/gconf/schemas/gstreamer-%{majorminor}.schemas - -%changelog -* Tue Jun 12 2007 Jan Schmidt -- wavpack and qtdemux have moved from bad - -* Fri Sep 02 2005 Thomas Vander Stichele -- clean up for splitup diff --git a/gst/Makefile.in b/gst/Makefile.in index 66f66ab..3796579 100644 --- a/gst/Makefile.in +++ b/gst/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -70,8 +70,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -85,11 +84,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -208,7 +207,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -283,7 +285,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -307,6 +308,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -341,18 +343,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -405,6 +399,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -439,7 +434,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -486,6 +480,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -710,10 +705,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in index ebb9924..5809748 100644 --- a/gst/alpha/Makefile.in +++ b/gst/alpha/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstalpha_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstalpha_la_OBJECTS = libgstalpha_la-gstalpha.lo libgstalpha_la_OBJECTS = $(am_libgstalpha_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstalpha_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -136,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstalpha_la_SOURCES) $(libgstalphacolor_la_SOURCES) DIST_SOURCES = $(libgstalpha_la_SOURCES) \ @@ -234,7 +239,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -309,7 +317,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -333,6 +340,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -367,18 +375,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -431,6 +431,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -465,7 +466,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -571,9 +571,9 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstalpha.la: $(libgstalpha_la_OBJECTS) $(libgstalpha_la_DEPENDENCIES) +libgstalpha.la: $(libgstalpha_la_OBJECTS) $(libgstalpha_la_DEPENDENCIES) $(EXTRA_libgstalpha_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalpha_la_LINK) -rpath $(plugindir) $(libgstalpha_la_OBJECTS) $(libgstalpha_la_LIBADD) $(LIBS) -libgstalphacolor.la: $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_DEPENDENCIES) +libgstalphacolor.la: $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_DEPENDENCIES) $(EXTRA_libgstalphacolor_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalphacolor_la_LINK) -rpath $(plugindir) $(libgstalphacolor_la_OBJECTS) $(libgstalphacolor_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -588,42 +588,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstalpha_la-gstalpha.lo: gstalpha.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -MT libgstalpha_la-gstalpha.lo -MD -MP -MF $(DEPDIR)/libgstalpha_la-gstalpha.Tpo -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalpha_la-gstalpha.Tpo $(DEPDIR)/libgstalpha_la-gstalpha.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalpha.c' object='libgstalpha_la-gstalpha.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalpha.c' object='libgstalpha_la-gstalpha.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalpha_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalpha_la_CFLAGS) $(CFLAGS) -c -o libgstalpha_la-gstalpha.lo `test -f 'gstalpha.c' || echo '$(srcdir)/'`gstalpha.c libgstalphacolor_la-gstalphacolor.lo: gstalphacolor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -MT libgstalphacolor_la-gstalphacolor.lo -MD -MP -MF $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Tpo -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Tpo $(DEPDIR)/libgstalphacolor_la-gstalphacolor.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalphacolor.c' object='libgstalphacolor_la-gstalphacolor.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalphacolor.c' object='libgstalphacolor_la-gstalphacolor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalphacolor_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalphacolor_la_CFLAGS) $(CFLAGS) -c -o libgstalphacolor_la-gstalphacolor.lo `test -f 'gstalphacolor.c' || echo '$(srcdir)/'`gstalphacolor.c mostlyclean-libtool: -rm -f *.lo @@ -730,10 +725,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c index d72c8c5..f4d0cce 100644 --- a/gst/alpha/gstalpha.c +++ b/gst/alpha/gstalpha.c @@ -161,6 +161,8 @@ static GstStaticCaps gst_alpha_alpha_caps = ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_BGRA ";" GST_VIDEO_CAPS_ABGR ";" GST_VIDEO_CAPS_RGBA); +/* FIXME: why do we need our own lock for this? */ +#if !GLIB_CHECK_VERSION (2, 31, 0) #define GST_ALPHA_LOCK(alpha) G_STMT_START { \ GST_LOG_OBJECT (alpha, "Locking alpha from thread %p", g_thread_self ()); \ g_static_mutex_lock (&alpha->lock); \ @@ -171,6 +173,18 @@ static GstStaticCaps gst_alpha_alpha_caps = GST_LOG_OBJECT (alpha, "Unlocking alpha from thread %p", g_thread_self ()); \ g_static_mutex_unlock (&alpha->lock); \ } G_STMT_END +#else +#define GST_ALPHA_LOCK(alpha) G_STMT_START { \ + GST_LOG_OBJECT (alpha, "Locking alpha from thread %p", g_thread_self ()); \ + g_mutex_lock (&alpha->lock); \ + GST_LOG_OBJECT (alpha, "Locked alpha from thread %p", g_thread_self ()); \ +} G_STMT_END + +#define GST_ALPHA_UNLOCK(alpha) G_STMT_START { \ + GST_LOG_OBJECT (alpha, "Unlocking alpha from thread %p", g_thread_self ()); \ + g_mutex_unlock (&alpha->lock); \ +} G_STMT_END +#endif static gboolean gst_alpha_start (GstBaseTransform * trans); static gboolean gst_alpha_get_unit_size (GstBaseTransform * btrans, @@ -226,10 +240,10 @@ gst_alpha_base_init (gpointer g_class) "Edward Hervey \n" "Jan Schmidt "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_alpha_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_alpha_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_alpha_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_alpha_src_template); GST_DEBUG_CATEGORY_INIT (gst_alpha_debug, "alpha", 0, "alpha - Element for adding alpha channel to streams"); @@ -312,7 +326,11 @@ gst_alpha_init (GstAlpha * alpha, GstAlphaClass * klass) alpha->black_sensitivity = DEFAULT_BLACK_SENSITIVITY; alpha->white_sensitivity = DEFAULT_WHITE_SENSITIVITY; +#if !GLIB_CHECK_VERSION (2, 31, 0) g_static_mutex_init (&alpha->lock); +#else + g_mutex_init (&alpha->lock); +#endif } static void @@ -320,7 +338,11 @@ gst_alpha_finalize (GObject * object) { GstAlpha *alpha = GST_ALPHA (object); +#if !GLIB_CHECK_VERSION (2, 31, 0) g_static_mutex_free (&alpha->lock); +#else + g_mutex_clear (&alpha->lock); +#endif G_OBJECT_CLASS (parent_class)->finalize (object); } diff --git a/gst/alpha/gstalpha.h b/gst/alpha/gstalpha.h index 4402557..5de966e 100644 --- a/gst/alpha/gstalpha.h +++ b/gst/alpha/gstalpha.h @@ -70,7 +70,11 @@ struct _GstAlpha /* */ /* caps */ +#if !GLIB_CHECK_VERSION (2, 31, 0) GStaticMutex lock; +#else + GMutex lock; +#endif GstVideoFormat in_format, out_format; gint width, height; diff --git a/gst/alpha/gstalphacolor.c b/gst/alpha/gstalphacolor.c index 2c9eb4a..3c9b37d 100644 --- a/gst/alpha/gstalphacolor.c +++ b/gst/alpha/gstalphacolor.c @@ -82,10 +82,9 @@ gst_alpha_color_base_init (gpointer g_class) "ARGB from/to AYUV colorspace conversion preserving the alpha channel", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void @@ -281,7 +280,6 @@ transform_ayuv_ayuv (guint8 * data, gint size, const gint * matrix) u = (data[1] * uc[0] + data[2] * uc[1] + data[3] * uc[2] + uc[3]) >> 8; v = (data[1] * vc[0] + data[2] * vc[1] + data[3] * vc[2] + vc[3]) >> 8; - data[0] = data[0]; data[1] = y; data[2] = u; data[3] = v; diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in index 4b47a33..7f5c58c 100644 --- a/gst/apetag/Makefile.in +++ b/gst/apetag/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstapetag_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstapetag_la_OBJECTS = libgstapetag_la-gstapedemux.lo libgstapetag_la_OBJECTS = $(am_libgstapetag_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstapetag_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstapetag_la_SOURCES) DIST_SOURCES = $(libgstapetag_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -557,7 +557,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstapetag.la: $(libgstapetag_la_OBJECTS) $(libgstapetag_la_DEPENDENCIES) +libgstapetag.la: $(libgstapetag_la_OBJECTS) $(libgstapetag_la_DEPENDENCIES) $(EXTRA_libgstapetag_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstapetag_la_LINK) -rpath $(plugindir) $(libgstapetag_la_OBJECTS) $(libgstapetag_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -571,34 +571,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstapetag_la-gstapedemux.lo: gstapedemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -MT libgstapetag_la-gstapedemux.lo -MD -MP -MF $(DEPDIR)/libgstapetag_la-gstapedemux.Tpo -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapetag_la-gstapedemux.Tpo $(DEPDIR)/libgstapetag_la-gstapedemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapedemux.c' object='libgstapetag_la-gstapedemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstapedemux.c' object='libgstapetag_la-gstapedemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapetag_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapetag_la_CFLAGS) $(CFLAGS) -c -o libgstapetag_la-gstapedemux.lo `test -f 'gstapedemux.c' || echo '$(srcdir)/'`gstapedemux.c mostlyclean-libtool: -rm -f *.lo @@ -705,10 +701,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c index accebee..c139ead 100644 --- a/gst/apetag/gstapedemux.c +++ b/gst/apetag/gstapedemux.c @@ -79,8 +79,7 @@ gst_ape_demux_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "APE tag demuxer", "Codec/Demuxer/Metadata", diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in index e617ca1..6bccb89 100644 --- a/gst/audiofx/Makefile.in +++ b/gst/audiofx/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -69,8 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -105,6 +104,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -127,8 +132,8 @@ am_libgstaudiofx_la_OBJECTS = libgstaudiofx_la-audiofx.lo \ libgstaudiofx_la-audiofirfilter.lo \ libgstaudiofx_la-audioecho.lo libgstaudiofx_la_OBJECTS = $(am_libgstaudiofx_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstaudiofx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -144,21 +149,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstaudiofx_la_SOURCES) DIST_SOURCES = $(libgstaudiofx_la_SOURCES) @@ -241,7 +246,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -316,7 +324,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -340,6 +347,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -374,18 +382,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -438,6 +438,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -472,7 +473,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -612,7 +612,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstaudiofx.la: $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_DEPENDENCIES) +libgstaudiofx.la: $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_DEPENDENCIES) $(EXTRA_libgstaudiofx_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaudiofx_la_LINK) -rpath $(plugindir) $(libgstaudiofx_la_OBJECTS) $(libgstaudiofx_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -640,146 +640,128 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstaudiofx_la-audiofx.lo: audiofx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofx.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofx.Tpo -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofx.Tpo $(DEPDIR)/libgstaudiofx_la-audiofx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiofx.c' object='libgstaudiofx_la-audiofx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiofx.c' object='libgstaudiofx_la-audiofx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofx.lo `test -f 'audiofx.c' || echo '$(srcdir)/'`audiofx.c libgstaudiofx_la-audiopanorama.lo: audiopanorama.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiopanorama.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiopanorama.Tpo -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiopanorama.Tpo $(DEPDIR)/libgstaudiofx_la-audiopanorama.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiopanorama.c' object='libgstaudiofx_la-audiopanorama.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiopanorama.c' object='libgstaudiofx_la-audiopanorama.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiopanorama.lo `test -f 'audiopanorama.c' || echo '$(srcdir)/'`audiopanorama.c libgstaudiofx_la-audioinvert.lo: audioinvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioinvert.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioinvert.Tpo -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioinvert.Tpo $(DEPDIR)/libgstaudiofx_la-audioinvert.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audioinvert.c' object='libgstaudiofx_la-audioinvert.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audioinvert.c' object='libgstaudiofx_la-audioinvert.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioinvert.lo `test -f 'audioinvert.c' || echo '$(srcdir)/'`audioinvert.c libgstaudiofx_la-audioamplify.lo: audioamplify.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioamplify.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioamplify.Tpo -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioamplify.Tpo $(DEPDIR)/libgstaudiofx_la-audioamplify.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audioamplify.c' object='libgstaudiofx_la-audioamplify.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audioamplify.c' object='libgstaudiofx_la-audioamplify.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioamplify.lo `test -f 'audioamplify.c' || echo '$(srcdir)/'`audioamplify.c libgstaudiofx_la-audiodynamic.lo: audiodynamic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiodynamic.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiodynamic.Tpo -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiodynamic.Tpo $(DEPDIR)/libgstaudiofx_la-audiodynamic.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiodynamic.c' object='libgstaudiofx_la-audiodynamic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiodynamic.c' object='libgstaudiofx_la-audiodynamic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiodynamic.lo `test -f 'audiodynamic.c' || echo '$(srcdir)/'`audiodynamic.c libgstaudiofx_la-audiokaraoke.lo: audiokaraoke.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiokaraoke.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Tpo -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Tpo $(DEPDIR)/libgstaudiofx_la-audiokaraoke.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiokaraoke.c' object='libgstaudiofx_la-audiokaraoke.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiokaraoke.c' object='libgstaudiofx_la-audiokaraoke.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiokaraoke.lo `test -f 'audiokaraoke.c' || echo '$(srcdir)/'`audiokaraoke.c libgstaudiofx_la-audiofxbaseiirfilter.lo: audiofxbaseiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofxbaseiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Tpo -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofxbaseiirfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiofxbaseiirfilter.c' object='libgstaudiofx_la-audiofxbaseiirfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiofxbaseiirfilter.c' object='libgstaudiofx_la-audiofxbaseiirfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbaseiirfilter.lo `test -f 'audiofxbaseiirfilter.c' || echo '$(srcdir)/'`audiofxbaseiirfilter.c libgstaudiofx_la-audiocheblimit.lo: audiocheblimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiocheblimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Tpo -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Tpo $(DEPDIR)/libgstaudiofx_la-audiocheblimit.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiocheblimit.c' object='libgstaudiofx_la-audiocheblimit.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiocheblimit.c' object='libgstaudiofx_la-audiocheblimit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiocheblimit.lo `test -f 'audiocheblimit.c' || echo '$(srcdir)/'`audiocheblimit.c libgstaudiofx_la-audiochebband.lo: audiochebband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiochebband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiochebband.Tpo -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiochebband.Tpo $(DEPDIR)/libgstaudiofx_la-audiochebband.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiochebband.c' object='libgstaudiofx_la-audiochebband.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiochebband.c' object='libgstaudiofx_la-audiochebband.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiochebband.lo `test -f 'audiochebband.c' || echo '$(srcdir)/'`audiochebband.c libgstaudiofx_la-audioiirfilter.lo: audioiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioiirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Tpo -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audioiirfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audioiirfilter.c' object='libgstaudiofx_la-audioiirfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audioiirfilter.c' object='libgstaudiofx_la-audioiirfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioiirfilter.lo `test -f 'audioiirfilter.c' || echo '$(srcdir)/'`audioiirfilter.c libgstaudiofx_la-audiofxbasefirfilter.lo: audiofxbasefirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofxbasefirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Tpo -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofxbasefirfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiofxbasefirfilter.c' object='libgstaudiofx_la-audiofxbasefirfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiofxbasefirfilter.c' object='libgstaudiofx_la-audiofxbasefirfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofxbasefirfilter.lo `test -f 'audiofxbasefirfilter.c' || echo '$(srcdir)/'`audiofxbasefirfilter.c libgstaudiofx_la-audiowsincband.lo: audiowsincband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiowsincband.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsincband.Tpo -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiowsincband.Tpo $(DEPDIR)/libgstaudiofx_la-audiowsincband.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiowsincband.c' object='libgstaudiofx_la-audiowsincband.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiowsincband.c' object='libgstaudiofx_la-audiowsincband.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsincband.lo `test -f 'audiowsincband.c' || echo '$(srcdir)/'`audiowsincband.c libgstaudiofx_la-audiowsinclimit.lo: audiowsinclimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiowsinclimit.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Tpo -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Tpo $(DEPDIR)/libgstaudiofx_la-audiowsinclimit.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiowsinclimit.c' object='libgstaudiofx_la-audiowsinclimit.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiowsinclimit.c' object='libgstaudiofx_la-audiowsinclimit.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiowsinclimit.lo `test -f 'audiowsinclimit.c' || echo '$(srcdir)/'`audiowsinclimit.c libgstaudiofx_la-audiofirfilter.lo: audiofirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audiofirfilter.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Tpo -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Tpo $(DEPDIR)/libgstaudiofx_la-audiofirfilter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audiofirfilter.c' object='libgstaudiofx_la-audiofirfilter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiofirfilter.c' object='libgstaudiofx_la-audiofirfilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audiofirfilter.lo `test -f 'audiofirfilter.c' || echo '$(srcdir)/'`audiofirfilter.c libgstaudiofx_la-audioecho.lo: audioecho.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -MT libgstaudiofx_la-audioecho.lo -MD -MP -MF $(DEPDIR)/libgstaudiofx_la-audioecho.Tpo -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiofx_la-audioecho.Tpo $(DEPDIR)/libgstaudiofx_la-audioecho.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audioecho.c' object='libgstaudiofx_la-audioecho.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audioecho.c' object='libgstaudiofx_la-audioecho.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiofx_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiofx_la_CFLAGS) $(CFLAGS) -c -o libgstaudiofx_la-audioecho.lo `test -f 'audioecho.c' || echo '$(srcdir)/'`audioecho.c mostlyclean-libtool: -rm -f *.lo @@ -886,10 +868,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/audiofx/audiochebband.c b/gst/audiofx/audiochebband.c index 89a950c..08c1acf 100644 --- a/gst/audiofx/audiochebband.c +++ b/gst/audiofx/audiochebband.c @@ -82,6 +82,8 @@ #include "audiochebband.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_cheb_band_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiocheblimit.c b/gst/audiofx/audiocheblimit.c index 8d51fbb..b7bb90b 100644 --- a/gst/audiofx/audiocheblimit.c +++ b/gst/audiofx/audiocheblimit.c @@ -78,6 +78,8 @@ #include "audiocheblimit.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_cheb_limit_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c index cf4dab1..9064619 100644 --- a/gst/audiofx/audioecho.c +++ b/gst/audiofx/audioecho.c @@ -137,7 +137,8 @@ gst_audio_echo_class_init (GstAudioEchoClass * klass) "Maximum delay of the echo in nanoseconds" " (can't be changed in PLAYING or PAUSED state)", 1, G_MAXUINT64, 1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_READY)); g_object_class_install_property (gobject_class, PROP_INTENSITY, g_param_spec_float ("intensity", "Intensity", diff --git a/gst/audiofx/audiofirfilter.c b/gst/audiofx/audiofirfilter.c index b6102ae..bd5a51b 100644 --- a/gst/audiofx/audiofirfilter.c +++ b/gst/audiofx/audiofirfilter.c @@ -57,6 +57,8 @@ #include "audiofirfilter.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_fir_filter_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audioiirfilter.c b/gst/audiofx/audioiirfilter.c index bac16b2..ff5f9ca 100644 --- a/gst/audiofx/audioiirfilter.c +++ b/gst/audiofx/audioiirfilter.c @@ -53,6 +53,8 @@ #include "audioiirfilter.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_iir_filter_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiopanorama.c b/gst/audiofx/audiopanorama.c index 0bd81b9..f64eaa4 100644 --- a/gst/audiofx/audiopanorama.c +++ b/gst/audiofx/audiopanorama.c @@ -184,10 +184,9 @@ gst_audio_panorama_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Stereo positioning", "Filter/Effect/Audio", "Positions audio streams in the stereo panorama", diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c index 07356e2..3f94988 100644 --- a/gst/audiofx/audiowsincband.c +++ b/gst/audiofx/audiowsincband.c @@ -64,6 +64,8 @@ #include "audiowsincband.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_gst_audio_wsincband_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audiofx/audiowsinclimit.c b/gst/audiofx/audiowsinclimit.c index aa0cf4b..ad60569 100644 --- a/gst/audiofx/audiowsinclimit.c +++ b/gst/audiofx/audiowsinclimit.c @@ -64,6 +64,8 @@ #include "audiowsinclimit.h" +#include "gst/glib-compat-private.h" + #define GST_CAT_DEFAULT gst_audio_wsinclimit_debug GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in index 0496de4..93b2caf 100644 --- a/gst/audioparsers/Makefile.in +++ b/gst/audioparsers/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -117,8 +122,8 @@ am_libgstaudioparsers_la_OBJECTS = \ libgstaudioparsers_la-gstmpegaudioparse.lo \ libgstaudioparsers_la-plugin.lo libgstaudioparsers_la_OBJECTS = $(am_libgstaudioparsers_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstaudioparsers_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -134,21 +139,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstaudioparsers_la_SOURCES) DIST_SOURCES = $(libgstaudioparsers_la_SOURCES) @@ -231,7 +236,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -306,7 +314,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -330,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -364,18 +372,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -428,6 +428,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -462,7 +463,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -567,7 +567,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstaudioparsers.la: $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_DEPENDENCIES) +libgstaudioparsers.la: $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_DEPENDENCIES) $(EXTRA_libgstaudioparsers_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstaudioparsers_la_LINK) -rpath $(plugindir) $(libgstaudioparsers_la_OBJECTS) $(libgstaudioparsers_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -587,82 +587,72 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstaudioparsers_la-gstaacparse.lo: gstaacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstaacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Tpo -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstaacparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaacparse.c' object='libgstaudioparsers_la-gstaacparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaacparse.c' object='libgstaudioparsers_la-gstaacparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstaacparse.lo `test -f 'gstaacparse.c' || echo '$(srcdir)/'`gstaacparse.c libgstaudioparsers_la-gstamrparse.lo: gstamrparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstamrparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Tpo -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstamrparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstamrparse.c' object='libgstaudioparsers_la-gstamrparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstamrparse.c' object='libgstaudioparsers_la-gstamrparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstamrparse.lo `test -f 'gstamrparse.c' || echo '$(srcdir)/'`gstamrparse.c libgstaudioparsers_la-gstac3parse.lo: gstac3parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstac3parse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Tpo -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstac3parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstac3parse.c' object='libgstaudioparsers_la-gstac3parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstac3parse.c' object='libgstaudioparsers_la-gstac3parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstac3parse.lo `test -f 'gstac3parse.c' || echo '$(srcdir)/'`gstac3parse.c libgstaudioparsers_la-gstdcaparse.lo: gstdcaparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstdcaparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Tpo -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstdcaparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdcaparse.c' object='libgstaudioparsers_la-gstdcaparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdcaparse.c' object='libgstaudioparsers_la-gstdcaparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstdcaparse.lo `test -f 'gstdcaparse.c' || echo '$(srcdir)/'`gstdcaparse.c libgstaudioparsers_la-gstflacparse.lo: gstflacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstflacparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Tpo -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstflacparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflacparse.c' object='libgstaudioparsers_la-gstflacparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflacparse.c' object='libgstaudioparsers_la-gstflacparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstflacparse.lo `test -f 'gstflacparse.c' || echo '$(srcdir)/'`gstflacparse.c libgstaudioparsers_la-gstmpegaudioparse.lo: gstmpegaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-gstmpegaudioparse.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Tpo -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Tpo $(DEPDIR)/libgstaudioparsers_la-gstmpegaudioparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmpegaudioparse.c' object='libgstaudioparsers_la-gstmpegaudioparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmpegaudioparse.c' object='libgstaudioparsers_la-gstmpegaudioparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-gstmpegaudioparse.lo `test -f 'gstmpegaudioparse.c' || echo '$(srcdir)/'`gstmpegaudioparse.c libgstaudioparsers_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -MT libgstaudioparsers_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioparsers_la-plugin.Tpo -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioparsers_la-plugin.Tpo $(DEPDIR)/libgstaudioparsers_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstaudioparsers_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstaudioparsers_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioparsers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioparsers_la_CFLAGS) $(CFLAGS) -c -o libgstaudioparsers_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -769,10 +759,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c index df7c401..d8c0995 100644 --- a/gst/audioparsers/gstaacparse.c +++ b/gst/audioparsers/gstaacparse.c @@ -57,8 +57,7 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/mpeg, " - "framed = (boolean) false, " "mpegversion = (int) { 2, 4 };")); + GST_STATIC_CAPS ("audio/mpeg, mpegversion = (int) { 2, 4 };")); GST_DEBUG_CATEGORY_STATIC (aacparse_debug); #define GST_CAT_DEFAULT aacparse_debug @@ -70,27 +69,19 @@ GST_DEBUG_CATEGORY_STATIC (aacparse_debug); #define AAC_FRAME_DURATION(parse) (GST_SECOND/parse->frames_per_sec) -gboolean gst_aac_parse_start (GstBaseParse * parse); -gboolean gst_aac_parse_stop (GstBaseParse * parse); +static gboolean gst_aac_parse_start (GstBaseParse * parse); +static gboolean gst_aac_parse_stop (GstBaseParse * parse); static gboolean gst_aac_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_aac_parse_sink_getcaps (GstBaseParse * parse); -gboolean gst_aac_parse_check_valid_frame (GstBaseParse * parse, +static gboolean gst_aac_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * size, gint * skipsize); -GstFlowReturn gst_aac_parse_parse_frame (GstBaseParse * parse, +static GstFlowReturn gst_aac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); -gboolean gst_aac_parse_convert (GstBaseParse * parse, - GstFormat src_format, - gint64 src_value, GstFormat dest_format, gint64 * dest_value); - -gint gst_aac_parse_get_frame_overhead (GstBaseParse * parse, - GstBuffer * buffer); - -gboolean gst_aac_parse_event (GstBaseParse * parse, GstEvent * event); - #define _do_init(bla) \ GST_DEBUG_CATEGORY_INIT (aacparse_debug, "aacparse", 0, \ "AAC audio stream parser"); @@ -121,10 +112,9 @@ gst_aac_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "AAC audio stream parser", "Codec/Parser/Audio", @@ -145,6 +135,7 @@ gst_aac_parse_class_init (GstAacParseClass * klass) parse_class->start = GST_DEBUG_FUNCPTR (gst_aac_parse_start); parse_class->stop = GST_DEBUG_FUNCPTR (gst_aac_parse_stop); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_aac_parse_sink_setcaps); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_aac_parse_sink_getcaps); parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_aac_parse_parse_frame); parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_aac_parse_check_valid_frame); @@ -262,9 +253,11 @@ gst_aac_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps) aacparse->channels = (buffer[1] & 0x78) >> 3; aacparse->header_type = DSPAAC_HEADER_NONE; aacparse->mpegversion = 4; + aacparse->frame_samples = (buffer[1] & 4) ? 960 : 1024; - GST_DEBUG ("codec_data: object_type=%d, sample_rate=%d, channels=%d", - aacparse->object_type, aacparse->sample_rate, aacparse->channels); + GST_DEBUG ("codec_data: object_type=%d, sample_rate=%d, channels=%d, " + "samples=%d", aacparse->object_type, aacparse->sample_rate, + aacparse->channels, aacparse->frame_samples); /* arrange for metadata and get out of the way */ gst_aac_parse_set_src_caps (aacparse, caps); @@ -340,8 +333,12 @@ gst_aac_parse_check_adts_frame (GstAacParse * aacparse, if ((data[0] == 0xff) && ((data[1] & 0xf6) == 0xf0)) { *framesize = gst_aac_parse_adts_get_frame_len (data); - /* In EOS mode this is enough. No need to examine the data further */ - if (drain) { + /* In EOS mode this is enough. No need to examine the data further. + We also relax the check when we have sync, on the assumption that + if we're not looking at random data, we have a much higher chance + to get the correct sync, and this avoids losing two frames when + a single bit corruption happens. */ + if (drain || !GST_BASE_PARSE_LOST_SYNC (aacparse)) { return TRUE; } @@ -456,7 +453,8 @@ gst_aac_parse_detect_stream (GstAacParse * aacparse, gst_aac_parse_parse_adts_header (aacparse, data, &rate, &channels, &aacparse->object_type, &aacparse->mpegversion); - gst_base_parse_set_frame_rate (GST_BASE_PARSE (aacparse), rate, 1024, 2, 2); + gst_base_parse_set_frame_rate (GST_BASE_PARSE (aacparse), rate, + aacparse->frame_samples, 2, 2); GST_DEBUG ("ADTS: samplerate %d, channels %d, objtype %d, version %d", rate, channels, aacparse->object_type, aacparse->mpegversion); @@ -569,7 +567,7 @@ gst_aac_parse_detect_stream (GstAacParse * aacparse, * * Returns: TRUE if buffer contains a valid frame. */ -gboolean +static gboolean gst_aac_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize) { @@ -611,7 +609,8 @@ gst_aac_parse_check_valid_frame (GstBaseParse * parse, } else { GST_DEBUG ("buffer didn't contain valid frame"); - gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), 1024); + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), + ADTS_MAX_SIZE); } return ret; @@ -641,7 +640,7 @@ gst_aac_parse_check_valid_frame (GstBaseParse * parse, * Returns: GST_FLOW_OK if frame was successfully parsed and can be pushed * forward. Otherwise appropriate error is returned. */ -GstFlowReturn +static GstFlowReturn gst_aac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { GstAacParse *aacparse; @@ -674,7 +673,7 @@ gst_aac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) } gst_base_parse_set_frame_rate (GST_BASE_PARSE (aacparse), - aacparse->sample_rate, 1024, 2, 2); + aacparse->sample_rate, aacparse->frame_samples, 2, 2); } return ret; @@ -689,14 +688,15 @@ gst_aac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) * * Returns: TRUE if startup succeeded. */ -gboolean +static gboolean gst_aac_parse_start (GstBaseParse * parse) { GstAacParse *aacparse; aacparse = GST_AAC_PARSE (parse); GST_DEBUG ("start"); - gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), 1024); + aacparse->frame_samples = 1024; + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), ADTS_MAX_SIZE); return TRUE; } @@ -709,9 +709,42 @@ gst_aac_parse_start (GstBaseParse * parse) * * Returns: TRUE is stopping succeeded. */ -gboolean +static gboolean gst_aac_parse_stop (GstBaseParse * parse) { GST_DEBUG ("stop"); return TRUE; } + +static GstCaps * +gst_aac_parse_sink_getcaps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the framed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "framed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/audioparsers/gstaacparse.h b/gst/audioparsers/gstaacparse.h index 4020d8f..1907c2e 100644 --- a/gst/audioparsers/gstaacparse.h +++ b/gst/audioparsers/gstaacparse.h @@ -63,19 +63,6 @@ typedef struct _GstAacParseClass GstAacParseClass; /** * GstAacParse: - * @element: the parent element. - * @object_type: AAC object type of the stream. - * @bitrate: Current media bitrate. - * @sample_rate: Current media samplerate. - * @channels: Current media channel count. - * @frames_per_sec: FPS value of the current stream. - * @header_type: #GstAacHeaderType indicating the current stream type. - * @framecount: The amount of frames that has been processed this far. - * @bytecount: The amount of bytes that has been processed this far. - * @sync: Tells whether the parser is in sync (a.k.a. not searching for header) - * @eos: End-of-Stream indicator. Set when EOS event arrives. - * @duration: Duration of the current stream. - * @ts: Current stream timestamp. * * The opaque GstAacParse data structure. */ @@ -88,6 +75,7 @@ struct _GstAacParse { gint sample_rate; gint channels; gint mpegversion; + gint frame_samples; GstAacHeaderType header_type; }; diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c index ee22e3d..6fa4658 100644 --- a/gst/audioparsers/gstac3parse.c +++ b/gst/audioparsers/gstac3parse.c @@ -144,16 +144,16 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-ac3, framed = (boolean) true, " - " channels = (int) [ 1, 6 ], rate = (int) [ 32000, 48000 ]; " + " channels = (int) [ 1, 6 ], rate = (int) [ 8000, 48000 ], " + " alignment = (string) { iec61937, frame}; " "audio/x-eac3, framed = (boolean) true, " - " channels = (int) [ 1, 6 ], rate = (int) [ 32000, 48000 ] ")); + " channels = (int) [ 1, 6 ], rate = (int) [ 8000, 48000 ], " + " alignment = (string) { iec61937, frame}; ")); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-ac3, framed = (boolean) false; " - "audio/x-eac3, framed = (boolean) false; " - "audio/ac3, framed = (boolean) false ")); + GST_STATIC_CAPS ("audio/x-ac3; " "audio/x-eac3; " "audio/ac3")); static void gst_ac3_parse_finalize (GObject * object); @@ -163,6 +163,9 @@ static gboolean gst_ac3_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * size, gint * skipsize); static GstFlowReturn gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); +static gboolean gst_ac3_parse_src_event (GstBaseParse * parse, + GstEvent * event); +static GstCaps *gst_ac3_parse_get_sink_caps (GstBaseParse * parse); GST_BOILERPLATE (GstAc3Parse, gst_ac3_parse, GstBaseParse, GST_TYPE_BASE_PARSE); @@ -171,13 +174,12 @@ gst_ac3_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, - "AC3 audio stream parser", "Codec/Parser/Audio", + "AC3 audio stream parser", "Codec/Parser/Converter/Audio", "AC3 parser", "Tim-Philipp Müller "); } @@ -197,6 +199,8 @@ gst_ac3_parse_class_init (GstAc3ParseClass * klass) parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_ac3_parse_check_valid_frame); parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_ac3_parse_parse_frame); + parse_class->src_event = GST_DEBUG_FUNCPTR (gst_ac3_parse_src_event); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_get_sink_caps); } static void @@ -204,13 +208,15 @@ gst_ac3_parse_reset (GstAc3Parse * ac3parse) { ac3parse->channels = -1; ac3parse->sample_rate = -1; + ac3parse->blocks = -1; ac3parse->eac = FALSE; + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_NONE); } static void gst_ac3_parse_init (GstAc3Parse * ac3parse, GstAc3ParseClass * klass) { - gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 64 * 2); + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (ac3parse), 6); gst_ac3_parse_reset (ac3parse); } @@ -240,15 +246,66 @@ gst_ac3_parse_stop (GstBaseParse * parse) return TRUE; } +static void +gst_ac3_parse_set_alignment (GstAc3Parse * ac3parse, gboolean eac) +{ + GstCaps *caps; + GstStructure *st; + const gchar *str = NULL; + int i; + + if (G_LIKELY (!eac)) + goto done; + + caps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (ac3parse)); + + if (!caps) + goto done; + + for (i = 0; i < gst_caps_get_size (caps); i++) { + st = gst_caps_get_structure (caps, i); + + if (!g_str_equal (gst_structure_get_name (st), "audio/x-eac3")) + continue; + + if ((str = gst_structure_get_string (st, "alignment"))) { + if (g_str_equal (str, "iec61937")) { + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_IEC61937); + GST_DEBUG_OBJECT (ac3parse, "picked iec61937 alignment"); + } else if (g_str_equal (str, "frame") == 0) { + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_FRAME); + GST_DEBUG_OBJECT (ac3parse, "picked frame alignment"); + } else { + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_FRAME); + GST_WARNING_OBJECT (ac3parse, "unknown alignment: %s", str); + } + break; + } + } + + if (caps) + gst_caps_unref (caps); + +done: + /* default */ + if (ac3parse->align == GST_AC3_PARSE_ALIGN_NONE) { + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_FRAME); + GST_DEBUG_OBJECT (ac3parse, "picked syncframe alignment"); + } +} + static gboolean gst_ac3_parse_frame_header_ac3 (GstAc3Parse * ac3parse, GstBuffer * buf, - guint * frame_size, guint * rate, guint * chans, guint * blks, guint * sid) + gint skip, guint * frame_size, guint * rate, guint * chans, guint * blks, + guint * sid) { GstBitReader bits = GST_BIT_READER_INIT_FROM_BUFFER (buf); - guint8 fscod, frmsizcod, bsid, acmod, lfe_on; + guint8 fscod, frmsizcod, bsid, acmod, lfe_on, rate_scale; GST_LOG_OBJECT (ac3parse, "parsing ac3"); + gst_bit_reader_skip_unchecked (&bits, skip * 8); + gst_bit_reader_skip_unchecked (&bits, 16 + 16); fscod = gst_bit_reader_get_bits_uint8_unchecked (&bits, 2); frmsizcod = gst_bit_reader_get_bits_uint8_unchecked (&bits, 6); @@ -264,7 +321,9 @@ gst_ac3_parse_frame_header_ac3 (GstAc3Parse * ac3parse, GstBuffer * buf, /* spec not quite clear here: decoder should decode if less than 8, * but seemingly only defines 6 and 8 cases */ - if (bsid > 8) { + /* Files with 9 and 10 happen, and seem to comply with the <= 8 + format, so let them through. The spec says nothing about 9 and 10 */ + if (bsid > 10) { GST_DEBUG_OBJECT (ac3parse, "unexpected bsid=%d", bsid); return FALSE; } else if (bsid != 8 && bsid != 6) { @@ -280,10 +339,14 @@ gst_ac3_parse_frame_header_ac3 (GstAc3Parse * ac3parse, GstBuffer * buf, lfe_on = gst_bit_reader_get_bits_uint8_unchecked (&bits, 1); + /* 6/8->0, 9->1, 10->2, + see http://matroska.org/technical/specs/codecid/index.html */ + rate_scale = (CLAMP (bsid, 8, 10) - 8); + if (frame_size) *frame_size = frmsizcod_table[frmsizcod].frame_size[fscod] * 2; if (rate) - *rate = fscod_rates[fscod]; + *rate = fscod_rates[fscod] >> rate_scale; if (chans) *chans = acmod_chans[acmod] + lfe_on; if (blks) @@ -296,7 +359,8 @@ gst_ac3_parse_frame_header_ac3 (GstAc3Parse * ac3parse, GstBuffer * buf, static gboolean gst_ac3_parse_frame_header_eac3 (GstAc3Parse * ac3parse, GstBuffer * buf, - guint * frame_size, guint * rate, guint * chans, guint * blks, guint * sid) + gint skip, guint * frame_size, guint * rate, guint * chans, guint * blks, + guint * sid) { GstBitReader bits = GST_BIT_READER_INIT_FROM_BUFFER (buf); guint16 frmsiz, sample_rate, blocks; @@ -304,6 +368,8 @@ gst_ac3_parse_frame_header_eac3 (GstAc3Parse * ac3parse, GstBuffer * buf, GST_LOG_OBJECT (ac3parse, "parsing e-ac3"); + gst_bit_reader_skip_unchecked (&bits, skip * 8); + gst_bit_reader_skip_unchecked (&bits, 16); strmtyp = gst_bit_reader_get_bits_uint8_unchecked (&bits, 2); /* strmtyp */ if (G_UNLIKELY (strmtyp == 3)) { @@ -348,7 +414,7 @@ gst_ac3_parse_frame_header_eac3 (GstAc3Parse * ac3parse, GstBuffer * buf, } static gboolean -gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, +gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, gint skip, guint * framesize, guint * rate, guint * chans, guint * blocks, guint * sid, gboolean * eac) { @@ -358,6 +424,8 @@ gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, GST_MEMDUMP_OBJECT (parse, "AC3 frame sync", GST_BUFFER_DATA (buf), 16); + gst_bit_reader_skip_unchecked (&bits, skip * 8); + sync = gst_bit_reader_get_bits_uint16_unchecked (&bits, 16); gst_bit_reader_skip_unchecked (&bits, 16 + 8); bsid = gst_bit_reader_peek_bits_uint8_unchecked (&bits, 5); @@ -370,13 +438,13 @@ gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, if (bsid <= 10) { if (eac) *eac = FALSE; - return gst_ac3_parse_frame_header_ac3 (parse, buf, framesize, rate, chans, - blocks, sid); + return gst_ac3_parse_frame_header_ac3 (parse, buf, skip, framesize, rate, + chans, blocks, sid); } else if (bsid <= 16) { if (eac) *eac = TRUE; - return gst_ac3_parse_frame_header_eac3 (parse, buf, framesize, rate, chans, - blocks, sid); + return gst_ac3_parse_frame_header_eac3 (parse, buf, skip, framesize, rate, + chans, blocks, sid); } else { GST_DEBUG_OBJECT (parse, "unexpected bsid %d", bsid); return FALSE; @@ -391,7 +459,9 @@ gst_ac3_parse_check_valid_frame (GstBaseParse * parse, GstBuffer *buf = frame->buffer; GstByteReader reader = GST_BYTE_READER_INIT_FROM_BUFFER (buf); gint off; - gboolean lost_sync, draining; + gboolean lost_sync, draining, eac, more = FALSE; + guint frmsiz, blocks, sid; + gint have_blocks = 0; if (G_UNLIKELY (GST_BUFFER_SIZE (buf) < 6)) return FALSE; @@ -414,23 +484,69 @@ gst_ac3_parse_check_valid_frame (GstBaseParse * parse, } /* make sure the values in the frame header look sane */ - if (!gst_ac3_parse_frame_header (ac3parse, buf, framesize, NULL, NULL, - NULL, NULL, NULL)) { + if (!gst_ac3_parse_frame_header (ac3parse, buf, 0, &frmsiz, NULL, NULL, + &blocks, &sid, &eac)) { *skipsize = off + 2; return FALSE; } + *framesize = frmsiz; + + if (G_UNLIKELY (g_atomic_int_get (&ac3parse->align) == + GST_AC3_PARSE_ALIGN_NONE)) + gst_ac3_parse_set_alignment (ac3parse, eac); + GST_LOG_OBJECT (parse, "got frame"); lost_sync = GST_BASE_PARSE_LOST_SYNC (parse); draining = GST_BASE_PARSE_DRAINING (parse); + if (g_atomic_int_get (&ac3parse->align) == GST_AC3_PARSE_ALIGN_IEC61937) { + /* We need 6 audio blocks from each substream, so we keep going forwards + * till we have it */ + + g_assert (blocks > 0); + GST_LOG_OBJECT (ac3parse, "Need %d frames before pushing", 6 / blocks); + + if (sid != 0) { + /* We need the first substream to be the one with id 0 */ + GST_LOG_OBJECT (ac3parse, "Skipping till we find sid 0"); + *skipsize = off + 2; + return FALSE; + } + + *framesize = 0; + + /* Loop till we have 6 blocks per substream */ + for (have_blocks = 0; !more && have_blocks < 6; have_blocks += blocks) { + /* Loop till we get one frame from each substream */ + do { + *framesize += frmsiz; + + if (!gst_byte_reader_skip (&reader, frmsiz) || + GST_BUFFER_SIZE (buf) < (*framesize + 6)) { + more = TRUE; + break; + } + + if (!gst_ac3_parse_frame_header (ac3parse, buf, *framesize, &frmsiz, + NULL, NULL, NULL, &sid, &eac)) { + *skipsize = off + 2; + return FALSE; + } + } while (sid); + } + + /* We're now at the next frame, so no need to skip if resyncing */ + frmsiz = 0; + } + if (lost_sync && !draining) { guint16 word = 0; GST_DEBUG_OBJECT (ac3parse, "resyncing; checking next frame syncword"); - if (!gst_byte_reader_skip (&reader, *framesize) || + if (more || !gst_byte_reader_skip (&reader, frmsiz) || !gst_byte_reader_get_uint16_be (&reader, &word)) { GST_DEBUG_OBJECT (ac3parse, "... but not sufficient data"); gst_base_parse_set_min_frame_size (parse, *framesize + 6); @@ -457,13 +573,14 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) GstAc3Parse *ac3parse = GST_AC3_PARSE (parse); GstBuffer *buf = frame->buffer; guint fsize, rate, chans, blocks, sid; - gboolean eac; + gboolean eac, update_rate = FALSE; - if (!gst_ac3_parse_frame_header (ac3parse, buf, &fsize, &rate, &chans, + if (!gst_ac3_parse_frame_header (ac3parse, buf, 0, &fsize, &rate, &chans, &blocks, &sid, &eac)) goto broken_header; - GST_LOG_OBJECT (parse, "size: %u, rate: %u, chans: %u", fsize, rate, chans); + GST_LOG_OBJECT (parse, "size: %u, blocks: %u, rate: %u, chans: %u", fsize, + blocks, rate, chans); if (G_UNLIKELY (sid)) { /* dependent frame, no need to (ac)count for or consider further */ @@ -480,10 +597,13 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) } if (G_UNLIKELY (ac3parse->sample_rate != rate || ac3parse->channels != chans - || ac3parse->eac != ac3parse->eac)) { + || ac3parse->eac != eac)) { GstCaps *caps = gst_caps_new_simple (eac ? "audio/x-eac3" : "audio/x-ac3", "framed", G_TYPE_BOOLEAN, TRUE, "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, chans, NULL); + gst_caps_set_simple (caps, "alignment", G_TYPE_STRING, + g_atomic_int_get (&ac3parse->align) == GST_AC3_PARSE_ALIGN_IEC61937 ? + "iec61937" : "frame", NULL); gst_buffer_set_caps (buf, caps); gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps); gst_caps_unref (caps); @@ -492,9 +612,18 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) ac3parse->channels = chans; ac3parse->eac = eac; - gst_base_parse_set_frame_rate (parse, rate, 256 * blocks, 2, 2); + update_rate = TRUE; + } + + if (G_UNLIKELY (ac3parse->blocks != blocks)) { + ac3parse->blocks = blocks; + + update_rate = TRUE; } + if (G_UNLIKELY (update_rate)) + gst_base_parse_set_frame_rate (parse, rate, 256 * blocks, 2, 2); + return GST_FLOW_OK; /* ERRORS */ @@ -505,3 +634,68 @@ broken_header: return GST_FLOW_ERROR; } } + +static gboolean +gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event) +{ + GstAc3Parse *ac3parse = GST_AC3_PARSE (parse); + + if (G_UNLIKELY (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM) && + gst_event_has_name (event, "ac3parse-set-alignment")) { + const GstStructure *st = gst_event_get_structure (event); + const gchar *align = gst_structure_get_string (st, "alignment"); + + if (g_str_equal (align, "iec61937")) { + GST_DEBUG_OBJECT (ac3parse, "Switching to iec61937 alignment"); + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_IEC61937); + } else if (g_str_equal (align, "frame")) { + GST_DEBUG_OBJECT (ac3parse, "Switching to frame alignment"); + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_FRAME); + } else { + g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_FRAME); + GST_WARNING_OBJECT (ac3parse, "Got unknown alignment request (%s) " + "reverting to frame alignment.", + gst_structure_get_string (st, "alignment")); + } + + gst_event_unref (event); + return TRUE; + } + + return GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, event); +} + +static GstCaps * +gst_ac3_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the framed and alignment field. We can convert + * between different alignments. */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "framed"); + gst_structure_remove_field (s, "alignment"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h index 6ed01dd..545419f 100644 --- a/gst/audioparsers/gstac3parse.h +++ b/gst/audioparsers/gstac3parse.h @@ -42,6 +42,12 @@ G_BEGIN_DECLS typedef struct _GstAc3Parse GstAc3Parse; typedef struct _GstAc3ParseClass GstAc3ParseClass; +enum { + GST_AC3_PARSE_ALIGN_NONE, + GST_AC3_PARSE_ALIGN_FRAME, + GST_AC3_PARSE_ALIGN_IEC61937, +}; + /** * GstAc3Parse: * @@ -51,9 +57,11 @@ struct _GstAc3Parse { GstBaseParse baseparse; /*< private >*/ - gint sample_rate; - gint channels; - gboolean eac; + gint sample_rate; + gint channels; + gint blocks; + gboolean eac; + volatile gint align; }; /** diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c index 8f0dabc..8f6ef94 100644 --- a/gst/audioparsers/gstamrparse.c +++ b/gst/audioparsers/gstamrparse.c @@ -71,16 +71,17 @@ static const gint block_size_wb[16] = #define AMR_FRAME_DURATION (GST_SECOND/AMR_FRAMES_PER_SECOND) #define AMR_MIME_HEADER_SIZE 9 -gboolean gst_amr_parse_start (GstBaseParse * parse); -gboolean gst_amr_parse_stop (GstBaseParse * parse); +static gboolean gst_amr_parse_start (GstBaseParse * parse); +static gboolean gst_amr_parse_stop (GstBaseParse * parse); static gboolean gst_amr_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps); +static GstCaps *gst_amr_parse_sink_getcaps (GstBaseParse * parse); -gboolean gst_amr_parse_check_valid_frame (GstBaseParse * parse, +static gboolean gst_amr_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize); -GstFlowReturn gst_amr_parse_parse_frame (GstBaseParse * parse, +static GstFlowReturn gst_amr_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); #define _do_init(bla) \ @@ -90,7 +91,6 @@ GstFlowReturn gst_amr_parse_parse_frame (GstBaseParse * parse, GST_BOILERPLATE_FULL (GstAmrParse, gst_amr_parse, GstBaseParse, GST_TYPE_BASE_PARSE, _do_init); - /** * gst_amr_parse_base_init: * @klass: #GstElementClass. @@ -101,10 +101,9 @@ gst_amr_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "AMR audio stream parser", "Codec/Parser/Audio", @@ -126,6 +125,7 @@ gst_amr_parse_class_init (GstAmrParseClass * klass) parse_class->start = GST_DEBUG_FUNCPTR (gst_amr_parse_start); parse_class->stop = GST_DEBUG_FUNCPTR (gst_amr_parse_stop); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_amr_parse_sink_setcaps); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_amr_parse_sink_getcaps); parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_amr_parse_parse_frame); parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_amr_parse_check_valid_frame); @@ -171,7 +171,7 @@ gst_amr_parse_set_src_caps (GstAmrParse * amrparse) GST_DEBUG_OBJECT (amrparse, "setting srcpad caps to AMR-NB"); /* Max. size of NB frame is 31 bytes, so we can set the min. frame size to 32 (+1 for next frame header) */ - gst_base_parse_set_min_frame_size (GST_BASE_PARSE (amrparse), 33); + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (amrparse), 32); src_caps = gst_caps_new_simple ("audio/AMR", "channels", G_TYPE_INT, 1, "rate", G_TYPE_INT, 8000, NULL); } @@ -265,7 +265,7 @@ gst_amr_parse_parse_header (GstAmrParse * amrparse, * * Returns: TRUE if the given data contains valid frame. */ -gboolean +static gboolean gst_amr_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * framesize, gint * skipsize) { @@ -307,11 +307,28 @@ gst_amr_parse_check_valid_frame (GstBaseParse * parse, * to contain a valid header as well (and there is enough data to * perform this check) */ - if (fsize && - (!GST_BASE_PARSE_LOST_SYNC (parse) || GST_BASE_PARSE_DRAINING (parse) - || (dsize >= fsize && (data[fsize] & 0x83) == 0))) { - *framesize = fsize; - return TRUE; + if (fsize) { + gboolean found = FALSE; + + /* in sync, no further check */ + if (!GST_BASE_PARSE_LOST_SYNC (parse)) { + found = TRUE; + } else if (dsize > fsize) { + /* enough data, check for next sync */ + if ((data[fsize] & 0x83) == 0) + found = TRUE; + } else if (GST_BASE_PARSE_DRAINING (parse)) { + /* not enough, but draining, so ok */ + found = TRUE; + } else { + /* indicate we need not skip, but need more data */ + *skipsize = 0; + *framesize = fsize + 1; + } + if (found) { + *framesize = fsize; + return TRUE; + } } } @@ -329,7 +346,7 @@ gst_amr_parse_check_valid_frame (GstBaseParse * parse, * * Returns: #GstFlowReturn defining the parsing status. */ -GstFlowReturn +static GstFlowReturn gst_amr_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { return GST_FLOW_OK; @@ -344,7 +361,7 @@ gst_amr_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) * * Returns: TRUE on success. */ -gboolean +static gboolean gst_amr_parse_start (GstBaseParse * parse) { GstAmrParse *amrparse; @@ -365,7 +382,7 @@ gst_amr_parse_start (GstBaseParse * parse) * * Returns: TRUE on success. */ -gboolean +static gboolean gst_amr_parse_stop (GstBaseParse * parse) { GstAmrParse *amrparse; @@ -376,3 +393,39 @@ gst_amr_parse_stop (GstBaseParse * parse) amrparse->header = 0; return TRUE; } + +static GstCaps * +gst_amr_parse_sink_getcaps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Rename structure names */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + if (gst_structure_has_name (s, "audio/AMR")) + gst_structure_set_name (s, "audio/x-amr-nb-sh"); + else + gst_structure_set_name (s, "audio/x-amr-wb-sh"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c index 2bf0e38..c34d83e 100644 --- a/gst/audioparsers/gstdcaparse.c +++ b/gst/audioparsers/gstdcaparse.c @@ -62,12 +62,13 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", " channels = (int) [ 1, 8 ]," " rate = (int) [ 8000, 192000 ]," " depth = (int) { 14, 16 }," - " endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }")); + " endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, " + " block-size = (int) [ 1, MAX], " " frame-size = (int) [ 1, MAX]")); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-dts, framed = (boolean) false")); + GST_STATIC_CAPS ("audio/x-dts")); static void gst_dca_parse_finalize (GObject * object); @@ -77,6 +78,7 @@ static gboolean gst_dca_parse_check_valid_frame (GstBaseParse * parse, GstBaseParseFrame * frame, guint * size, gint * skipsize); static GstFlowReturn gst_dca_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); +static GstCaps *gst_dca_parse_get_sink_caps (GstBaseParse * parse); GST_BOILERPLATE (GstDcaParse, gst_dca_parse, GstBaseParse, GST_TYPE_BASE_PARSE); @@ -85,10 +87,9 @@ gst_dca_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "DTS Coherent Acoustics audio stream parser", "Codec/Parser/Audio", @@ -111,6 +112,7 @@ gst_dca_parse_class_init (GstDcaParseClass * klass) parse_class->check_valid_frame = GST_DEBUG_FUNCPTR (gst_dca_parse_check_valid_frame); parse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_dca_parse_parse_frame); + parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_get_sink_caps); } static void @@ -449,3 +451,36 @@ broken_header: return GST_FLOW_ERROR; } } + +static GstCaps * +gst_dca_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the framed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "framed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c index 0249e88..9cfdb98 100644 --- a/gst/audioparsers/gstflacparse.c +++ b/gst/audioparsers/gstflacparse.c @@ -181,7 +181,7 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-flac, framed = (boolean) false") + GST_STATIC_CAPS ("audio/x-flac") ); static void gst_flac_parse_finalize (GObject * object); @@ -198,6 +198,10 @@ static GstFlowReturn gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame); static GstFlowReturn gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame); +static gboolean gst_flac_parse_convert (GstBaseParse * parse, + GstFormat src_format, gint64 src_value, GstFormat dest_format, + gint64 * dest_value); +static GstCaps *gst_flac_parse_get_sink_caps (GstBaseParse * parse); GST_BOILERPLATE (GstFlacParse, gst_flac_parse, GstBaseParse, GST_TYPE_BASE_PARSE); @@ -207,10 +211,8 @@ gst_flac_parse_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "FLAC audio parser", "Codec/Parser/Audio", @@ -244,6 +246,9 @@ gst_flac_parse_class_init (GstFlacParseClass * klass) baseparse_class->parse_frame = GST_DEBUG_FUNCPTR (gst_flac_parse_parse_frame); baseparse_class->pre_push_frame = GST_DEBUG_FUNCPTR (gst_flac_parse_pre_push_frame); + baseparse_class->convert = GST_DEBUG_FUNCPTR (gst_flac_parse_convert); + baseparse_class->get_sink_caps = + GST_DEBUG_FUNCPTR (gst_flac_parse_get_sink_caps); } static void @@ -323,6 +328,7 @@ gst_flac_parse_start (GstBaseParse * parse) flacparse->blocking_strategy = 0; flacparse->block_size = 0; flacparse->sample_number = 0; + flacparse->strategy_checked = FALSE; /* "fLaC" marker */ gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), 4); @@ -395,6 +401,8 @@ gst_flac_parse_frame_header_is_valid (GstFlacParse * flacparse, /* 0 == fixed block size, 1 == variable block size */ blocking_strategy = gst_bit_reader_get_bits_uint8_unchecked (&reader, 1); + if (flacparse->force_variable_block_size) + blocking_strategy = 1; /* block size index, calculation of the real blocksize below */ block_size = gst_bit_reader_get_bits_uint16_unchecked (&reader, 4); @@ -528,6 +536,49 @@ gst_flac_parse_frame_header_is_valid (GstFlacParse * flacparse, if (actual_crc != expected_crc) goto error; + /* Sanity check sample number against blocking strategy, as it seems + some files claim fixed block size but supply sample numbers, + rather than block numbers. */ + if (blocking_strategy == 0 && flacparse->block_size != 0) { + if (!flacparse->strategy_checked) { + if (block_size == sample_number) { + GST_WARNING_OBJECT (flacparse, "This file claims fixed block size, " + "but seems to be lying: assuming variable block size"); + flacparse->force_variable_block_size = TRUE; + blocking_strategy = 1; + } + flacparse->strategy_checked = TRUE; + } + } + + /* + The FLAC format documentation says: + The "blocking strategy" bit determines how to calculate the sample number + of the first sample in the frame. If the bit is 0 (fixed-blocksize), the + frame header encodes the frame number as above, and the frame's starting + sample number will be the frame number times the blocksize. If it is 1 + (variable-blocksize), the frame header encodes the frame's starting + sample number itself. (In the case of a fixed-blocksize stream, only the + last block may be shorter than the stream blocksize; its starting sample + number will be calculated as the frame number times the previous frame's + blocksize, or zero if it is the first frame). + + Therefore, when in fixed block size mode, we only update the block size + the first time, then reuse that block size for subsequent calls. + This will also fix a timestamp problem with the last block's timestamp + being miscalculated by scaling the block number by a "wrong" block size. + */ + if (blocking_strategy == 0) { + if (flacparse->block_size != 0) { + /* after first block */ + if (flacparse->block_size != block_size) { + /* TODO: can we know we're on the last frame, to avoid warning ? */ + GST_WARNING_OBJECT (flacparse, "Block size is not constant"); + block_size = flacparse->block_size; + } + } + } + if (set) { flacparse->block_size = block_size; if (!flacparse->samplerate) @@ -577,7 +628,7 @@ gst_flac_parse_frame_is_valid (GstFlacParse * flacparse, data = GST_BUFFER_DATA (buffer); size = GST_BUFFER_SIZE (buffer); - if (size <= flacparse->min_framesize) + if (size < flacparse->min_framesize) goto need_more; header_ret = @@ -688,7 +739,6 @@ gst_flac_parse_check_valid_frame (GstBaseParse * parse, flacparse->offset = GST_BUFFER_OFFSET (buffer); flacparse->blocking_strategy = 0; - flacparse->block_size = 0; flacparse->sample_number = 0; GST_DEBUG_OBJECT (flacparse, "Found sync code"); @@ -756,17 +806,15 @@ gst_flac_parse_handle_streaminfo (GstFlacParse * flacparse, GstBuffer * buffer) if (!gst_bit_reader_get_bits_uint16 (&reader, &flacparse->min_blocksize, 16)) goto error; if (flacparse->min_blocksize < 16) { - GST_ERROR_OBJECT (flacparse, "Invalid minimum block size: %u", + GST_WARNING_OBJECT (flacparse, "Invalid minimum block size: %u", flacparse->min_blocksize); - return FALSE; } if (!gst_bit_reader_get_bits_uint16 (&reader, &flacparse->max_blocksize, 16)) goto error; if (flacparse->max_blocksize < 16) { - GST_ERROR_OBJECT (flacparse, "Invalid maximum block size: %u", + GST_WARNING_OBJECT (flacparse, "Invalid maximum block size: %u", flacparse->max_blocksize); - return FALSE; } if (!gst_bit_reader_get_bits_uint32 (&reader, &flacparse->min_framesize, 24)) @@ -796,10 +844,10 @@ gst_flac_parse_handle_streaminfo (GstFlacParse * flacparse, GstBuffer * buffer) if (!gst_bit_reader_get_bits_uint64 (&reader, &flacparse->total_samples, 36)) goto error; - if (flacparse->total_samples) - gst_base_parse_set_duration (GST_BASE_PARSE (flacparse), GST_FORMAT_TIME, - GST_FRAMES_TO_CLOCK_TIME (flacparse->total_samples, - flacparse->samplerate), 0); + if (flacparse->total_samples) { + gst_base_parse_set_duration (GST_BASE_PARSE (flacparse), + GST_FORMAT_DEFAULT, flacparse->total_samples, 0); + } GST_DEBUG_OBJECT (flacparse, "STREAMINFO:\n" "\tmin/max blocksize: %u/%u,\n" @@ -1332,7 +1380,6 @@ gst_flac_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) flacparse->offset = -1; flacparse->blocking_strategy = 0; - flacparse->block_size = 0; flacparse->sample_number = 0; return GST_FLOW_OK; } @@ -1353,3 +1400,68 @@ gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) return GST_FLOW_OK; } + +static gboolean +gst_flac_parse_convert (GstBaseParse * parse, + GstFormat src_format, gint64 src_value, GstFormat dest_format, + gint64 * dest_value) +{ + GstFlacParse *flacparse = GST_FLAC_PARSE (parse); + + if (flacparse->samplerate > 0) { + if (src_format == GST_FORMAT_DEFAULT && dest_format == GST_FORMAT_TIME) { + if (src_value != -1) + *dest_value = + gst_util_uint64_scale (src_value, GST_SECOND, + flacparse->samplerate); + else + *dest_value = -1; + return TRUE; + } else if (src_format == GST_FORMAT_TIME && + dest_format == GST_FORMAT_DEFAULT) { + if (src_value != -1) + *dest_value = + gst_util_uint64_scale (src_value, flacparse->samplerate, + GST_SECOND); + else + *dest_value = -1; + return TRUE; + } + } + + return GST_BASE_PARSE_CLASS (parent_class)->convert (parse, src_format, + src_value, dest_format, dest_value); +} + +static GstCaps * +gst_flac_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the framed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "framed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/audioparsers/gstflacparse.h b/gst/audioparsers/gstflacparse.h index 1c6db0e..ebdc1b9 100644 --- a/gst/audioparsers/gstflacparse.h +++ b/gst/audioparsers/gstflacparse.h @@ -74,11 +74,14 @@ struct _GstFlacParse { guint8 blocking_strategy; guint16 block_size; guint64 sample_number; + gboolean strategy_checked; GstTagList *tags; GList *headers; GstBuffer *seektable; + + gboolean force_variable_block_size; }; struct _GstFlacParseClass { diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c index 0c55704..2381fc3 100644 --- a/gst/audioparsers/gstmpegaudioparse.c +++ b/gst/audioparsers/gstmpegaudioparse.c @@ -68,20 +68,23 @@ GST_DEBUG_CATEGORY_STATIC (mpeg_audio_parse_debug); #define XING_TOC_FLAG 0x0004 #define XING_VBR_SCALE_FLAG 0x0008 +#define MIN_FRAME_SIZE 6 + static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/mpeg, " "mpegversion = (int) 1, " "layer = (int) [ 1, 3 ], " - "rate = (int) [ 8000, 48000 ], channels = (int) [ 1, 2 ]," - "parsed=(boolean) true") + "mpegaudioversion = (int) [ 1, 3], " + "rate = (int) [ 8000, 48000 ], " + "channels = (int) [ 1, 2 ], " "parsed=(boolean) true") ); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/mpeg, mpegversion = (int) 1, parsed=(boolean)false") + GST_STATIC_CAPS ("audio/mpeg, mpegversion = (int) 1") ); static void gst_mpeg_audio_parse_finalize (GObject * object); @@ -97,6 +100,7 @@ static GstFlowReturn gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse, static gboolean gst_mpeg_audio_parse_convert (GstBaseParse * parse, GstFormat src_format, gint64 src_value, GstFormat dest_format, gint64 * dest_value); +static GstCaps *gst_mpeg_audio_parse_get_sink_caps (GstBaseParse * parse); GST_BOILERPLATE (GstMpegAudioParse, gst_mpeg_audio_parse, GstBaseParse, GST_TYPE_BASE_PARSE); @@ -142,10 +146,9 @@ gst_mpeg_audio_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "MPEG1 Audio Parser", "Codec/Parser/Audio", @@ -174,6 +177,8 @@ gst_mpeg_audio_parse_class_init (GstMpegAudioParseClass * klass) parse_class->pre_push_frame = GST_DEBUG_FUNCPTR (gst_mpeg_audio_parse_pre_push_frame); parse_class->convert = GST_DEBUG_FUNCPTR (gst_mpeg_audio_parse_convert); + parse_class->get_sink_caps = + GST_DEBUG_FUNCPTR (gst_mpeg_audio_parse_get_sink_caps); /* register tags */ #define GST_TAG_CRC "has-crc" @@ -237,7 +242,7 @@ gst_mpeg_audio_parse_start (GstBaseParse * parse) { GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse); - gst_base_parse_set_min_frame_size (GST_BASE_PARSE (mp3parse), 1024); + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (mp3parse), MIN_FRAME_SIZE); GST_DEBUG_OBJECT (parse, "starting"); gst_mpeg_audio_parse_reset (mp3parse); @@ -554,6 +559,9 @@ gst_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse, return FALSE; } + /* restore default minimum */ + gst_base_parse_set_min_frame_size (parse, MIN_FRAME_SIZE); + *framesize = bpf; return TRUE; } @@ -1263,3 +1271,36 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse, return GST_FLOW_OK; } + +static GstCaps * +gst_mpeg_audio_parse_get_sink_caps (GstBaseParse * parse) +{ + GstCaps *peercaps; + GstCaps *res; + + peercaps = gst_pad_get_allowed_caps (GST_BASE_PARSE_SRC_PAD (parse)); + if (peercaps) { + guint i, n; + + /* Remove the parsed field */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + + gst_structure_remove_field (s, "parsed"); + } + + res = + gst_caps_intersect_full (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_PARSE_SRC_PAD (parse)), + GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = + gst_caps_copy (gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD + (parse))); + } + + return res; +} diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in index 2e0739e..392cb0a 100644 --- a/gst/auparse/Makefile.in +++ b/gst/auparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstauparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstauparse_la_OBJECTS = libgstauparse_la-gstauparse.lo libgstauparse_la_OBJECTS = $(am_libgstauparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstauparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstauparse_la_SOURCES) DIST_SOURCES = $(libgstauparse_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +548,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstauparse.la: $(libgstauparse_la_OBJECTS) $(libgstauparse_la_DEPENDENCIES) +libgstauparse.la: $(libgstauparse_la_OBJECTS) $(libgstauparse_la_DEPENDENCIES) $(EXTRA_libgstauparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstauparse_la_LINK) -rpath $(plugindir) $(libgstauparse_la_OBJECTS) $(libgstauparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +562,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstauparse_la-gstauparse.lo: gstauparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -MT libgstauparse_la-gstauparse.lo -MD -MP -MF $(DEPDIR)/libgstauparse_la-gstauparse.Tpo -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstauparse_la-gstauparse.Tpo $(DEPDIR)/libgstauparse_la-gstauparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstauparse.c' object='libgstauparse_la-gstauparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstauparse.c' object='libgstauparse_la-gstauparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstauparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstauparse_la_CFLAGS) $(CFLAGS) -c -o libgstauparse_la-gstauparse.lo `test -f 'gstauparse.c' || echo '$(srcdir)/'`gstauparse.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +692,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index 715acb2..e0cdc82 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -78,6 +78,9 @@ static gboolean gst_au_parse_add_srcpad (GstAuParse * auparse, GstCaps * caps); static gboolean gst_au_parse_src_query (GstPad * pad, GstQuery * query); static gboolean gst_au_parse_src_event (GstPad * pad, GstEvent * event); static gboolean gst_au_parse_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_au_parse_src_convert (GstAuParse * auparse, + GstFormat src_format, gint64 srcval, GstFormat dest_format, + gint64 * destval); GST_BOILERPLATE (GstAuParse, gst_au_parse, GstElement, GST_TYPE_ELEMENT); @@ -86,10 +89,9 @@ gst_au_parse_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "AU audio demuxer", "Codec/Demuxer/Audio", "Parse an .au file into raw audio", @@ -251,7 +253,9 @@ gst_au_parse_parse_header (GstAuParse * auparse) } auparse->offset = GST_READ_UINT32_BE (head + 4); - /* Do not trust size, could be set to -1 : unknown */ + /* Do not trust size, could be set to -1 : unknown + * otherwise: filesize = size + auparse->offset + */ size = GST_READ_UINT32_BE (head + 8); auparse->encoding = GST_READ_UINT32_BE (head + 12); auparse->samplerate = GST_READ_UINT32_BE (head + 16); @@ -425,6 +429,9 @@ gst_au_parse_chain (GstPad * pad, GstBuffer * buf) GstFlowReturn ret = GST_FLOW_OK; GstAuParse *auparse; gint avail, sendnow = 0; + gint64 timestamp; + gint64 duration; + gint64 offset; auparse = GST_AU_PARSE (gst_pad_get_parent (pad)); @@ -446,7 +453,7 @@ gst_au_parse_chain (GstPad * pad, GstBuffer * buf) goto out; gst_pad_push_event (auparse->srcpad, - gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_DEFAULT, + gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, GST_CLOCK_TIME_NONE, 0)); } @@ -464,6 +471,7 @@ gst_au_parse_chain (GstPad * pad, GstBuffer * buf) if (sendnow > 0) { GstBuffer *outbuf; const guint8 *data; + gint64 pos; ret = gst_pad_alloc_buffer_and_set_caps (auparse->srcpad, auparse->buffer_offset, sendnow, GST_PAD_CAPS (auparse->srcpad), @@ -478,6 +486,22 @@ gst_au_parse_chain (GstPad * pad, GstBuffer * buf) memcpy (GST_BUFFER_DATA (outbuf), data, sendnow); gst_adapter_flush (auparse->adapter, sendnow); + pos = auparse->buffer_offset - auparse->offset; + pos = MAX (pos, 0); + + if (auparse->sample_size > 0 && auparse->samplerate > 0) { + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, pos, + GST_FORMAT_DEFAULT, &offset); + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, pos, + GST_FORMAT_TIME, ×tamp); + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, + sendnow, GST_FORMAT_TIME, &duration); + + GST_BUFFER_OFFSET (outbuf) = offset; + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + GST_BUFFER_DURATION (outbuf) = duration; + } + auparse->buffer_offset += sendnow; ret = gst_pad_push (auparse->srcpad, outbuf); @@ -517,6 +541,9 @@ gst_au_parse_src_convert (GstAuParse * auparse, GstFormat src_format, /* fallthrough */ case GST_FORMAT_DEFAULT:{ switch (dest_format) { + case GST_FORMAT_DEFAULT: + *destval = srcval; + break; case GST_FORMAT_BYTES: *destval = srcval * samplesize; break; @@ -532,8 +559,8 @@ gst_au_parse_src_convert (GstAuParse * auparse, GstFormat src_format, case GST_FORMAT_TIME:{ switch (dest_format) { case GST_FORMAT_BYTES: - *destval = - gst_util_uint64_scale_int (srcval, rate * samplesize, GST_SECOND); + *destval = samplesize * + gst_util_uint64_scale_int (srcval, rate, GST_SECOND); break; case GST_FORMAT_DEFAULT: *destval = gst_util_uint64_scale_int (srcval, rate, GST_SECOND); @@ -581,8 +608,7 @@ gst_au_parse_src_query (GstPad * pad, GstQuery * query) len -= auparse->offset; GST_OBJECT_UNLOCK (auparse); - ret = gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, len, - format, &val); + ret = gst_au_parse_src_convert (auparse, bformat, len, format, &val); if (ret) { gst_query_set_duration (query, format, val); @@ -611,6 +637,17 @@ gst_au_parse_src_query (GstPad * pad, GstQuery * query) } break; } + case GST_QUERY_SEEKING:{ + GstFormat format; + + gst_query_parse_seeking (query, &format, NULL, NULL, NULL); + /* FIXME: query duration in 'format' + gst_query_set_seeking (query, format, TRUE, 0, duration); + */ + gst_query_set_seeking (query, format, TRUE, 0, GST_CLOCK_TIME_NONE); + ret = TRUE; + break; + } default: ret = gst_pad_query_default (pad, query); break; @@ -628,6 +665,7 @@ gst_au_parse_handle_seek (GstAuParse * auparse, GstEvent * event) GstFormat format; gdouble rate; gint64 start, stop; + gboolean res; gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, &stop_type, &stop); @@ -637,19 +675,85 @@ gst_au_parse_handle_seek (GstAuParse * auparse, GstEvent * event) return FALSE; } - /* FIXME: implement seeking */ - return FALSE; + res = gst_au_parse_src_convert (auparse, GST_FORMAT_TIME, start, + GST_FORMAT_BYTES, &start); + + if (stop > 0) { + res = gst_au_parse_src_convert (auparse, GST_FORMAT_TIME, stop, + GST_FORMAT_BYTES, &stop); + } + + GST_INFO_OBJECT (auparse, + "seeking: %" G_GINT64_FORMAT " ... %" G_GINT64_FORMAT, start, stop); + + event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, start_type, start, + stop_type, stop); + res = gst_pad_push_event (auparse->sinkpad, event); + return res; } static gboolean gst_au_parse_sink_event (GstPad * pad, GstEvent * event) { GstAuParse *auparse; - gboolean ret; + gboolean ret = TRUE; auparse = GST_AU_PARSE (gst_pad_get_parent (pad)); switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time, offset = 0; + gboolean update; + GstSegment segment; + GstEvent *new_event = NULL; + + gst_segment_init (&segment, GST_FORMAT_UNDEFINED); + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + gst_segment_set_newsegment_full (&segment, update, rate, arate, format, + start, stop, time); + + if (auparse->sample_size > 0) { + if (start > 0) { + offset = start; + start -= auparse->offset; + start = MAX (start, 0); + } + if (stop > 0) { + stop -= auparse->offset; + stop = MAX (stop, 0); + } + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, start, + GST_FORMAT_TIME, &start); + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, stop, + GST_FORMAT_TIME, &stop); + } + + if (auparse->srcpad) { + GST_INFO_OBJECT (auparse, + "new segment: %" GST_TIME_FORMAT " ... %" GST_TIME_FORMAT, + GST_TIME_ARGS (start), GST_TIME_ARGS (stop)); + + new_event = gst_event_new_new_segment_full (update, rate, arate, + GST_FORMAT_TIME, start, stop, start); + + ret = gst_pad_push_event (auparse->srcpad, new_event); + } + + auparse->buffer_offset = offset; + + gst_event_unref (event); + break; + } + case GST_EVENT_EOS: + if (!auparse->srcpad) { + GST_ELEMENT_ERROR (auparse, STREAM, WRONG_TYPE, + ("No valid input found before end of stream"), (NULL)); + } + /* fall-through */ default: ret = gst_pad_event_default (pad, event); break; diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in index 34354b2..395497d 100644 --- a/gst/autodetect/Makefile.in +++ b/gst/autodetect/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstautodetect_la_OBJECTS = \ libgstautodetect_la-gstautovideosink.lo \ libgstautodetect_la-gstautovideosrc.lo libgstautodetect_la_OBJECTS = $(am_libgstautodetect_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstautodetect_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstautodetect_la_SOURCES) DIST_SOURCES = $(libgstautodetect_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -564,7 +564,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstautodetect.la: $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_DEPENDENCIES) +libgstautodetect.la: $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_DEPENDENCIES) $(EXTRA_libgstautodetect_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstautodetect_la_LINK) -rpath $(plugindir) $(libgstautodetect_la_OBJECTS) $(libgstautodetect_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -582,66 +582,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstautodetect_la-gstautoaudiosink.lo: gstautoaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Tpo -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Tpo $(DEPDIR)/libgstautodetect_la-gstautoaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautoaudiosink.c' object='libgstautodetect_la-gstautoaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautoaudiosink.c' object='libgstautodetect_la-gstautoaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosink.lo `test -f 'gstautoaudiosink.c' || echo '$(srcdir)/'`gstautoaudiosink.c libgstautodetect_la-gstautoaudiosrc.lo: gstautoaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautoaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Tpo -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Tpo $(DEPDIR)/libgstautodetect_la-gstautoaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautoaudiosrc.c' object='libgstautodetect_la-gstautoaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautoaudiosrc.c' object='libgstautodetect_la-gstautoaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautoaudiosrc.lo `test -f 'gstautoaudiosrc.c' || echo '$(srcdir)/'`gstautoaudiosrc.c libgstautodetect_la-gstautodetect.lo: gstautodetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautodetect.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautodetect.Tpo -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautodetect.Tpo $(DEPDIR)/libgstautodetect_la-gstautodetect.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautodetect.c' object='libgstautodetect_la-gstautodetect.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautodetect.c' object='libgstautodetect_la-gstautodetect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautodetect.lo `test -f 'gstautodetect.c' || echo '$(srcdir)/'`gstautodetect.c libgstautodetect_la-gstautovideosink.lo: gstautovideosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosink.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosink.Tpo -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautovideosink.Tpo $(DEPDIR)/libgstautodetect_la-gstautovideosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautovideosink.c' object='libgstautodetect_la-gstautovideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautovideosink.c' object='libgstautodetect_la-gstautovideosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosink.lo `test -f 'gstautovideosink.c' || echo '$(srcdir)/'`gstautovideosink.c libgstautodetect_la-gstautovideosrc.lo: gstautovideosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -MT libgstautodetect_la-gstautovideosrc.lo -MD -MP -MF $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Tpo -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Tpo $(DEPDIR)/libgstautodetect_la-gstautovideosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstautovideosrc.c' object='libgstautodetect_la-gstautovideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstautovideosrc.c' object='libgstautodetect_la-gstautovideosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstautodetect_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstautodetect_la_CFLAGS) $(CFLAGS) -c -o libgstautodetect_la-gstautovideosrc.lo `test -f 'gstautovideosrc.c' || echo '$(srcdir)/'`gstautovideosrc.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +740,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c index fae54f5..535f294 100644 --- a/gst/autodetect/gstautoaudiosink.c +++ b/gst/autodetect/gstautoaudiosink.c @@ -73,8 +73,7 @@ gst_auto_audio_sink_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); gst_element_class_set_details_simple (eklass, "Auto audio sink", "Sink/Audio", diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c index 40c53c6..87ba27f 100644 --- a/gst/autodetect/gstautoaudiosrc.c +++ b/gst/autodetect/gstautoaudiosrc.c @@ -74,8 +74,7 @@ gst_auto_audio_src_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (eklass, &src_template); gst_element_class_set_details_simple (eklass, "Auto audio source", "Source/Audio", diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c index 7e37ffe..d4e0419 100644 --- a/gst/autodetect/gstautovideosink.c +++ b/gst/autodetect/gstautovideosink.c @@ -74,8 +74,7 @@ gst_auto_video_sink_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (eklass, &sink_template); gst_element_class_set_details_simple (eklass, "Auto video sink", "Sink/Video", "Wrapper video sink for automatically detected video sink", diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c index af19456..fb7bd8a 100644 --- a/gst/autodetect/gstautovideosrc.c +++ b/gst/autodetect/gstautovideosrc.c @@ -75,8 +75,7 @@ gst_auto_video_src_base_init (gpointer klass) { GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (eklass, &src_template); gst_element_class_set_details_simple (eklass, "Auto video source", "Source/Video", "Wrapper video source for automatically detected video source", diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in index c933204..45af373 100644 --- a/gst/avi/Makefile.in +++ b/gst/avi/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -35,7 +35,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@USE_DIVX_DRM_TRUE@am__append_1 = -DDIVX_DRM subdir = gst/avi DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in @@ -68,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -104,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +117,8 @@ am_libgstavi_la_OBJECTS = libgstavi_la-gstavi.lo \ libgstavi_la-gstavimux.lo libgstavi_la-gstavidemux.lo \ libgstavi_la-gstavisubtitle.lo libgstavi_la_OBJECTS = $(am_libgstavi_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstavi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstavi_la_SOURCES) DIST_SOURCES = $(libgstavi_la_SOURCES) @@ -227,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -492,8 +491,7 @@ noinst_HEADERS = \ gstavidemux.h \ gstavisubtitle.h -libgstavi_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ - $(GST_CFLAGS) $(am__append_1) +libgstavi_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstavi_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) \ @@ -570,7 +568,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstavi.la: $(libgstavi_la_OBJECTS) $(libgstavi_la_DEPENDENCIES) +libgstavi.la: $(libgstavi_la_OBJECTS) $(libgstavi_la_DEPENDENCIES) $(EXTRA_libgstavi_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstavi_la_LINK) -rpath $(plugindir) $(libgstavi_la_OBJECTS) $(libgstavi_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -587,58 +585,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstavi_la-gstavi.lo: gstavi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavi.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavi.Tpo -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavi.Tpo $(DEPDIR)/libgstavi_la-gstavi.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstavi.c' object='libgstavi_la-gstavi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstavi.c' object='libgstavi_la-gstavi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavi.lo `test -f 'gstavi.c' || echo '$(srcdir)/'`gstavi.c libgstavi_la-gstavimux.lo: gstavimux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavimux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavimux.Tpo -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavimux.Tpo $(DEPDIR)/libgstavi_la-gstavimux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstavimux.c' object='libgstavi_la-gstavimux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstavimux.c' object='libgstavi_la-gstavimux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavimux.lo `test -f 'gstavimux.c' || echo '$(srcdir)/'`gstavimux.c libgstavi_la-gstavidemux.lo: gstavidemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavidemux.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavidemux.Tpo -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavidemux.Tpo $(DEPDIR)/libgstavi_la-gstavidemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstavidemux.c' object='libgstavi_la-gstavidemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstavidemux.c' object='libgstavi_la-gstavidemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavidemux.lo `test -f 'gstavidemux.c' || echo '$(srcdir)/'`gstavidemux.c libgstavi_la-gstavisubtitle.lo: gstavisubtitle.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -MT libgstavi_la-gstavisubtitle.lo -MD -MP -MF $(DEPDIR)/libgstavi_la-gstavisubtitle.Tpo -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstavi_la-gstavisubtitle.Tpo $(DEPDIR)/libgstavi_la-gstavisubtitle.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstavisubtitle.c' object='libgstavi_la-gstavisubtitle.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstavisubtitle.c' object='libgstavi_la-gstavisubtitle.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstavi_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstavi_la_CFLAGS) $(CFLAGS) -c -o libgstavi_la-gstavisubtitle.lo `test -f 'gstavisubtitle.c' || echo '$(srcdir)/'`gstavisubtitle.c mostlyclean-libtool: -rm -f *.lo @@ -745,10 +736,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 1ac2955..0b5a55e 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -45,11 +45,17 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include -#include +#ifdef DIVX_DRM /* need to check to use same define */ +#include #include +#endif #include "gst/riff/riff-media.h" #include "gstavidemux.h" @@ -148,9 +154,11 @@ static void gst_avi_demux_parse_idit (GstAviDemux * avi, GstBuffer * buf); /*Modification: Added function to find out the frame_type for index-table generation */ static int gst_avi_demux_find_frame_type (GstAviStream *stream, GstBuffer *buf, int *frame_type); +static void gst_avidemux_forward_trickplay (GstAviDemux * avi, GstAviStream * stream, guint64 *timestamp); +static void gst_avidemux_backward_trickplay (GstAviDemux * avi, GstAviStream * stream, guint64 *timestamp); +static GstFlowReturn gst_avidemux_seek_to_previous_keyframe (GstAviDemux *avi); #endif - static GstElementClass *parent_class = NULL; #ifdef DIVX_DRM @@ -315,8 +323,10 @@ gst_avi_demux_base_init (GstAviDemuxClass * klass) gst_element_class_add_pad_template (element_class, audiosrctempl); gst_element_class_add_pad_template (element_class, videosrctempl); gst_element_class_add_pad_template (element_class, subsrctempl); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_templ)); + gst_element_class_add_static_pad_template (element_class, &sink_templ); + gst_object_unref (audiosrctempl); + gst_object_unref (videosrctempl); + gst_object_unref (subsrctempl); gst_element_class_set_details_simple (element_class, "Avi demuxer", "Codec/Demuxer", "Demultiplex an avi file into audio and video", @@ -393,6 +403,11 @@ gst_avi_demux_reset_stream (GstAviDemux * avi, GstAviStream * stream) g_free (stream->name); g_free (stream->index); g_free (stream->indexes); +#ifdef AVIDEMUX_MODIFICATION + if (stream->trickplay_info) + g_free (stream->trickplay_info); +#endif + if (stream->initdata) gst_buffer_unref (stream->initdata); if (stream->extradata) @@ -1016,9 +1031,6 @@ gst_avi_demux_handle_sink_event (GstPad * pad, GstEvent * event) stop = GST_CLOCK_TIME_NONE; - /* compensate for slack */ - if (time) - time += GST_AVI_SEEK_PUSH_DISPLACE; /* set up segment and send downstream */ gst_segment_set_newsegment_full (&avi->segment, update, rate, arate, GST_FORMAT_TIME, time, stop, time); @@ -2097,14 +2109,16 @@ too_small: static inline void gst_avi_demux_roundup_list (GstAviDemux * avi, GstBuffer ** buf) { - if (G_UNLIKELY (GST_BUFFER_SIZE (*buf) & 1)) { + gint size = GST_BUFFER_SIZE (*buf); + + if (G_UNLIKELY (size & 1)) { GstBuffer *obuf; - GST_DEBUG_OBJECT (avi, "rounding up dubious list size %d", - GST_BUFFER_SIZE (*buf)); - obuf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (*buf) + 1); - memcpy (GST_BUFFER_DATA (obuf), GST_BUFFER_DATA (*buf), - GST_BUFFER_SIZE (*buf)); + GST_DEBUG_OBJECT (avi, "rounding up dubious list size %d", size); + obuf = gst_buffer_new_and_alloc (size + 1); + memcpy (GST_BUFFER_DATA (obuf), GST_BUFFER_DATA (*buf), size); + /* assume 0 padding, at least makes outcome deterministic */ + (GST_BUFFER_DATA (obuf))[size] = 0; gst_buffer_replace (buf, obuf); } } @@ -2127,12 +2141,12 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) { GstAviStream *stream; GstElementClass *klass; - GstPadTemplate *templ = NULL; + GstPadTemplate *templ; GstBuffer *sub = NULL; guint offset = 4; guint32 tag = 0; gchar *codec_name = NULL, *padname = NULL; - const gchar *tag_name = NULL; + const gchar *tag_name; GstCaps *caps = NULL; GstPad *pad; GstElement *element; @@ -2462,7 +2476,7 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) break; } default: - g_assert_not_reached (); + g_return_val_if_reached (FALSE); } /* no caps means no stream */ @@ -2499,10 +2513,6 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) GST_DEBUG_FUNCPTR (gst_avi_demux_src_convert)); #endif - if (avi->element_index) - gst_index_get_writer_id (avi->element_index, GST_OBJECT_CAST (stream->pad), - &stream->index_id); - stream->num = avi->num_streams; stream->start_entry = 0; @@ -2526,46 +2536,10 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) avi->num_streams++; #ifdef AVIDEMUX_MODIFICATION -/*Modification: Temporary fix for deselcting the ac3parse element in the pipeline to - avoid the trickplay issues */ - GST_INFO_OBJECT(avi, "prepared caps=> %s", gst_caps_to_string(caps)); - -#if 1 - { - GstStructure *tempstruct; - GstStructure *structure; - - tempstruct = gst_caps_get_structure(caps, 0); - - if(!strcmp(gst_structure_get_name (tempstruct), "audio/x-ac3")) - { - - structure = gst_structure_copy(tempstruct); - - gst_structure_set(structure, "framed", G_TYPE_BOOLEAN, TRUE, NULL); - - gst_caps_remove_structure(caps, 0); - - gst_caps_merge_structure(caps, structure); - - } - else if(!strcmp(gst_structure_get_name (tempstruct), "audio/mpeg")) - { - - structure = gst_structure_copy(tempstruct); - - gst_structure_set(structure, "parsed", G_TYPE_BOOLEAN, TRUE, NULL); - - gst_caps_remove_structure(caps, 0); - - gst_caps_merge_structure(caps, structure); - - } - - } - -#endif - + stream->trickplay_info = g_new0 (TrickPlayInfo, 1); + stream->trickplay_info->prev_kidx = 0; + stream->trickplay_info->next_kidx = 0; + stream->trickplay_info->kidxs_dur_diff = 0; #endif gst_pad_set_caps (pad, caps); gst_pad_set_active (pad, TRUE); @@ -2813,7 +2787,6 @@ gst_avi_demux_stream_for_id (GstAviDemux * avi, guint32 id) static gboolean gst_avi_demux_parse_index (GstAviDemux * avi, GstBuffer * buf) { - guint64 pos_before; guint8 *data; guint size; guint i, num, n; @@ -2839,7 +2812,6 @@ gst_avi_demux_parse_index (GstAviDemux * avi, GstBuffer * buf) GST_INFO_OBJECT (avi, "Parsing index, nr_entries = %6d", num); index = (gst_riff_index_entry *) data; - pos_before = avi->offset; /* figure out if the index is 0 based or relative to the MOVI start */ entry.offset = GST_READ_UINT32_LE (&index[0].offset); @@ -2860,12 +2832,13 @@ gst_avi_demux_parse_index (GstAviDemux * avi, GstBuffer * buf) (entry.offset == 0 && n > 0))) continue; - if ( id == GST_MAKE_FOURCC('0','0','d','d') ) - { - GST_DEBUG("Skipping Encrypt data chunk"); - continue; - } - +#ifdef DIVX_DRM /* need to check using same define */ + if ( id == GST_MAKE_FOURCC('0','0','d','d') ) + { + GST_DEBUG("Skipping Encrypt data chunk"); + continue; + } +#endif /* get the stream for this entry */ stream = gst_avi_demux_stream_for_id (avi, id); @@ -3194,159 +3167,6 @@ gst_avi_demux_next_data_buffer (GstAviDemux * avi, guint64 * offset, return res; } -#ifdef AVIDEMUX_MODIFICATION -/*Modification: Added function to find out the frame_type for index-table generation */ - -static int -gst_avi_demux_find_frame_type (GstAviStream *stream, GstBuffer *buf, int *frame_type) -{ - unsigned char *buff = GST_BUFFER_DATA (buf); - unsigned int buff_len = GST_BUFFER_SIZE (buf); - - switch (stream->strh->fcc_handler) - { - /* mpeg stream parsing case */ - case GST_MAKE_FOURCC ('X', 'V', 'I', 'D'): - case GST_MAKE_FOURCC ('x', 'v', 'i', 'd'): - case GST_MAKE_FOURCC ('D', 'X', '5', '0'): - case GST_MAKE_FOURCC ('d', 'i', 'v', 'x'): - case GST_MAKE_FOURCC ('D', 'I', 'V', 'X'): - case GST_MAKE_FOURCC ('B', 'L', 'Z', '0'): - case GST_MAKE_FOURCC ('F', 'M', 'P', '4'): - case GST_MAKE_FOURCC ('U', 'M', 'P', '4'): - case GST_MAKE_FOURCC ('F', 'F', 'D', 'S'): - case GST_MAKE_FOURCC ('M', 'P', 'E', 'G'): - case GST_MAKE_FOURCC ('M', 'P', 'G', 'I'): - case GST_MAKE_FOURCC ('m', 'p', 'g', '1'): - case GST_MAKE_FOURCC ('M', 'P', 'G', '1'): - case GST_MAKE_FOURCC ('P', 'I', 'M', '1'): - case GST_MAKE_FOURCC ('M', 'P', 'G', '2'): - case GST_MAKE_FOURCC ('m', 'p', 'g', '2'): - case GST_MAKE_FOURCC ('P', 'I', 'M', '2'): - case GST_MAKE_FOURCC ('D', 'V', 'R', ' '): - { - int idx = 0; - for (idx=0; idx<(buff_len-3); idx++) - { - /* Find VOP start frame which should be in every frame */ - //GST_DEBUG ("~~~~~~~~~~~~~~~~~~~~%d : %x", idx, buff[idx]); - if (buff[idx] == 0x00 && buff[idx+1] == 0x00 && buff[idx+2] == 0x01 && buff[idx+3] == 0xB6) - break; - } - - if (idx==(buff_len)) - { - GST_ERROR ("Invalid input stream : There isn't any VOP header"); - return -1; - } - - if ((buff[idx] == 0x00) && (buff[idx+1] == 0x00) && (buff[idx+2] == 0x01)) - { - if(buff[idx+3] == 0xB6) - { - switch (buff[4] & 0xC0) - { - case 0x00: - GST_DEBUG ("Found Key-Frame"); - *frame_type = GST_AVI_KEYFRAME; - break; - default: - GST_DEBUG ("Found Non-Key frame.. value = %x", buff[4]); - *frame_type = GST_AVI_NON_KEYFRAME; - break; - } - } - else if (buff[3] == 0xB0) - { - *frame_type = GST_AVI_KEYFRAME; - } - } - } - break; - case GST_MAKE_FOURCC ('H', '2', '6', '3'): - case GST_MAKE_FOURCC ('h', '2', '6', '3'): - case GST_MAKE_FOURCC ('i', '2', '6', '3'): - case GST_MAKE_FOURCC ('U', '2', '6', '3'): - case GST_MAKE_FOURCC ('v', 'i', 'v', '1'): - case GST_MAKE_FOURCC ('T', '2', '6', '3'): - { - /* TODO: H263 Frame Parsing */ - *frame_type = GST_AVI_KEYFRAME; - } - break; - case GST_MAKE_FOURCC ('X', '2', '6', '4'): - case GST_MAKE_FOURCC ('x', '2', '6', '4'): - case GST_MAKE_FOURCC ('H', '2', '6', '4'): - case GST_MAKE_FOURCC ('h', '2', '6', '4'): - case GST_MAKE_FOURCC ('a', 'v', 'c', '1'): - case GST_MAKE_FOURCC ('A', 'V', 'C', '1'): - { - gint idx = 0; - gint nalu_type = H264_NUT_UNKNOWN; - /* H264 Frame Parsing */ - do - { - if (buff[idx+0] == 0x00 && - buff[idx+1] == 0x00 && - ((buff [idx+2] == 0x01) || ((buff [idx+2] == 0x00) && (buff [idx+3] == 0x01)))) - { - if (buff [idx+2] == 0x01) - { - nalu_type = buff[idx +3] & 0x1f; - } - else if ((buff [idx+2] == 0x00) && (buff [idx+3] == 0x01)) - { - nalu_type = buff[idx +4] & 0x1f; - } - if ((nalu_type == H264_NUT_SPS) || - (nalu_type == H264_NUT_PPS) || - (nalu_type == H264_NUT_SEI) || - (nalu_type == H264_NUT_AUD)) - { - GST_DEBUG ("Skipping NALU SPS/PPS/SEI/AUD..."); - } - else if (nalu_type == H264_NUT_IDR) - { - GST_DEBUG ("Found KEY frame...\n"); - *frame_type = GST_AVI_KEYFRAME; - break; - } - else if ((nalu_type == H264_NUT_SLICE) || - (nalu_type == H264_NUT_DPA) || - (nalu_type == H264_NUT_DPB) || - (nalu_type == H264_NUT_DPC) || - (nalu_type == H264_NUT_EOSEQ) || - (nalu_type == H264_NUT_EOSTREAM)) - { - *frame_type = GST_AVI_NON_KEYFRAME; - break; - } - else - { - GST_DEBUG ("Unknown frame type, val = %d...", *frame_type); - *frame_type = GST_AVI_NON_KEYFRAME; - break; - } - idx ++; - } - else - { - idx++; - } - }while (idx < (buff_len - 4)); - } - break; - default: - //naveen: default make all frames as key frames - *frame_type = GST_AVI_KEYFRAME; - break; - } - - return 0; - -} -#endif - /* * gst_avi_demux_stream_scan: * @avi: calling element (used for debugging/errors). @@ -3397,30 +3217,26 @@ gst_avi_demux_stream_scan (GstAviDemux * avi) if (G_UNLIKELY (!stream)) goto next; #ifdef AVIDEMUX_MODIFICATION - /*Modification: Added logic to generate the index table with key frames */ - - /* naveen: generating index table with key frames */ - if (stream->strh->type == GST_RIFF_FCC_vids) - { - GstBuffer *buf = NULL; - int ret = -1; - - res = gst_pad_pull_range (avi->sinkpad, pos, size, &buf); - if (res != GST_FLOW_OK) - { - gst_buffer_unref (buf); - GST_ERROR ("[Naveen] Pull failed....\n\n"); - break; - } - - ret = gst_avi_demux_find_frame_type (stream, buf, &frame_type); - if (ret == -1) - break; - - gst_buffer_unref (buf); + /* generating index table with key frames */ + if (stream->strh->type == GST_RIFF_FCC_vids) { + GstBuffer *buf = NULL; + int ret = -1; + + res = gst_pad_pull_range (avi->sinkpad, pos, size, &buf); + if (res != GST_FLOW_OK) { + gst_buffer_unref (buf); + GST_ERROR ("Pull failed....\n\n"); + break; + } + ret = gst_avi_demux_find_frame_type (stream, buf, &frame_type); + if (ret == -1) + break; + gst_buffer_unref (buf); } - entry.flags = frame_type; +#else + /* we can't figure out the keyframes, assume they all are */ + entry.flags = GST_AVI_KEYFRAME; #endif entry.offset = pos; entry.size = size; @@ -3638,11 +3454,6 @@ gst_avi_demux_check_seekability (GstAviDemux * avi) seekable = FALSE; } - if (!avi->element_index) { - GST_DEBUG_OBJECT (avi, "no index"); - seekable = FALSE; - } - done: GST_INFO_OBJECT (avi, "seekable: %d (%" G_GUINT64_FORMAT " - %" G_GUINT64_FORMAT ")", seekable, start, stop); @@ -4475,7 +4286,11 @@ gst_avi_demux_move_stream (GstAviDemux * avi, GstAviStream * stream, * to the next keyframe. If there is a smart decoder downstream he will notice * that there are too many encoded frames send and return UNEXPECTED when there * are enough decoded frames to fill the segment. */ +#ifdef AVIDEMUX_MODIFICATION + next_key = gst_avi_demux_index_for_time (avi, stream, avi->seek_kf_offset); +#else next_key = gst_avi_demux_index_next (avi, stream, index, TRUE); +#endif /* FIXME, we go back to 0, we should look at segment.start. We will however * stop earlier when the see the timestamp < segment.start */ @@ -4526,7 +4341,12 @@ gst_avi_demux_do_seek (GstAviDemux * avi, GstSegment * segment) GstAviStream *stream; seek_time = segment->last_stop; - keyframe = ! !(segment->flags & GST_SEEK_FLAG_KEY_UNIT); + +#ifdef AVIDEMUX_MODIFICATION + avi->seek_kf_offset = seek_time; +#endif + + keyframe = !!(segment->flags & GST_SEEK_FLAG_KEY_UNIT); GST_DEBUG_OBJECT (avi, "seek to: %" GST_TIME_FORMAT " keyframe seeking:%d", GST_TIME_ARGS (seek_time), keyframe); @@ -4538,11 +4358,19 @@ gst_avi_demux_do_seek (GstAviDemux * avi, GstSegment * segment) /* get the entry index for the requested position */ index = gst_avi_demux_index_for_time (avi, stream, seek_time); GST_DEBUG_OBJECT (avi, "Got entry %u", index); + + #ifdef AVIDEMUX_MODIFICATION -/*Modification: Conditions added to support trickplay*/ -if(segment->rate<=1.0 && segment->rate>=0.0) + if(segment->rate < 0.0 && index) { + /* If index is keyframe, reduce index by 1, so that we could fetch prev keyframe for video */ + /* This change is done to fix the out of segment issue when seek position is a keyframe position */ + if (ENTRY_IS_KEYFRAME (&stream->index[index])) { + index--; + } + } #endif -{ + + /* check if we are already on a keyframe */ if (!ENTRY_IS_KEYFRAME (&stream->index[index])) { GST_DEBUG_OBJECT (avi, "not keyframe, searching back"); @@ -4551,7 +4379,7 @@ if(segment->rate<=1.0 && segment->rate>=0.0) index = gst_avi_demux_index_prev (avi, stream, index, TRUE); GST_DEBUG_OBJECT (avi, "previous keyframe at %u", index); } -} + /* move the main stream to this position */ gst_avi_demux_move_stream (avi, stream, segment, index); @@ -4566,18 +4394,20 @@ if(segment->rate<=1.0 && segment->rate>=0.0) /* the seek time is also the last_stop and stream time when going * forwards */ segment->last_stop = seek_time; - if (segment->rate > 0.0) - { -#ifndef AVIDEMUX_MODIFICATION - /*initialization of rate params */ //Kishore - stream->next_kindex=0; - stream->prev_kindex=0; - stream->total_samples_bet_2_keyframes=0; - stream->audio_frame_count=0; + +#ifdef AVIDEMUX_MODIFICATION + /*initialization of rate params */ + stream->trickplay_info->prev_kidx =0; + stream->trickplay_info->next_kidx=0; + stream->trickplay_info->kidxs_dur_diff=0; + stream->trickplay_info->start_pos = segment->last_stop; + /* Adjust seek_time to video keyframe's timestamp so that audio can align to that position */ + if(segment->rate < 0.0) + seek_time = stream->current_timestamp; #else + if (segment->rate > 0.0) segment->time = seek_time; #endif - } /* now set DISCONT and align the other streams */ for (i = 0; i < avi->num_streams; i++) { @@ -4590,15 +4420,9 @@ if(segment->rate<=1.0 && segment->rate>=0.0) /* get the entry index for the requested position */ index = gst_avi_demux_index_for_time (avi, ostream, seek_time); -#ifdef AVIDEMUX_MODIFICATION -/*Modification: Conditions added to support trickplay */ - if(segment->rate<=1.0 && segment->rate>=0.0) -#endif - { - /* move to previous keyframe */ - if (!ENTRY_IS_KEYFRAME (&ostream->index[index])) - index = gst_avi_demux_index_prev (avi, ostream, index, TRUE); - } + /* move to previous keyframe */ + if (!ENTRY_IS_KEYFRAME (&ostream->index[index])) + index = gst_avi_demux_index_prev (avi, ostream, index, TRUE); gst_avi_demux_move_stream (avi, ostream, segment, index); } @@ -4687,6 +4511,12 @@ gst_avi_demux_handle_seek (GstAviDemux * avi, GstPad * pad, GstEvent * event) gst_segment_set_seek (&seeksegment, rate, format, flags, cur_type, cur, stop_type, stop, &update); } + +#ifdef AVIDEMUX_MODIFICATION + if (cur != GST_CLOCK_TIME_NONE) + gst_segment_set_last_stop (&seeksegment, GST_FORMAT_TIME, cur); +#endif + /* do the seek, seeksegment.last_stop contains the new position, this * actually never fails. */ gst_avi_demux_do_seek (avi, &seeksegment); @@ -4732,9 +4562,8 @@ gst_avi_demux_handle_seek (GstAviDemux * avi, GstPad * pad, GstEvent * event) avi->segment.last_stop, stop, avi->segment.time); } else { #ifdef AVIDEMUX_MODIFICATION - - avi->segment.start = 0; - avi->segment.time = 0; + avi->segment.start = 0; + avi->segment.time = 0; #endif /* reverse goes from start to last_stop */ avi->seg_event = gst_event_new_new_segment_full (FALSE, @@ -4795,12 +4624,6 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event) gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); - /* some slack aiming for a keyframe */ - if (cur < GST_AVI_SEEK_PUSH_DISPLACE) - cur = 0; - else - cur -= GST_AVI_SEEK_PUSH_DISPLACE; - if (format != GST_FORMAT_TIME) { GstFormat fmt = GST_FORMAT_TIME; gboolean res = TRUE; @@ -4823,7 +4646,7 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event) gst_segment_set_seek (&seeksegment, rate, format, flags, cur_type, cur, stop_type, stop, &update); - keyframe = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); + keyframe = !!(flags & GST_SEEK_FLAG_KEY_UNIT); cur = seeksegment.last_stop; GST_DEBUG_OBJECT (avi, @@ -4994,9 +4817,10 @@ swap_line (guint8 * d1, guint8 * d2, guint8 * tmp, gint bytes) #define gst_avi_demux_is_uncompressed(fourcc) \ - (fourcc == GST_RIFF_DIB || \ - fourcc == GST_RIFF_rgb || \ - fourcc == GST_RIFF_RGB || fourcc == GST_RIFF_RAW) + (fourcc && \ + (fourcc == GST_RIFF_DIB || \ + fourcc == GST_RIFF_rgb || \ + fourcc == GST_RIFF_RGB || fourcc == GST_RIFF_RAW)) /* * Invert DIB buffers... Takes existing buffer and @@ -5032,7 +4856,7 @@ gst_avi_demux_invert (GstAviStream * stream, GstBuffer * buf) h = stream->strf.vids->height; w = stream->strf.vids->width; - stride = w * (bpp / 8); + stride = GST_ROUND_UP_4 (w * (bpp / 8)); buf = gst_buffer_make_writable (buf); if (GST_BUFFER_SIZE (buf) < (stride * h)) { @@ -5061,13 +4885,15 @@ gst_avi_demux_add_assoc (GstAviDemux * avi, GstAviStream * stream, GST_LOG_OBJECT (avi, "adding association %" GST_TIME_FORMAT "-> %" G_GUINT64_FORMAT, GST_TIME_ARGS (timestamp), offset); gst_index_add_association (avi->element_index, avi->index_id, - keyframe ? GST_ASSOCIATION_FLAG_KEY_UNIT : GST_ASSOCIATION_FLAG_NONE, - GST_FORMAT_TIME, timestamp, GST_FORMAT_BYTES, offset, NULL); - /* well, current_total determines TIME and entry DEFAULT (frame #) ... */ + keyframe ? GST_ASSOCIATION_FLAG_KEY_UNIT : + GST_ASSOCIATION_FLAG_DELTA_UNIT, GST_FORMAT_TIME, timestamp, + GST_FORMAT_BYTES, offset, NULL); + /* current_entry is DEFAULT (frame #) */ gst_index_add_association (avi->element_index, stream->index_id, - GST_ASSOCIATION_FLAG_NONE, - GST_FORMAT_TIME, stream->current_total, GST_FORMAT_BYTES, offset, - GST_FORMAT_DEFAULT, stream->current_entry, NULL); + keyframe ? GST_ASSOCIATION_FLAG_KEY_UNIT : + GST_ASSOCIATION_FLAG_DELTA_UNIT, GST_FORMAT_TIME, timestamp, + GST_FORMAT_BYTES, offset, GST_FORMAT_DEFAULT, stream->current_entry, + NULL); } } @@ -5112,183 +4938,6 @@ done: return ret; } -#ifdef AVIDEMUX_MODIFICATION -/*Modification: Added functions to update the stream while doing the trickplay*/ - -/* move @stream to the next position in its index */ -static GstFlowReturn -gst_avi_demux_update_backward (GstAviDemux * avi, GstAviStream * stream, - GstFlowReturn ret) -{ - int old_entry, new_entry; - - old_entry = stream->current_entry; - /* move forwards */ - new_entry = stream->next_kindex; - - /* see if we reached the end */ - if (new_entry < (int)stream->start_entry) { - /* we stepped all the way to the start, eos */ - GST_DEBUG_OBJECT (avi, "reverse reached start %u", stream->start_entry); - goto eos; - } - - if (new_entry != old_entry) { - stream->current_entry = new_entry; - stream->current_total = stream->index[new_entry].total; - - /* we moved DISCONT, full update */ - gst_avi_demux_get_buffer_info (avi, stream, new_entry, - &stream->current_timestamp, &stream->current_ts_end, - &stream->current_offset, &stream->current_offset_end); - /* and MARK discont for this stream */ - stream->last_flow = GST_FLOW_OK; - stream->discont = TRUE; - GST_DEBUG_OBJECT (avi, "Moved from %u to %u, ts %" GST_TIME_FORMAT - ", ts_end %" GST_TIME_FORMAT ", off %" G_GUINT64_FORMAT - ", off_end %" G_GUINT64_FORMAT, old_entry, new_entry, - GST_TIME_ARGS (stream->current_timestamp), - GST_TIME_ARGS (stream->current_ts_end), stream->current_offset, - stream->current_offset_end); - } - return ret; - - /* ERROR */ -eos: - { - GST_DEBUG_OBJECT (avi, "we are EOS"); - /* setting current_timestamp to -1 marks EOS */ - stream->current_timestamp = -1; - return GST_FLOW_UNEXPECTED; - } -} - -/* move @stream to the next position in its index */ -static GstFlowReturn -gst_avi_demux_update (GstAviDemux * avi, GstAviStream * stream, - GstFlowReturn ret) -{ - guint old_entry, new_entry; - - old_entry = stream->current_entry; - /* move forwards */ - new_entry = stream->next_kindex; - - /* see if we reached the end */ - if (new_entry > stream->stop_entry) { - if (avi->segment.rate < 0.0) { - if (stream->step_entry == stream->start_entry) { - /* we stepped all the way to the start, eos */ - GST_DEBUG_OBJECT (avi, "reverse reached start %u", stream->start_entry); - goto eos; - } - /* backwards, stop becomes step, find a new step */ - stream->stop_entry = stream->step_entry; - stream->step_entry = gst_avi_demux_index_prev (avi, stream, - stream->stop_entry, TRUE); - - GST_DEBUG_OBJECT (avi, - "reverse playback jump: start %u, step %u, stop %u", - stream->start_entry, stream->step_entry, stream->stop_entry); - - /* and start from the previous keyframe now */ - new_entry = stream->step_entry; - } else { - /* EOS */ - GST_DEBUG_OBJECT (avi, "forward reached stop %u", stream->stop_entry); - goto eos; - } - } - - if (new_entry != old_entry) { - stream->current_entry = new_entry; - stream->current_total = stream->index[new_entry].total; - - if (new_entry == old_entry + 1) { - GST_DEBUG_OBJECT (avi, "moved forwards from %u to %u", - old_entry, new_entry); - /* we simply moved one step forwards, reuse current info */ - stream->current_timestamp = stream->current_ts_end; - stream->current_offset = stream->current_offset_end; - gst_avi_demux_get_buffer_info (avi, stream, new_entry, - NULL, &stream->current_ts_end, NULL, &stream->current_offset_end); - } else { - /* we moved DISCONT, full update */ - gst_avi_demux_get_buffer_info (avi, stream, new_entry, - &stream->current_timestamp, &stream->current_ts_end, - &stream->current_offset, &stream->current_offset_end); - /* and MARK discont for this stream */ - stream->last_flow = GST_FLOW_OK; - stream->discont = TRUE; - GST_DEBUG_OBJECT (avi, "Moved from %u to %u, ts %" GST_TIME_FORMAT - ", ts_end %" GST_TIME_FORMAT ", off %" G_GUINT64_FORMAT - ", off_end %" G_GUINT64_FORMAT, old_entry, new_entry, - GST_TIME_ARGS (stream->current_timestamp), - GST_TIME_ARGS (stream->current_ts_end), stream->current_offset, - stream->current_offset_end); - } - } - return ret; - - /* ERROR */ -eos: - { - GST_DEBUG_OBJECT (avi, "we are EOS"); - /* setting current_timestamp to -1 marks EOS */ - stream->current_timestamp = -1; - return GST_FLOW_UNEXPECTED; - } -} - -/* move @stream to the next position in its index */ -static GstFlowReturn -gst_avi_demux_previous (GstAviDemux * avi, GstAviStream * stream, - GstFlowReturn ret) -{ - int old_entry, new_entry; - - old_entry = stream->current_entry; - /* move forwards */ - new_entry = old_entry - 1; - GST_INFO("now at:%d, start:%d", new_entry, stream->start_entry); - /* see if we reached the end */ - if (new_entry < (int)stream->start_entry) { - /* we stepped all the way to the start, eos */ - GST_DEBUG_OBJECT (avi, "reverse reached start %u", stream->start_entry); - goto eos; - } - GST_INFO("%d", new_entry); - if (new_entry != old_entry) { - stream->current_entry = new_entry; - stream->current_total = stream->index[new_entry].total; - - /* we moved DISCONT, full update */ - gst_avi_demux_get_buffer_info (avi, stream, new_entry, - &stream->current_timestamp, &stream->current_ts_end, - &stream->current_offset, &stream->current_offset_end); - /* and MARK discont for this stream */ - stream->last_flow = GST_FLOW_OK; - stream->discont = TRUE; - GST_DEBUG_OBJECT (avi, "Moved from %u to %u, ts %" GST_TIME_FORMAT - ", ts_end %" GST_TIME_FORMAT ", off %" G_GUINT64_FORMAT - ", off_end %" G_GUINT64_FORMAT, old_entry, new_entry, - GST_TIME_ARGS (stream->current_timestamp), - GST_TIME_ARGS (stream->current_ts_end), stream->current_offset, - stream->current_offset_end); - } - return ret; - - /* ERROR */ -eos: - { - GST_DEBUG_OBJECT (avi, "we are EOS"); - /* setting current_timestamp to -1 marks EOS */ - stream->current_timestamp = -1; - return GST_FLOW_UNEXPECTED; - } -} -#endif - /* move @stream to the next position in its index */ static GstFlowReturn gst_avi_demux_advance (GstAviDemux * avi, GstAviStream * stream, @@ -5303,6 +4952,11 @@ gst_avi_demux_advance (GstAviDemux * avi, GstAviStream * stream, /* see if we reached the end */ if (new_entry >= stream->stop_entry) { if (avi->segment.rate < 0.0) { + +#ifdef AVIDEMUX_MODIFICATION + GST_DEBUG_OBJECT (avi, "backward reached stop %u", stream->stop_entry); + goto eos; +#else if (stream->step_entry == stream->start_entry) { /* we stepped all the way to the start, eos */ GST_DEBUG_OBJECT (avi, "reverse reached start %u", stream->start_entry); @@ -5319,6 +4973,7 @@ gst_avi_demux_advance (GstAviDemux * avi, GstAviStream * stream, /* and start from the previous keyframe now */ new_entry = stream->step_entry; +#endif } else { /* EOS */ GST_DEBUG_OBJECT (avi, "forward reached stop %u", stream->stop_entry); @@ -5393,6 +5048,12 @@ gst_avi_demux_find_next (GstAviDemux * avi, gfloat rate) /* position of -1 is EOS */ if (position != -1) { +#ifdef AVIDEMUX_MODIFICATION + if (position < min_time) { + min_time = position; + stream_num = i; + } +#else if (rate > 0.0 && position < min_time) { min_time = position; stream_num = i; @@ -5400,6 +5061,7 @@ gst_avi_demux_find_next (GstAviDemux * avi, gfloat rate) max_time = position; stream_num = i; } +#endif } } return stream_num; @@ -5418,13 +5080,8 @@ gst_avi_demux_loop_data (GstAviDemux * avi) guint64 out_offset, out_offset_end; gboolean keyframe; GstAviIndexEntry *entry; -#ifdef AVIDEMUX_MODIFICATION -gdouble minusone = -1; -#endif + do { -#ifdef AVIDEMUX_MODIFICATION - timestamp=0; -#endif stream_num = gst_avi_demux_find_next (avi, avi->segment.rate); /* all are EOS */ @@ -5443,159 +5100,9 @@ gdouble minusone = -1; goto next; } -#ifdef AVIDEMUX_MODIFICATION -/*Modification: Added trickplay functionality to achieve upto 64x speed play*/ - - if(avi->segment.rate>1.0) - { - guint64 next_kindex_timestamp; - - GST_DEBUG_OBJECT (avi, "current index:%d, next key index:%d, total keyframes:%d", stream->current_entry, stream->next_kindex, stream->n_keyframes); - if((stream->n_keyframes == stream->idx_n && stream->strh->type == GST_RIFF_FCC_vids) || - (stream->strh->type == GST_RIFF_FCC_auds && avi->segment.rate>4.0)) - { - - GST_DEBUG_OBJECT (avi, "All keyframes case video forward bfore :%d", stream->current_entry); - - stream->next_kindex= stream->current_entry+avi->segment.rate; - - if(stream->next_kindex>stream->idx_n) - stream->next_kindex=stream->idx_n; - - gst_avi_demux_update (avi, stream, ret); - - /* Checking the EOS condition in Trickplay*/ - if(stream->current_timestamp == -1) - { - GST_WARNING_OBJECT(avi, "eos in Trickplay"); - goto eos; - } - - - GST_DEBUG_OBJECT (avi, "All key frames after :%d", stream->next_kindex); - - } - else if(stream->strh->type == GST_RIFF_FCC_vids) - { - if(!stream->next_kindex) - { - stream->next_kindex = stream->prev_kindex = stream->current_entry; - - while(1) - { - GST_DEBUG_OBJECT (avi, "finding next key index:current index:%d, next key index:%d, total:%d", stream->current_entry, stream->next_kindex, stream->idx_n); - - if((stream->next_kindex+1)>=stream->idx_n) - { - GST_DEBUG_OBJECT(avi,"eos"); - break; - } - stream->next_kindex = gst_avi_demux_index_next(avi, stream, stream->next_kindex+1, TRUE); - if(stream->next_kindex<0) - { - GST_DEBUG_OBJECT (avi, "finding next key index:current index:%d, next key index:%d, total:%d", stream->current_entry, stream->next_kindex, stream->idx_n); - - stream->prev_kindex=stream->next_kindex=0; - break; - } - - stream->total_samples_bet_2_keyframes = stream->next_kindex-stream->prev_kindex; - next_kindex_timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->next_kindex); - stream->start_timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->prev_kindex); - stream->avg_duration_bet_2_keyframes=(next_kindex_timestamp-stream->start_timestamp)/stream->total_samples_bet_2_keyframes; - - stream->samples_to_show_bet_kframes = stream->total_samples_bet_2_keyframes/avi->segment.rate; - GST_DEBUG_OBJECT (avi,"avg duration:%"GST_TIME_FORMAT"next:%"GST_TIME_FORMAT"prev:%"GST_TIME_FORMAT", %d, %d", - GST_TIME_ARGS(stream->avg_duration_bet_2_keyframes), - GST_TIME_ARGS(next_kindex_timestamp), - GST_TIME_ARGS(stream->start_timestamp), - stream->total_samples_bet_2_keyframes, stream->samples_to_show_bet_kframes); - if(stream->samples_to_show_bet_kframes!=0) - break; - } - - stream->discont = TRUE; - - } - else - { - stream->samples_to_show_bet_kframes--; - - if(!stream->samples_to_show_bet_kframes) - { - stream->next_kindex--; - gst_avi_demux_update (avi, stream, ret); - stream->next_kindex=0; - stream->samples_to_show_bet_kframes=0; - stream->discont = TRUE; - ret = GST_FLOW_OK; - processed = TRUE; - goto next; - } - - timestamp = stream->start_timestamp + (stream->current_entry-stream->prev_kindex)*avi->segment.rate*stream->avg_duration_bet_2_keyframes; - duration = stream->avg_duration_bet_2_keyframes*avi->segment.rate; - GST_DEBUG_OBJECT (avi,"current:%"GST_TIME_FORMAT"prev:%"GST_TIME_FORMAT"cal:%"GST_TIME_FORMAT", %d", - GST_TIME_ARGS((stream->current_timestamp + stream->current_offset)), - GST_TIME_ARGS(stream->start_timestamp), - GST_TIME_ARGS(timestamp), - stream->samples_to_show_bet_kframes); - - } - } - } - else if(avi->segment.rate<0) - { - /* ***********Kishore*********** - only I frames Displayed - */ - if(stream->strh->type == GST_RIFF_FCC_vids) - { - guint64 time_position; - guint64 duration; - int index; - //sample = &stream->samples[stream->current_entry]; - time_position=stream->current_timestamp;//avi_stream_convert_frames_to_time_unchecked (stream, stream->current_entry); - duration= stream->current_ts_end - time_position; - GST_DEBUG_OBJECT (avi, "video time backward:%"GST_TIME_FORMAT"%d", - GST_TIME_ARGS(time_position), stream->current_entry); - if((time_position - (minusone *avi->segment.rate)*duration)>0) - time_position -= (minusone *avi->segment.rate)*duration; - else - time_position=0; - - GST_DEBUG_OBJECT (avi, "video time backward after:%"GST_TIME_FORMAT, - GST_TIME_ARGS(time_position)); - index = gst_avi_demux_index_for_time(avi,stream,time_position); - - stream->next_kindex = gst_avi_demux_index_prev(avi, stream, index, TRUE); - - } - else - { - GST_DEBUG_OBJECT (avi, "audio time backward bfore :%d", stream->current_entry); - - stream->next_kindex= stream->current_entry-(minusone *avi->segment.rate); - - if(stream->next_kindex<0) - stream->next_kindex=0; - - GST_DEBUG_OBJECT (avi, "audio time backward after :%d", stream->next_kindex); - } - - gst_avi_demux_update_backward(avi, stream, ret); - - stream->discont = TRUE; - } -#endif /* get the timing info for the entry */ -#ifdef AVIDEMUX_MODIFICATION - if(!timestamp) -#endif - { - timestamp = stream->current_timestamp; - duration = stream->current_ts_end - timestamp; - } + timestamp = stream->current_timestamp; + duration = stream->current_ts_end - timestamp; out_offset = stream->current_offset; out_offset_end = stream->current_offset_end; @@ -5605,6 +5112,16 @@ gdouble minusone = -1; size = entry->size; keyframe = ENTRY_IS_KEYFRAME (entry); + +#ifdef AVIDEMUX_MODIFICATION + /* Forward trickplay */ + if(avi->segment.rate > 1.0 && stream->strh->type == GST_RIFF_FCC_vids) { + gst_avidemux_forward_trickplay (avi, stream, ×tamp); + } else if(avi->segment.rate < 0.0 && stream->strh->type == GST_RIFF_FCC_vids) { + gst_avidemux_backward_trickplay (avi, stream, ×tamp); + } +#endif + /* skip empty entries */ if (size == 0) { GST_DEBUG_OBJECT (avi, "Skipping entry %u (%" G_GUINT64_FORMAT ", %p)", @@ -5662,12 +5179,19 @@ gdouble minusone = -1; /* update current position in the segment */ gst_segment_set_last_stop (&avi->segment, GST_FORMAT_TIME, timestamp); - +#ifdef AVIDEMUX_MODIFICATION + GST_DEBUG_OBJECT (avi, " %s : Pushing buffer of size %u, ts %" + GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", off %" G_GUINT64_FORMAT + ", off_end %" G_GUINT64_FORMAT, + stream_num ? "Audio" : "Video", GST_BUFFER_SIZE (buf), GST_TIME_ARGS (timestamp), + GST_TIME_ARGS (duration), out_offset, out_offset_end); +#else GST_DEBUG_OBJECT (avi, "Pushing buffer of size %u, ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", off %" G_GUINT64_FORMAT ", off_end %" G_GUINT64_FORMAT, GST_BUFFER_SIZE (buf), GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration), out_offset, out_offset_end); +#endif #ifdef DIVX_DRM @@ -5759,23 +5283,8 @@ gdouble minusone = -1; } next: /* move to next item */ -#ifdef AVIDEMUX_MODIFICATION - if (avi->segment.rate > 0) { - ret = gst_avi_demux_advance (avi, stream, ret); - } - else { - ret = gst_avi_demux_previous (avi, stream, ret); - } - - /* Checking the EOS condition in Trickplay : naveen*/ - if((stream->current_timestamp == -1) && (avi->segment.rate != 1.0)) - { - GST_WARNING_OBJECT(avi, "eos in Trickplay"); - goto eos; - } -#else ret = gst_avi_demux_advance (avi, stream, ret); -#endif + /* combine flows */ ret = gst_avi_demux_combine_flows (avi, stream, ret); } while (!processed); @@ -6121,7 +5630,7 @@ gst_avi_demux_loop (GstPad * pad) #ifdef DIVX_DRM /* Send tag to decoder, so decoder can knows that this is divx drm file */ if (avi->drmContext) - gst_avi_demux_send_divx_tag (avi); + gst_avi_demux_send_divx_tag (avi); #endif avi->state = GST_AVI_DEMUX_MOVI; @@ -6141,6 +5650,13 @@ gst_avi_demux_loop (GstPad * pad) /* process each index entry in turn */ res = gst_avi_demux_loop_data (avi); +#ifdef AVIDEMUX_MODIFICATION + if (avi->segment.rate < 0.0 && res == GST_FLOW_UNEXPECTED) { + GST_DEBUG_OBJECT(avi, "Seeking to previous keyframe"); + res = gst_avidemux_seek_to_previous_keyframe (avi); + } +#endif + /* pause when error */ if (G_UNLIKELY (res != GST_FLOW_OK)) { GST_INFO ("stream_movi flow: %s", gst_flow_get_name (res)); @@ -6174,10 +5690,22 @@ pause:{ GST_INFO_OBJECT (avi, "sending segment_done"); +#ifdef AVIDEMUX_MODIFICATION + if (avi->segment.rate >= 0) { + /* Sending segment done at the end of segment */ + gst_element_post_message(GST_ELEMENT_CAST (avi), + gst_message_new_segment_done (GST_OBJECT_CAST (avi), GST_FORMAT_TIME, stop)); + } else { + /* Sending segment done at the start of segment */ + gst_element_post_message(GST_ELEMENT_CAST (avi), + gst_message_new_segment_done (GST_OBJECT_CAST (avi), GST_FORMAT_TIME, avi->segment.start)); + } +#else gst_element_post_message (GST_ELEMENT_CAST (avi), gst_message_new_segment_done (GST_OBJECT_CAST (avi), GST_FORMAT_TIME, stop)); +#endif } else { push_eos = TRUE; } @@ -6439,3 +5967,302 @@ gst_avi_demux_change_state (GstElement * element, GstStateChange transition) done: return ret; } +#ifdef AVIDEMUX_MODIFICATION +/*Modification: Added function to find out the frame_type for index-table generation */ + +static int +gst_avi_demux_find_frame_type (GstAviStream *stream, GstBuffer *buf, int *frame_type) +{ + unsigned char *buff = NULL; + unsigned int buff_len = 0; + + if (!stream || !buf || !frame_type) { + GST_ERROR ("Invalid arguments.."); + return -1; + } + + buff = GST_BUFFER_DATA (buf); + buff_len = GST_BUFFER_SIZE (buf); + + if ((NULL == buff) || buff_len < 5) { + GST_ERROR ("Invalid buffer..."); + return -1; + } + + switch (stream->strh->fcc_handler) { + /* mpeg stream parsing case */ + case GST_MAKE_FOURCC ('X', 'V', 'I', 'D'): + case GST_MAKE_FOURCC ('x', 'v', 'i', 'd'): + case GST_MAKE_FOURCC ('D', 'X', '5', '0'): + case GST_MAKE_FOURCC ('d', 'i', 'v', 'x'): + case GST_MAKE_FOURCC ('D', 'I', 'V', 'X'): + case GST_MAKE_FOURCC ('B', 'L', 'Z', '0'): + case GST_MAKE_FOURCC ('F', 'M', 'P', '4'): + case GST_MAKE_FOURCC ('U', 'M', 'P', '4'): + case GST_MAKE_FOURCC ('F', 'F', 'D', 'S'): + case GST_MAKE_FOURCC ('M', 'P', 'E', 'G'): + case GST_MAKE_FOURCC ('M', 'P', 'G', 'I'): + case GST_MAKE_FOURCC ('m', 'p', 'g', '1'): + case GST_MAKE_FOURCC ('M', 'P', 'G', '1'): + case GST_MAKE_FOURCC ('P', 'I', 'M', '1'): + case GST_MAKE_FOURCC ('M', 'P', 'G', '2'): + case GST_MAKE_FOURCC ('m', 'p', 'g', '2'): + case GST_MAKE_FOURCC ('P', 'I', 'M', '2'): + case GST_MAKE_FOURCC ('D', 'V', 'R', ' '): { + int idx = 0; + gboolean found_vop_code = FALSE; + + for (idx=0; idx< (buff_len-4); idx++) { + /* Find VOP start frame which should be in every frame */ + if (buff[idx] == 0x00 && buff[idx+1] == 0x00 && buff[idx+2] == 0x01 && buff[idx+3] == 0xB6) { + GST_DEBUG ("Found VOP start code..."); + found_vop_code = TRUE; + break; + } + } + + if (!found_vop_code) { + GST_ERROR ("Invalid input stream : There isn't any VOP header"); + return -1; + } + + if ((buff[idx] == 0x00) && (buff[idx+1] == 0x00) && (buff[idx+2] == 0x01)) { + if(buff[idx+3] == 0xB6) { + switch (buff[idx+4] & 0xC0) { + case 0x00: + GST_DEBUG ("Found Key-Frame"); + *frame_type = GST_AVI_KEYFRAME; + break; + default: + GST_DEBUG ("Found Non-Key frame.. value = %x", buff[idx+4]); + *frame_type = GST_AVI_NON_KEYFRAME; + break; + } + } + } + } + break; + case GST_MAKE_FOURCC ('H', '2', '6', '3'): + case GST_MAKE_FOURCC ('h', '2', '6', '3'): + case GST_MAKE_FOURCC ('i', '2', '6', '3'): + case GST_MAKE_FOURCC ('U', '2', '6', '3'): + case GST_MAKE_FOURCC ('v', 'i', 'v', '1'): + case GST_MAKE_FOURCC ('T', '2', '6', '3'): { + /* FIXME: H263 Frame Parsing is yet to be done.*/ + *frame_type = GST_AVI_KEYFRAME; + } + break; + case GST_MAKE_FOURCC ('X', '2', '6', '4'): + case GST_MAKE_FOURCC ('x', '2', '6', '4'): + case GST_MAKE_FOURCC ('H', '2', '6', '4'): + case GST_MAKE_FOURCC ('h', '2', '6', '4'): + case GST_MAKE_FOURCC ('a', 'v', 'c', '1'): + case GST_MAKE_FOURCC ('A', 'V', 'C', '1'): { + gint idx = 0; + gint nalu_type = H264_NUT_UNKNOWN; + + /* H264 Frame Parsing */ + do { + if (buff[idx+0] == 0x00 && + buff[idx+1] == 0x00 && + ((buff [idx+2] == 0x01) || ((buff [idx+2] == 0x00) && (buff [idx+3] == 0x01)))) { + + if (buff [idx+2] == 0x01) { + nalu_type = buff[idx +3] & 0x1f; + } else if ((buff [idx+2] == 0x00) && (buff [idx+3] == 0x01)) { + nalu_type = buff[idx +4] & 0x1f; + idx++; + } + + if ((nalu_type == H264_NUT_SPS) || + (nalu_type == H264_NUT_PPS) || + (nalu_type == H264_NUT_SEI) || + (nalu_type == H264_NUT_AUD)) { + GST_LOG ("Skipping NALU SPS/PPS/SEI/AUD..."); + } else if (nalu_type == H264_NUT_IDR) { + GST_DEBUG ("Found KEY frame...\n"); + *frame_type = GST_AVI_KEYFRAME; + break; + } else if ((nalu_type == H264_NUT_SLICE) || + (nalu_type == H264_NUT_DPA) || + (nalu_type == H264_NUT_DPB) || + (nalu_type == H264_NUT_DPC) || + (nalu_type == H264_NUT_EOSEQ) || + (nalu_type == H264_NUT_EOSTREAM)) { + *frame_type = GST_AVI_NON_KEYFRAME; + break; + } else { + GST_DEBUG ("Unknown frame type, val = %d...", *frame_type); + *frame_type = GST_AVI_NON_KEYFRAME; + break; + } + } + idx++; + }while (idx < (buff_len - 4)); + } + break; + default: + //default make all frames as key frames + *frame_type = GST_AVI_KEYFRAME; + break; + } + + return 0; + +} + +static void gst_avidemux_forward_trickplay (GstAviDemux * avi, GstAviStream * stream, guint64 *timestamp) +{ + guint32 nsamples = 0; /* Number of samples between two consecutive keyframes */ + guint64 next_kindex_timestamp; + guint64 prev_kindex_timestamp; + + if (*timestamp < stream->trickplay_info->start_pos) { + GST_LOG_OBJECT (avi, "Received shown sample... not applying trickplay algo"); + return; + } + + if (stream->trickplay_info->next_kidx == 0) { + stream->trickplay_info->next_kidx = stream->trickplay_info->prev_kidx = stream->current_entry; + + /* while loop to handle multiple consecutive key frames */ + while(1) { + if((stream->trickplay_info->next_kidx +1)>=stream->idx_n) { + GST_DEBUG_OBJECT(avi,"eos"); + break; + } + + /* find previous key frame */ + stream->trickplay_info->next_kidx = gst_avi_demux_index_next(avi, stream, stream->trickplay_info->next_kidx +1, TRUE); + + /* based no.of sample between key frame and rate, drop frames */ + GST_DEBUG_OBJECT (avi, "current index :%d, next key index : %d", stream->current_entry, stream->trickplay_info->next_kidx); + + /* find no.of samples between present and previous key frames */ + nsamples = stream->trickplay_info->next_kidx - stream->trickplay_info->prev_kidx; + + /* find corresponding timestamps of present and previous keyframes */ + next_kindex_timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->trickplay_info->next_kidx); + prev_kindex_timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->trickplay_info->prev_kidx); + + /* find average duration between key frames */ + stream->trickplay_info->kidxs_dur_diff = (next_kindex_timestamp - prev_kindex_timestamp)/nsamples; + + stream->trickplay_info->show_samples = nsamples / avi->segment.rate; + + GST_DEBUG_OBJECT (avi, " duration between keyframes:%"GST_TIME_FORMAT, GST_TIME_ARGS(stream->trickplay_info->kidxs_dur_diff)); + + if(stream->trickplay_info->show_samples) { + GST_DEBUG_OBJECT (avi, "samples to display between two key frames = %d", + stream->trickplay_info->show_samples); + /* found no. of samples to show between key frames */ + *timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->current_entry); + break; + } else if ((!stream->trickplay_info->show_samples) && + (stream->trickplay_info->next_kidx >= (stream->idx_n-1))){ + /* shown samples required to show between 2 key frames */ + stream->current_entry = stream->trickplay_info->next_kidx -1; /* next_kidx -1 is because advance_sample will increment */ + stream->trickplay_info->next_kidx = 0; + break; + } + } + stream->discont = TRUE; + } else { + stream->trickplay_info->show_samples--; + prev_kindex_timestamp = avi_stream_convert_frames_to_time_unchecked (stream, stream->trickplay_info->prev_kidx); + *timestamp = prev_kindex_timestamp + + (stream->current_entry - stream->trickplay_info->prev_kidx) * avi->segment.rate * stream->trickplay_info->kidxs_dur_diff; + + if (stream->trickplay_info->show_samples == 0) { + /* shown samples required to show between 2 key frames */ + GST_DEBUG_OBJECT (avi, "reached end of keyframe interval....Jumping to next key index = %d", stream->trickplay_info->next_kidx); + stream->current_entry= stream->trickplay_info->next_kidx -1; /* next_kidx -1 is because advance_sample will increment */ + stream->trickplay_info->next_kidx = 0; + stream->discont = TRUE; + } + } +} + +static void +gst_avidemux_backward_trickplay (GstAviDemux * avi, GstAviStream * stream, guint64 *timestamp) +{ + int index; + + /* backward trick play */ + GST_DEBUG_OBJECT (avi, "backward trickplay start"); + index = gst_avi_demux_index_for_time(avi,stream,avi->seek_kf_offset); + gst_avi_demux_move_stream (avi, stream, &avi->segment, index); +} + +static GstFlowReturn +gst_avidemux_seek_to_previous_keyframe (GstAviDemux *avi) +{ + guint index; + GstAviStream *stream; + GstClockTime seek_time; + int i; + guint64 time_position; + guint64 duration; + gdouble minusone = -1; + + + /* FIXME, this code assumes the main stream with keyframes is stream 0, + * which is mostly correct... */ + stream = &avi->stream[avi->main_stream]; + + if(stream->current_entry <= stream->start_entry) { + /* Video stream reached start of the clip. So stop seeking to previous and send newsegment + from _loop function, so that normal playback resumes*/ + goto eos; + } + + index = stream->current_entry; + time_position = avi_stream_convert_frames_to_time_unchecked (stream, index); + duration= stream->current_ts_end - time_position; + + if((time_position - (minusone *avi->segment.rate)*duration)>0) + time_position -= (minusone *avi->segment.rate)*duration; + else + time_position=0; + + avi->seek_kf_offset = time_position; + + GST_DEBUG_OBJECT (avi, " seek_kf_offset after:%"GST_TIME_FORMAT, GST_TIME_ARGS(avi->seek_kf_offset)); + + index = gst_avi_demux_index_for_time(avi,stream,time_position); + + index = gst_avi_demux_index_prev (avi, stream, index, TRUE); + + gst_avi_demux_move_stream (avi, stream, &avi->segment, index); + + seek_time = avi_stream_convert_frames_to_time_unchecked (stream, index); + GST_DEBUG_OBJECT (avi, " seek_time is :%"GST_TIME_FORMAT, GST_TIME_ARGS(seek_time)); + + + stream->last_flow = GST_FLOW_OK; + stream->discont = TRUE; + + /* Aligning other stream */ + for (i = 0; i < avi->num_streams; i++) { + GstAviStream *ostream; + + ostream = &avi->stream[i]; + if ((ostream == stream) || (ostream->index == NULL)) + continue; + + /* get the entry index for the requested position */ + index = gst_avi_demux_index_for_time (avi, ostream, seek_time); + + gst_avi_demux_move_stream (avi, ostream, &avi->segment, index); + + ostream->last_flow = GST_FLOW_OK; + ostream->discont = TRUE; + } + return GST_FLOW_OK; +eos: + return GST_FLOW_UNEXPECTED; + +} + +#endif + diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h index 1b448e2..174d8a8 100644 --- a/gst/avi/gstavidemux.h +++ b/gst/avi/gstavidemux.h @@ -28,11 +28,9 @@ #include "gst/riff/riff-read.h" #include +#ifdef DIVX_DRM /* need to check using same define */ #include - - - - +#endif G_BEGIN_DECLS @@ -64,6 +62,19 @@ typedef struct { guint64 total; /* total bytes before */ } GstAviIndexEntry; +#ifdef AVIDEMUX_MODIFICATION +typedef struct _TrickPlayInfo TrickPlayInfo; + +struct _TrickPlayInfo { + + gint32 next_kidx; // next Key index + gint32 prev_kidx; // Previous key index + guint64 kidxs_dur_diff; // duration between two consecutive key frames + gint32 show_samples; // samples to show between two consecutive key frames + guint64 start_pos; /* trickplay start position */ +}; +#endif + typedef struct { /* index of this streamcontext */ guint num; @@ -89,14 +100,7 @@ typedef struct { guint stop_entry; #ifdef AVIDEMUX_MODIFICATION - /* for 0vids.compression = GST_MAKE_FOURCC ('M', 'P', 'E', 'G'); break; } - } else if (!strcmp (mimetype, "video/x-dirac")) { - avipad->vids.compression = GST_MAKE_FOURCC ('d', 'r', 'a', 'c'); } else if (!strcmp (mimetype, "video/x-wmv")) { gint wmvversion; diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c index 10c4faf..ad1cd90 100644 --- a/gst/avi/gstavisubtitle.c +++ b/gst/avi/gstavisubtitle.c @@ -309,10 +309,9 @@ gst_avi_subtitle_base_init (gpointer klass) GST_DEBUG_CATEGORY_INIT (avisubtitle_debug, "avisubtitle", 0, "parse avi subtitle stream"); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "Avi subtitle parser", "Codec/Parser/Subtitle", diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in index 12f0f3d..80319bf 100644 --- a/gst/cutter/Makefile.in +++ b/gst/cutter/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstcutter_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstcutter_la_OBJECTS = libgstcutter_la-gstcutter.lo libgstcutter_la_OBJECTS = $(am_libgstcutter_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstcutter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstcutter_la_SOURCES) DIST_SOURCES = $(libgstcutter_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -549,7 +549,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstcutter.la: $(libgstcutter_la_OBJECTS) $(libgstcutter_la_DEPENDENCIES) +libgstcutter.la: $(libgstcutter_la_OBJECTS) $(libgstcutter_la_DEPENDENCIES) $(EXTRA_libgstcutter_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstcutter_la_LINK) -rpath $(plugindir) $(libgstcutter_la_OBJECTS) $(libgstcutter_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -563,34 +563,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstcutter_la-gstcutter.lo: gstcutter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -MT libgstcutter_la-gstcutter.lo -MD -MP -MF $(DEPDIR)/libgstcutter_la-gstcutter.Tpo -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcutter_la-gstcutter.Tpo $(DEPDIR)/libgstcutter_la-gstcutter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcutter.c' object='libgstcutter_la-gstcutter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcutter.c' object='libgstcutter_la-gstcutter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcutter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcutter_la_CFLAGS) $(CFLAGS) -c -o libgstcutter_la-gstcutter.lo `test -f 'gstcutter.c' || echo '$(srcdir)/'`gstcutter.c mostlyclean-libtool: -rm -f *.lo @@ -697,10 +693,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c index 81cc762..a8d95d5 100644 --- a/gst/cutter/gstcutter.c +++ b/gst/cutter/gstcutter.c @@ -114,10 +114,10 @@ gst_cutter_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cutter_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cutter_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &cutter_src_factory); + gst_element_class_add_static_pad_template (element_class, + &cutter_sink_factory); gst_element_class_set_details_simple (element_class, "Audio cutter", "Filter/Editor/Audio", "Audio Cutter to split audio into non-silent bits", @@ -191,9 +191,6 @@ static GstMessage * gst_cutter_message_new (GstCutter * c, gboolean above, GstClockTime timestamp) { GstStructure *s; - GValue v = { 0, }; - - g_value_init (&v, GST_TYPE_LIST); s = gst_structure_new ("cutter", "above", G_TYPE_BOOLEAN, above, diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in index 3203e3f..16cc203 100644 --- a/gst/debugutils/Makefile.in +++ b/gst/debugutils/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +121,8 @@ am_libgstdebug_la_OBJECTS = libgstdebug_la-gstdebug.lo \ libgstdebug_la-progressreport.lo libgstdebug_la-tests.lo \ libgstdebug_la-cpureport.lo libgstdebug_la-testplugin.lo libgstdebug_la_OBJECTS = $(am_libgstdebug_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdebug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -152,21 +157,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdebug_la_SOURCES) $(libgstefence_la_SOURCES) \ $(libgstnavigationtest_la_SOURCES) @@ -251,7 +256,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -326,7 +334,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -350,6 +357,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -384,18 +392,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -448,6 +448,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -482,7 +483,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -615,11 +615,11 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdebug.la: $(libgstdebug_la_OBJECTS) $(libgstdebug_la_DEPENDENCIES) +libgstdebug.la: $(libgstdebug_la_OBJECTS) $(libgstdebug_la_DEPENDENCIES) $(EXTRA_libgstdebug_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdebug_la_LINK) -rpath $(plugindir) $(libgstdebug_la_OBJECTS) $(libgstdebug_la_LIBADD) $(LIBS) -libgstefence.la: $(libgstefence_la_OBJECTS) $(libgstefence_la_DEPENDENCIES) +libgstefence.la: $(libgstefence_la_OBJECTS) $(libgstefence_la_DEPENDENCIES) $(EXTRA_libgstefence_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstefence_la_LINK) $(am_libgstefence_la_rpath) $(libgstefence_la_OBJECTS) $(libgstefence_la_LIBADD) $(LIBS) -libgstnavigationtest.la: $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_DEPENDENCIES) +libgstnavigationtest.la: $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_DEPENDENCIES) $(EXTRA_libgstnavigationtest_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstnavigationtest_la_LINK) -rpath $(plugindir) $(libgstnavigationtest_la_OBJECTS) $(libgstnavigationtest_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -646,138 +646,121 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdebug_la-gstdebug.lo: gstdebug.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstdebug.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstdebug.Tpo -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstdebug.Tpo $(DEPDIR)/libgstdebug_la-gstdebug.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdebug.c' object='libgstdebug_la-gstdebug.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdebug.c' object='libgstdebug_la-gstdebug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstdebug.lo `test -f 'gstdebug.c' || echo '$(srcdir)/'`gstdebug.c libgstdebug_la-breakmydata.lo: breakmydata.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-breakmydata.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-breakmydata.Tpo -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-breakmydata.Tpo $(DEPDIR)/libgstdebug_la-breakmydata.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='breakmydata.c' object='libgstdebug_la-breakmydata.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='breakmydata.c' object='libgstdebug_la-breakmydata.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-breakmydata.lo `test -f 'breakmydata.c' || echo '$(srcdir)/'`breakmydata.c libgstdebug_la-gstcapsdebug.lo: gstcapsdebug.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstcapsdebug.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstcapsdebug.Tpo -c -o libgstdebug_la-gstcapsdebug.lo `test -f 'gstcapsdebug.c' || echo '$(srcdir)/'`gstcapsdebug.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstcapsdebug.Tpo $(DEPDIR)/libgstdebug_la-gstcapsdebug.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcapsdebug.c' object='libgstdebug_la-gstcapsdebug.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcapsdebug.c' object='libgstdebug_la-gstcapsdebug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapsdebug.lo `test -f 'gstcapsdebug.c' || echo '$(srcdir)/'`gstcapsdebug.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapsdebug.lo `test -f 'gstcapsdebug.c' || echo '$(srcdir)/'`gstcapsdebug.c libgstdebug_la-gstcapssetter.lo: gstcapssetter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstcapssetter.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstcapssetter.Tpo -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstcapssetter.Tpo $(DEPDIR)/libgstdebug_la-gstcapssetter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcapssetter.c' object='libgstdebug_la-gstcapssetter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcapssetter.c' object='libgstdebug_la-gstcapssetter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstcapssetter.lo `test -f 'gstcapssetter.c' || echo '$(srcdir)/'`gstcapssetter.c libgstdebug_la-gstnavseek.lo: gstnavseek.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstnavseek.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstnavseek.Tpo -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstnavseek.Tpo $(DEPDIR)/libgstdebug_la-gstnavseek.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstnavseek.c' object='libgstdebug_la-gstnavseek.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstnavseek.c' object='libgstdebug_la-gstnavseek.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstnavseek.lo `test -f 'gstnavseek.c' || echo '$(srcdir)/'`gstnavseek.c libgstdebug_la-gstpushfilesrc.lo: gstpushfilesrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gstpushfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Tpo -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Tpo $(DEPDIR)/libgstdebug_la-gstpushfilesrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpushfilesrc.c' object='libgstdebug_la-gstpushfilesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpushfilesrc.c' object='libgstdebug_la-gstpushfilesrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gstpushfilesrc.lo `test -f 'gstpushfilesrc.c' || echo '$(srcdir)/'`gstpushfilesrc.c libgstdebug_la-gsttaginject.lo: gsttaginject.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-gsttaginject.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-gsttaginject.Tpo -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-gsttaginject.Tpo $(DEPDIR)/libgstdebug_la-gsttaginject.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttaginject.c' object='libgstdebug_la-gsttaginject.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttaginject.c' object='libgstdebug_la-gsttaginject.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-gsttaginject.lo `test -f 'gsttaginject.c' || echo '$(srcdir)/'`gsttaginject.c libgstdebug_la-rndbuffersize.lo: rndbuffersize.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-rndbuffersize.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-rndbuffersize.Tpo -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-rndbuffersize.Tpo $(DEPDIR)/libgstdebug_la-rndbuffersize.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rndbuffersize.c' object='libgstdebug_la-rndbuffersize.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rndbuffersize.c' object='libgstdebug_la-rndbuffersize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-rndbuffersize.lo `test -f 'rndbuffersize.c' || echo '$(srcdir)/'`rndbuffersize.c libgstdebug_la-progressreport.lo: progressreport.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-progressreport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-progressreport.Tpo -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-progressreport.Tpo $(DEPDIR)/libgstdebug_la-progressreport.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='progressreport.c' object='libgstdebug_la-progressreport.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='progressreport.c' object='libgstdebug_la-progressreport.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-progressreport.lo `test -f 'progressreport.c' || echo '$(srcdir)/'`progressreport.c libgstdebug_la-tests.lo: tests.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-tests.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-tests.Tpo -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-tests.Tpo $(DEPDIR)/libgstdebug_la-tests.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tests.c' object='libgstdebug_la-tests.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tests.c' object='libgstdebug_la-tests.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-tests.lo `test -f 'tests.c' || echo '$(srcdir)/'`tests.c libgstdebug_la-cpureport.lo: cpureport.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-cpureport.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-cpureport.Tpo -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-cpureport.Tpo $(DEPDIR)/libgstdebug_la-cpureport.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cpureport.c' object='libgstdebug_la-cpureport.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cpureport.c' object='libgstdebug_la-cpureport.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-cpureport.lo `test -f 'cpureport.c' || echo '$(srcdir)/'`cpureport.c libgstdebug_la-testplugin.lo: testplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -MT libgstdebug_la-testplugin.lo -MD -MP -MF $(DEPDIR)/libgstdebug_la-testplugin.Tpo -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdebug_la-testplugin.Tpo $(DEPDIR)/libgstdebug_la-testplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testplugin.c' object='libgstdebug_la-testplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testplugin.c' object='libgstdebug_la-testplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdebug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdebug_la_CFLAGS) $(CFLAGS) -c -o libgstdebug_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c libgstefence_la-efence.lo: efence.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstefence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstefence_la_CFLAGS) $(CFLAGS) -MT libgstefence_la-efence.lo -MD -MP -MF $(DEPDIR)/libgstefence_la-efence.Tpo -c -o libgstefence_la-efence.lo `test -f 'efence.c' || echo '$(srcdir)/'`efence.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstefence_la-efence.Tpo $(DEPDIR)/libgstefence_la-efence.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='efence.c' object='libgstefence_la-efence.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='efence.c' object='libgstefence_la-efence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstefence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstefence_la_CFLAGS) $(CFLAGS) -c -o libgstefence_la-efence.lo `test -f 'efence.c' || echo '$(srcdir)/'`efence.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstefence_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstefence_la_CFLAGS) $(CFLAGS) -c -o libgstefence_la-efence.lo `test -f 'efence.c' || echo '$(srcdir)/'`efence.c libgstnavigationtest_la-gstnavigationtest.lo: gstnavigationtest.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -MT libgstnavigationtest_la-gstnavigationtest.lo -MD -MP -MF $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Tpo -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Tpo $(DEPDIR)/libgstnavigationtest_la-gstnavigationtest.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstnavigationtest.c' object='libgstnavigationtest_la-gstnavigationtest.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstnavigationtest.c' object='libgstnavigationtest_la-gstnavigationtest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnavigationtest_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnavigationtest_la_CFLAGS) $(CFLAGS) -c -o libgstnavigationtest_la-gstnavigationtest.lo `test -f 'gstnavigationtest.c' || echo '$(srcdir)/'`gstnavigationtest.c mostlyclean-libtool: -rm -f *.lo @@ -884,10 +867,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/debugutils/breakmydata.c b/gst/debugutils/breakmydata.c index 5cd1623..d04256a 100644 --- a/gst/debugutils/breakmydata.c +++ b/gst/debugutils/breakmydata.c @@ -110,10 +110,10 @@ gst_break_my_data_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&bmd_sink_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&bmd_src_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &bmd_sink_template); + gst_element_class_add_static_pad_template (gstelement_class, + &bmd_src_template); gst_element_class_set_details_simple (gstelement_class, "Break my data", "Testing", @@ -162,7 +162,6 @@ static void gst_break_my_data_init (GstBreakMyData * bmd, GstBreakMyDataClass * g_class) { gst_base_transform_set_in_place (GST_BASE_TRANSFORM (bmd), TRUE); - gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (bmd), TRUE); } static void diff --git a/gst/debugutils/cpureport.c b/gst/debugutils/cpureport.c index a528769..b2b6808 100644 --- a/gst/debugutils/cpureport.c +++ b/gst/debugutils/cpureport.c @@ -58,10 +58,10 @@ gst_cpu_report_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cpu_report_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cpu_report_src_template)); + gst_element_class_add_static_pad_template (element_class, + &cpu_report_sink_template); + gst_element_class_add_static_pad_template (element_class, + &cpu_report_src_template); gst_element_class_set_details_simple (element_class, "CPU report", "Testing", diff --git a/gst/debugutils/efence.c b/gst/debugutils/efence.c index fa64326..a26b31f 100644 --- a/gst/debugutils/efence.c +++ b/gst/debugutils/efence.c @@ -134,10 +134,10 @@ gst_efence_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_efence_sink_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_efence_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_efence_sink_factory); + gst_element_class_add_static_pad_template (element_class, + &gst_efence_src_factory); gst_element_class_set_details_simple (element_class, "Electric Fence", "Testing", "This element converts a stream of normal GStreamer buffers into a " diff --git a/gst/debugutils/gstcapsdebug.c b/gst/debugutils/gstcapsdebug.c index dcb0996..6bdc109 100644 --- a/gst/debugutils/gstcapsdebug.c +++ b/gst/debugutils/gstcapsdebug.c @@ -73,10 +73,10 @@ gst_caps_debug_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_caps_debug_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_caps_debug_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_caps_debug_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_caps_debug_sink_template); gst_element_class_set_details_simple (element_class, "Caps debug", "Generic", "Debug caps negotiation", "David Schleef "); diff --git a/gst/debugutils/gstcapssetter.c b/gst/debugutils/gstcapssetter.c index d01408e..061da47 100644 --- a/gst/debugutils/gstcapssetter.c +++ b/gst/debugutils/gstcapssetter.c @@ -124,10 +124,10 @@ gst_caps_setter_base_init (gpointer g_class) "Set/merge caps on stream", "Mark Nauwelaerts "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_caps_setter_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_caps_setter_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_caps_setter_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_caps_setter_src_template); } static void diff --git a/gst/debugutils/gstnavigationtest.c b/gst/debugutils/gstnavigationtest.c index dfa00c6..6f6daea 100644 --- a/gst/debugutils/gstnavigationtest.c +++ b/gst/debugutils/gstnavigationtest.c @@ -271,10 +271,10 @@ gst_navigationtest_base_init (gpointer g_class) "Handle navigation events showing a black square following mouse pointer", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_navigationtest_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_navigationtest_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_navigationtest_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_navigationtest_src_template); } static void diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c index c7b674d..4ee9343 100644 --- a/gst/debugutils/gstnavseek.c +++ b/gst/debugutils/gstnavseek.c @@ -68,10 +68,10 @@ gst_navseek_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&navseek_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&navseek_src_template)); + gst_element_class_add_static_pad_template (element_class, + &navseek_sink_template); + gst_element_class_add_static_pad_template (element_class, + &navseek_src_template); gst_element_class_set_details_simple (element_class, "Seek based on left-right arrows", "Filter/Video", @@ -211,6 +211,23 @@ gst_navseek_segseek (GstNavSeek * navseek) gst_object_unref (peer_pad); } +static void +gst_navseek_toggle_play_pause (GstNavSeek * navseek) +{ + GstStateChangeReturn sret; + GstState current, pending, state; + + sret = gst_element_get_state (GST_ELEMENT (navseek), ¤t, &pending, 0); + if (sret == GST_STATE_CHANGE_FAILURE) + return; + + state = (pending != GST_STATE_VOID_PENDING) ? pending : current; + + gst_element_post_message (GST_ELEMENT (navseek), + gst_message_new_request_state (GST_OBJECT (navseek), + (state == GST_STATE_PLAYING) ? GST_STATE_PAUSED : GST_STATE_PLAYING)); +} + static gboolean gst_navseek_handle_src_event (GstPad * pad, GstEvent * event) { @@ -263,6 +280,8 @@ gst_navseek_handle_src_event (GstPad * pad, GstEvent * event) } else if (strcmp (key, "n") == 0) { /* normal speed */ gst_navseek_change_playback_rate (navseek, 1.0); + } else if (strcmp (key, "space") == 0) { + gst_navseek_toggle_play_pause (navseek); } } else { break; diff --git a/gst/debugutils/gstpushfilesrc.c b/gst/debugutils/gstpushfilesrc.c index ac4f4ba..012ad9f 100644 --- a/gst/debugutils/gstpushfilesrc.c +++ b/gst/debugutils/gstpushfilesrc.c @@ -79,8 +79,7 @@ gst_push_file_src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&srctemplate)); + gst_element_class_add_static_pad_template (element_class, &srctemplate); gst_element_class_set_details_simple (element_class, "Push File Source", "Testing", diff --git a/gst/debugutils/gsttaginject.c b/gst/debugutils/gsttaginject.c index a5e78fe..20a88a5 100644 --- a/gst/debugutils/gsttaginject.c +++ b/gst/debugutils/gsttaginject.c @@ -87,10 +87,10 @@ gst_tag_inject_base_init (gpointer g_class) gst_element_class_set_details_simple (gstelement_class, "TagInject", "Generic", "inject metadata tags", "Stefan Kost "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&srctemplate)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, + &srctemplate); + gst_element_class_add_static_pad_template (gstelement_class, + &sinktemplate); } static void @@ -134,6 +134,10 @@ gst_tag_inject_class_init (GstTagInjectClass * klass) static void gst_tag_inject_init (GstTagInject * self, GstTagInjectClass * g_class) { + GstBaseTransform *trans = GST_BASE_TRANSFORM (self); + + gst_base_transform_set_gap_aware (trans, TRUE); + self->tags = NULL; } diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c index a1b2e7e..2ef30a1 100644 --- a/gst/debugutils/progressreport.c +++ b/gst/debugutils/progressreport.c @@ -123,10 +123,10 @@ gst_progress_report_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&progress_report_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&progress_report_src_template)); + gst_element_class_add_static_pad_template (element_class, + &progress_report_sink_template); + gst_element_class_add_static_pad_template (element_class, + &progress_report_src_template); gst_element_class_set_details_simple (element_class, "Progress report", "Testing", diff --git a/gst/debugutils/rndbuffersize.c b/gst/debugutils/rndbuffersize.c index a9ed67f..e6ddd1f 100644 --- a/gst/debugutils/rndbuffersize.c +++ b/gst/debugutils/rndbuffersize.c @@ -106,14 +106,14 @@ gst_rnd_buffer_size_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &sink_template); + gst_element_class_add_static_pad_template (gstelement_class, + &src_template); gst_element_class_set_details_simple (gstelement_class, "Random buffer size", "Testing", "pull random sized buffers", - "Stefan Kost )"); + "Stefan Kost "); } diff --git a/gst/debugutils/testplugin.c b/gst/debugutils/testplugin.c index 51be3aa..df0be93 100644 --- a/gst/debugutils/testplugin.c +++ b/gst/debugutils/testplugin.c @@ -94,8 +94,8 @@ gst_test_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, + &sinktemplate); gst_element_class_set_details_simple (gstelement_class, "Test plugin", "Testing", "perform a number of tests", "Benjamin Otte "); diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in index 6cad5b9..885ea1c 100644 --- a/gst/deinterlace/Makefile.in +++ b/gst/deinterlace/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -89,8 +89,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -125,6 +124,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -145,8 +150,8 @@ am__objects_1 = libgstdeinterlace_la-tmp-orc.lo nodist_libgstdeinterlace_la_OBJECTS = $(am__objects_1) libgstdeinterlace_la_OBJECTS = $(am_libgstdeinterlace_la_OBJECTS) \ $(nodist_libgstdeinterlace_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdeinterlace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -162,21 +167,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdeinterlace_la_SOURCES) \ $(nodist_libgstdeinterlace_la_SOURCES) @@ -260,7 +265,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -335,7 +343,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -359,6 +366,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -393,18 +401,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -457,6 +457,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -491,7 +492,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -599,6 +599,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -639,7 +640,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdeinterlace.la: $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_DEPENDENCIES) +libgstdeinterlace.la: $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_DEPENDENCIES) $(EXTRA_libgstdeinterlace_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdeinterlace_la_LINK) -rpath $(plugindir) $(libgstdeinterlace_la_OBJECTS) $(libgstdeinterlace_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -665,130 +666,114 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdeinterlace_la-gstdeinterlace.lo: gstdeinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlace.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Tpo -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Tpo $(DEPDIR)/libgstdeinterlace_la-gstdeinterlace.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdeinterlace.c' object='libgstdeinterlace_la-gstdeinterlace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdeinterlace.c' object='libgstdeinterlace_la-gstdeinterlace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlace.lo `test -f 'gstdeinterlace.c' || echo '$(srcdir)/'`gstdeinterlace.c libgstdeinterlace_la-gstdeinterlacemethod.lo: gstdeinterlacemethod.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-gstdeinterlacemethod.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Tpo -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Tpo $(DEPDIR)/libgstdeinterlace_la-gstdeinterlacemethod.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdeinterlacemethod.c' object='libgstdeinterlace_la-gstdeinterlacemethod.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdeinterlacemethod.c' object='libgstdeinterlace_la-gstdeinterlacemethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-gstdeinterlacemethod.lo `test -f 'gstdeinterlacemethod.c' || echo '$(srcdir)/'`gstdeinterlacemethod.c libgstdeinterlace_la-tomsmocomp.lo: tvtime/tomsmocomp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-tomsmocomp.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Tpo -c -o libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Tpo $(DEPDIR)/libgstdeinterlace_la-tomsmocomp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/tomsmocomp.c' object='libgstdeinterlace_la-tomsmocomp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/tomsmocomp.c' object='libgstdeinterlace_la-tomsmocomp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tomsmocomp.lo `test -f 'tvtime/tomsmocomp.c' || echo '$(srcdir)/'`tvtime/tomsmocomp.c libgstdeinterlace_la-greedy.lo: tvtime/greedy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-greedy.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-greedy.Tpo -c -o libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-greedy.Tpo $(DEPDIR)/libgstdeinterlace_la-greedy.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/greedy.c' object='libgstdeinterlace_la-greedy.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/greedy.c' object='libgstdeinterlace_la-greedy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-greedy.lo `test -f 'tvtime/greedy.c' || echo '$(srcdir)/'`tvtime/greedy.c libgstdeinterlace_la-greedyh.lo: tvtime/greedyh.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-greedyh.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-greedyh.Tpo -c -o libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-greedyh.Tpo $(DEPDIR)/libgstdeinterlace_la-greedyh.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/greedyh.c' object='libgstdeinterlace_la-greedyh.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/greedyh.c' object='libgstdeinterlace_la-greedyh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-greedyh.lo `test -f 'tvtime/greedyh.c' || echo '$(srcdir)/'`tvtime/greedyh.c libgstdeinterlace_la-vfir.lo: tvtime/vfir.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-vfir.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-vfir.Tpo -c -o libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-vfir.Tpo $(DEPDIR)/libgstdeinterlace_la-vfir.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/vfir.c' object='libgstdeinterlace_la-vfir.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/vfir.c' object='libgstdeinterlace_la-vfir.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-vfir.lo `test -f 'tvtime/vfir.c' || echo '$(srcdir)/'`tvtime/vfir.c libgstdeinterlace_la-weavetff.lo: tvtime/weavetff.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-weavetff.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-weavetff.Tpo -c -o libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-weavetff.Tpo $(DEPDIR)/libgstdeinterlace_la-weavetff.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/weavetff.c' object='libgstdeinterlace_la-weavetff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/weavetff.c' object='libgstdeinterlace_la-weavetff.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weavetff.lo `test -f 'tvtime/weavetff.c' || echo '$(srcdir)/'`tvtime/weavetff.c libgstdeinterlace_la-weavebff.lo: tvtime/weavebff.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-weavebff.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-weavebff.Tpo -c -o libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-weavebff.Tpo $(DEPDIR)/libgstdeinterlace_la-weavebff.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/weavebff.c' object='libgstdeinterlace_la-weavebff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/weavebff.c' object='libgstdeinterlace_la-weavebff.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weavebff.lo `test -f 'tvtime/weavebff.c' || echo '$(srcdir)/'`tvtime/weavebff.c libgstdeinterlace_la-weave.lo: tvtime/weave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-weave.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-weave.Tpo -c -o libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-weave.Tpo $(DEPDIR)/libgstdeinterlace_la-weave.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/weave.c' object='libgstdeinterlace_la-weave.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/weave.c' object='libgstdeinterlace_la-weave.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-weave.lo `test -f 'tvtime/weave.c' || echo '$(srcdir)/'`tvtime/weave.c libgstdeinterlace_la-linear.lo: tvtime/linear.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-linear.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-linear.Tpo -c -o libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-linear.Tpo $(DEPDIR)/libgstdeinterlace_la-linear.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/linear.c' object='libgstdeinterlace_la-linear.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/linear.c' object='libgstdeinterlace_la-linear.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-linear.lo `test -f 'tvtime/linear.c' || echo '$(srcdir)/'`tvtime/linear.c libgstdeinterlace_la-linearblend.lo: tvtime/linearblend.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-linearblend.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-linearblend.Tpo -c -o libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-linearblend.Tpo $(DEPDIR)/libgstdeinterlace_la-linearblend.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/linearblend.c' object='libgstdeinterlace_la-linearblend.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/linearblend.c' object='libgstdeinterlace_la-linearblend.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-linearblend.lo `test -f 'tvtime/linearblend.c' || echo '$(srcdir)/'`tvtime/linearblend.c libgstdeinterlace_la-scalerbob.lo: tvtime/scalerbob.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-scalerbob.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-scalerbob.Tpo -c -o libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-scalerbob.Tpo $(DEPDIR)/libgstdeinterlace_la-scalerbob.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tvtime/scalerbob.c' object='libgstdeinterlace_la-scalerbob.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tvtime/scalerbob.c' object='libgstdeinterlace_la-scalerbob.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-scalerbob.lo `test -f 'tvtime/scalerbob.c' || echo '$(srcdir)/'`tvtime/scalerbob.c libgstdeinterlace_la-tmp-orc.lo: tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -MT libgstdeinterlace_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Tpo -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Tpo $(DEPDIR)/libgstdeinterlace_la-tmp-orc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstdeinterlace_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstdeinterlace_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdeinterlace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdeinterlace_la_CFLAGS) $(CFLAGS) -c -o libgstdeinterlace_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -900,10 +885,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index ce76f72..a79b836 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -2,6 +2,7 @@ * GStreamer * Copyright (C) 2005 Martin Eikermann * Copyright (C) 2008-2010 Sebastian Dröge + * Copyright (C) 2011 Robert Swain * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -55,6 +56,9 @@ GST_DEBUG_CATEGORY_STATIC (deinterlace_debug); #define DEFAULT_METHOD GST_DEINTERLACE_LINEAR #define DEFAULT_FIELDS GST_DEINTERLACE_ALL #define DEFAULT_FIELD_LAYOUT GST_DEINTERLACE_LAYOUT_AUTO +#define DEFAULT_LOCKING GST_DEINTERLACE_LOCKING_NONE +#define DEFAULT_IGNORE_OBSCURE TRUE +#define DEFAULT_DROP_ORPHANS TRUE enum { @@ -63,9 +67,73 @@ enum PROP_METHOD, PROP_FIELDS, PROP_FIELD_LAYOUT, + PROP_LOCKING, + PROP_IGNORE_OBSCURE, + PROP_DROP_ORPHANS, PROP_LAST }; +#define GST_DEINTERLACE_BUFFER_STATE_P (1<<0) +#define GST_DEINTERLACE_BUFFER_STATE_I (1<<1) +#define GST_DEINTERLACE_BUFFER_STATE_TC_B (1<<2) +#define GST_DEINTERLACE_BUFFER_STATE_TC_T (1<<3) +#define GST_DEINTERLACE_BUFFER_STATE_TC_P (1<<4) +#define GST_DEINTERLACE_BUFFER_STATE_TC_M (1<<5) +#define GST_DEINTERLACE_BUFFER_STATE_DROP (1<<6) + +#define GST_ONE \ + (GST_DEINTERLACE_BUFFER_STATE_TC_T | GST_DEINTERLACE_BUFFER_STATE_TC_B) +#define GST_PRG \ + (GST_DEINTERLACE_BUFFER_STATE_P | GST_DEINTERLACE_BUFFER_STATE_TC_P) +#define GST_INT \ + (GST_DEINTERLACE_BUFFER_STATE_I | GST_DEINTERLACE_BUFFER_STATE_TC_M) +#define GST_DRP (GST_DEINTERLACE_BUFFER_STATE_DROP) + +#define GST_DEINTERLACE_OBSCURE_THRESHOLD 5 + +static const TelecinePattern telecine_patterns[] = { + /* 60i -> 60p or 50i -> 50p (NOTE THE WEIRD RATIOS) */ + {"1:1", 1, 2, 1, {GST_ONE,}}, + /* 60i -> 30p or 50i -> 25p */ + {"2:2", 1, 1, 1, {GST_INT,}}, + /* 60i telecine -> 24p */ + {"2:3", 5, 4, 5, {GST_PRG, GST_PRG, GST_ONE, GST_ONE, GST_PRG,}}, + {"3:2:2:3", 5, 4, 5, {GST_PRG, GST_ONE, GST_INT, GST_ONE, GST_PRG,}}, + {"2:3:3:2", 5, 4, 5, {GST_PRG, GST_PRG, GST_DRP, GST_PRG, GST_PRG,}}, + + /* The following patterns are obscure and are ignored if ignore-obscure is + * set to true. If any patterns are added above this line, check and edit + * GST_DEINTERLACE_OBSCURE_THRESHOLD */ + + /* 50i Euro pulldown -> 24p */ + {"2-11:3", 25, 24, 25, {GST_PRG, GST_PRG, GST_PRG, GST_PRG, GST_PRG, + GST_PRG, GST_PRG, GST_PRG, GST_PRG, GST_PRG, + GST_PRG, GST_PRG, GST_ONE, GST_INT, GST_INT, + GST_INT, GST_INT, GST_INT, GST_INT, GST_INT, + GST_INT, GST_INT, GST_INT, GST_ONE, GST_PRG,}}, + /* 60i (NTSC 30000/1001) -> 16p (16000/1001) */ + {"3:4-3", 15, 8, 15, {GST_PRG, GST_DRP, GST_PRG, GST_DRP, GST_PRG, + GST_DRP, GST_PRG, GST_DRP, GST_PRG, GST_DRP, + GST_PRG, GST_DRP, GST_PRG, GST_DRP, GST_PRG,}}, + /* 50i (PAL) -> 16p */ + {"3-7:4", 25, 16, 25, {GST_PRG, GST_DRP, GST_PRG, GST_PRG, GST_DRP, + GST_PRG, GST_PRG, GST_DRP, GST_PRG, GST_PRG, + GST_DRP, GST_PRG, GST_DRP, GST_PRG, GST_PRG, + GST_DRP, GST_PRG, GST_PRG, GST_DRP, GST_PRG, + GST_PRG, GST_DRP, GST_PRG, GST_PRG, GST_DRP,}}, + /* NTSC 60i -> 18p */ + {"3:3:4", 5, 3, 5, {GST_PRG, GST_DRP, GST_PRG, GST_DRP, GST_PRG,}}, + /* NTSC 60i -> 20p */ + {"3:3", 3, 2, 3, {GST_PRG, GST_DRP, GST_PRG,}}, + /* NTSC 60i -> 27.5 */ + {"3:2-4", 11, 10, 11, {GST_PRG, GST_PRG, GST_PRG, GST_PRG, GST_PRG, + GST_PRG, GST_ONE, GST_INT, GST_INT, GST_INT, + GST_ONE,}}, + /* PAL 50i -> 27.5 */ + {"1:2-4", 9, 9, 10, {GST_PRG, GST_PRG, GST_PRG, GST_PRG, GST_INT, + GST_INT, GST_INT, GST_INT, GST_INT,}}, +}; + static const GEnumValue methods_types[] = { {GST_DEINTERLACE_TOMSMOCOMP, "Motion Adaptive: Motion Search", "tomsmocomp"}, @@ -85,6 +153,21 @@ static const GEnumValue methods_types[] = { {0, NULL, NULL}, }; +static const GEnumValue locking_types[] = { + {GST_DEINTERLACE_LOCKING_NONE, + "No pattern locking", "none"}, + {GST_DEINTERLACE_LOCKING_AUTO, + "Choose passive/active locking depending on whether upstream is live", + "auto"}, + {GST_DEINTERLACE_LOCKING_ACTIVE, + "Block until pattern-locked. Use accurate timestamp interpolation within a pattern repeat.", + "active"}, + {GST_DEINTERLACE_LOCKING_PASSIVE, + "Do not block. Use naïve timestamp adjustment until pattern-locked based on state history.", + "passive"}, + {0, NULL, NULL}, +}; + #define GST_TYPE_DEINTERLACE_METHODS (gst_deinterlace_methods_get_type ()) static GType @@ -160,6 +243,21 @@ gst_deinterlace_modes_get_type (void) return deinterlace_modes_type; } +#define GST_TYPE_DEINTERLACE_LOCKING (gst_deinterlace_locking_get_type ()) +static GType +gst_deinterlace_locking_get_type (void) +{ + static GType deinterlace_locking_type = 0; + + if (!deinterlace_locking_type) { + deinterlace_locking_type = + g_enum_register_static ("GstDeinterlaceLocking", locking_types); + } + + return deinterlace_locking_type; +} + + #define DEINTERLACE_CAPS \ GST_VIDEO_CAPS_YUV ("{ AYUV, Y444, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }") ";" \ GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_ABGR ";" \ @@ -294,10 +392,9 @@ gst_deinterlace_set_method (GstDeinterlace * self, GstDeinterlaceMethods method) g_assert (method_type != G_TYPE_INVALID); } - self->method = g_object_new (method_type, NULL); + self->method = g_object_new (method_type, "name", "method", NULL); self->method_id = method; - gst_object_set_name (GST_OBJECT (self->method), "method"); gst_object_set_parent (GST_OBJECT (self->method), GST_OBJECT (self)); gst_child_proxy_child_added (GST_OBJECT (self), GST_OBJECT (self->method)); @@ -353,10 +450,8 @@ gst_deinterlace_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); + gst_element_class_add_static_pad_template (element_class, &sink_templ); gst_element_class_set_details_simple (element_class, "Deinterlacer", @@ -504,6 +599,51 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) DEFAULT_FIELD_LAYOUT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); + /** + * GstDeinterlace:locking + * + * This selects which approach to pattern locking is used which affects + * processing latency and accuracy of timestamp adjustment for telecine + * streams. + * + * Since: 0.10.31 + * + */ + g_object_class_install_property (gobject_class, PROP_LOCKING, + g_param_spec_enum ("locking", "locking", "Pattern locking mode", + GST_TYPE_DEINTERLACE_LOCKING, DEFAULT_LOCKING, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstDeinterlace:ignore-obscure + * + * This selects whether to ignore obscure/rare telecine patterns. + * NTSC 2:3 pulldown variants are the only really common patterns. + * + * Since: 0.10.31 + * + */ + g_object_class_install_property (gobject_class, PROP_IGNORE_OBSCURE, + g_param_spec_boolean ("ignore-obscure", "ignore-obscure", + "Ignore obscure telecine patterns (only consider P, I and 2:3 " + "variants).", DEFAULT_IGNORE_OBSCURE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstDeinterlace:drop-orphans + * + * This selects whether to drop orphan fields at the beginning of telecine + * patterns in active locking mode. + * + * Since: 0.10.31 + * + */ + g_object_class_install_property (gobject_class, PROP_DROP_ORPHANS, + g_param_spec_boolean ("drop-orphans", "drop-orphans", + "Drop orphan fields at the beginning of telecine patterns in " + "active locking mode.", DEFAULT_DROP_ORPHANS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + element_class->change_state = GST_DEBUG_FUNCPTR (gst_deinterlace_change_state); } @@ -571,7 +711,17 @@ gst_deinterlace_init (GstDeinterlace * self, GstDeinterlaceClass * klass) gst_deinterlace_set_method (self, self->user_set_method_id); self->fields = DEFAULT_FIELDS; self->field_layout = DEFAULT_FIELD_LAYOUT; - + self->locking = DEFAULT_LOCKING; + self->ignore_obscure = DEFAULT_IGNORE_OBSCURE; + self->drop_orphans = DEFAULT_DROP_ORPHANS; + + self->low_latency = -1; + self->pattern = -1; + self->pattern_phase = -1; + self->pattern_count = 0; + self->output_count = 0; + self->pattern_base_ts = GST_CLOCK_TIME_NONE; + self->pattern_buf_dur = GST_CLOCK_TIME_NONE; self->still_frame_mode = FALSE; gst_deinterlace_reset (self); @@ -606,6 +756,13 @@ gst_deinterlace_reset_history (GstDeinterlace * self, gboolean drop_all) memset (self->field_history, 0, GST_DEINTERLACE_MAX_FIELD_HISTORY * sizeof (GstDeinterlaceField)); self->history_count = 0; + memset (self->buf_states, 0, + GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY * + sizeof (GstDeinterlaceBufferState)); + self->state_count = 0; + self->pattern_lock = FALSE; + self->pattern_refresh = TRUE; + self->cur_field_idx = -1; if (!self->still_frame_mode && self->last_buffer) { gst_buffer_unref (self->last_buffer); @@ -650,6 +807,9 @@ gst_deinterlace_reset (GstDeinterlace * self) gst_deinterlace_reset_history (self, TRUE); gst_deinterlace_reset_qos (self); + + self->need_more = FALSE; + self->have_eos = FALSE; } static void @@ -698,6 +858,15 @@ gst_deinterlace_set_property (GObject * object, guint prop_id, case PROP_FIELD_LAYOUT: self->field_layout = g_value_get_enum (value); break; + case PROP_LOCKING: + self->locking = g_value_get_enum (value); + break; + case PROP_IGNORE_OBSCURE: + self->ignore_obscure = g_value_get_boolean (value); + break; + case PROP_DROP_ORPHANS: + self->drop_orphans = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec); } @@ -726,6 +895,15 @@ gst_deinterlace_get_property (GObject * object, guint prop_id, case PROP_FIELD_LAYOUT: g_value_set_enum (value, self->field_layout); break; + case PROP_LOCKING: + g_value_set_enum (value, self->locking); + break; + case PROP_IGNORE_OBSCURE: + g_value_set_boolean (value, self->ignore_obscure); + break; + case PROP_DROP_ORPHANS: + g_value_set_boolean (value, self->drop_orphans); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, prop_id, pspec); } @@ -746,6 +924,32 @@ gst_deinterlace_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } +static void +gst_deinterlace_update_pattern_timestamps (GstDeinterlace * self) +{ + gint state_idx; + if (self->low_latency) { + /* in low-latency mode the buffer state history contains old buffer + * states as well as the current one and perhaps some future ones. + * the current buffer's state is given by the number of field pairs + * rounded up, minus 1. the below is equivalent */ + state_idx = (self->history_count - 1) >> 1; + } else { + /* in high-latency mode state_count - 1 is the current buffer's state */ + state_idx = self->state_count - 1; + } + + self->pattern_base_ts = self->buf_states[state_idx].timestamp; + self->pattern_buf_dur = + (self->buf_states[state_idx].duration * + telecine_patterns[self->pattern].ratio_d) / + telecine_patterns[self->pattern].ratio_n; + GST_DEBUG_OBJECT (self, + "Starting a new pattern repeat with base ts %" GST_TIME_FORMAT + " and dur %" GST_TIME_FORMAT, GST_TIME_ARGS (self->pattern_base_ts), + GST_TIME_ARGS (self->pattern_buf_dur)); +} + static GstBuffer * gst_deinterlace_pop_history (GstDeinterlace * self) { @@ -759,6 +963,21 @@ gst_deinterlace_pop_history (GstDeinterlace * self) buffer = self->field_history[self->history_count - 1].buf; self->history_count--; + if (self->locking != GST_DEINTERLACE_LOCKING_NONE && (!self->history_count + || GST_BUFFER_DATA (buffer) != + GST_BUFFER_DATA (self->field_history[self->history_count - 1].buf))) { + if (!self->low_latency) + self->state_count--; + if (self->pattern_lock) { + self->pattern_count++; + if (self->pattern != -1 + && self->pattern_count >= telecine_patterns[self->pattern].length) { + self->pattern_count = 0; + self->output_count = 0; + gst_deinterlace_update_pattern_timestamps (self); + } + } + } GST_DEBUG_OBJECT (self, "Returning buffer: %p %" GST_TIME_FORMAT " with duration %" GST_TIME_FORMAT " and size %u", buffer, @@ -768,6 +987,79 @@ gst_deinterlace_pop_history (GstDeinterlace * self) return buffer; } +typedef enum +{ + GST_DEINTERLACE_PROGRESSIVE, + GST_DEINTERLACE_INTERLACED, + GST_DEINTERLACE_TELECINE, +} GstDeinterlaceInterlacingMethod; + +static GstDeinterlaceInterlacingMethod +gst_deinterlace_get_interlacing_method (const GstCaps * caps) +{ + GstDeinterlaceInterlacingMethod method = 0; + gboolean interlaced; + + /* check interlaced cap, defaulting to FALSE */ + if (!gst_structure_get_boolean (gst_caps_get_structure (caps, 0), + "interlaced", &interlaced)) + interlaced = FALSE; + + method = + interlaced ? GST_DEINTERLACE_INTERLACED : GST_DEINTERLACE_PROGRESSIVE; + + if (method == GST_DEINTERLACE_INTERLACED) { + const gchar *temp = + gst_structure_get_string (gst_caps_get_structure (caps, 0), + "interlacing-method"); + if (temp && g_str_equal (temp, "telecine")) + method = GST_DEINTERLACE_TELECINE; + } + + return method; +} + +static void +gst_deinterlace_get_buffer_state (GstDeinterlace * self, GstBuffer * buffer, + guint8 * state, GstDeinterlaceInterlacingMethod * i_method) +{ + GstDeinterlaceInterlacingMethod interlacing_method; + + if (!(i_method || state)) + return; + + interlacing_method = + gst_deinterlace_get_interlacing_method (GST_BUFFER_CAPS (buffer)); + + if (state) { + if (interlacing_method == GST_DEINTERLACE_TELECINE) { + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_RFF)) { + *state = GST_DEINTERLACE_BUFFER_STATE_DROP; + } else if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_ONEFIELD)) { + /* tc top if tff, tc bottom otherwise */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_TFF)) { + *state = GST_DEINTERLACE_BUFFER_STATE_TC_T; + } else { + *state = GST_DEINTERLACE_BUFFER_STATE_TC_B; + } + } else if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_PROGRESSIVE)) { + *state = GST_DEINTERLACE_BUFFER_STATE_TC_P; + } else { + *state = GST_DEINTERLACE_BUFFER_STATE_TC_M; + } + } else { + if (interlacing_method == GST_DEINTERLACE_INTERLACED) { + *state = GST_DEINTERLACE_BUFFER_STATE_I; + } else { + *state = GST_DEINTERLACE_BUFFER_STATE_P; + } + } + } + + if (i_method) + *i_method = interlacing_method; +} + static void gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer) { @@ -781,14 +1073,47 @@ gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer) GstBuffer *field1, *field2; guint fields_to_push = (onefield) ? 1 : (!repeated) ? 2 : 3; gint field1_flags, field2_flags; + GstDeinterlaceInterlacingMethod interlacing_method; + guint8 buf_state; g_return_if_fail (self->history_count < GST_DEINTERLACE_MAX_FIELD_HISTORY - fields_to_push); - GST_DEBUG_OBJECT (self, "Pushing new buffer to the history: %" GST_TIME_FORMAT - " with duration %" GST_TIME_FORMAT " and size %u", + gst_deinterlace_get_buffer_state (self, buffer, &buf_state, + &interlacing_method); + + GST_DEBUG_OBJECT (self, + "Pushing new buffer to the history: ptr %p at %" GST_TIME_FORMAT + " with duration %" GST_TIME_FORMAT + ", size %u, state %u, interlacing method %s", GST_BUFFER_DATA (buffer), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)), - GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)), GST_BUFFER_SIZE (buffer)); + GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)), GST_BUFFER_SIZE (buffer), + buf_state, + interlacing_method == + GST_DEINTERLACE_TELECINE ? "TC" : interlacing_method == + GST_DEINTERLACE_INTERLACED ? "I" : "P"); + + /* move up for new state */ + memmove (&self->buf_states[1], &self->buf_states[0], + (GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY - 1) * + sizeof (GstDeinterlaceBufferState)); + self->buf_states[0].state = buf_state; + self->buf_states[0].timestamp = GST_BUFFER_TIMESTAMP (buffer); + self->buf_states[0].duration = GST_BUFFER_DURATION (buffer); + if (self->state_count < GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY) + self->state_count++; + + if (buf_state == GST_DEINTERLACE_BUFFER_STATE_DROP) { + GST_DEBUG_OBJECT (self, + "Buffer contains only unneeded repeated fields, dropping and not" + "adding to field history"); + gst_buffer_unref (buffer); + return; + } + + /* telecine does not make use of repeated fields */ + if (interlacing_method == GST_DEINTERLACE_TELECINE) + repeated = FALSE; for (i = GST_DEINTERLACE_MAX_FIELD_HISTORY - 1; i >= fields_to_push; i--) { self->field_history[i].buf = self->field_history[i - fields_to_push].buf; @@ -821,12 +1146,16 @@ gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer) field2_flags = PICTURE_INTERLACED_TOP; } - /* Timestamps are assigned to the field buffers under the assumption that - the timestamp of the buffer equals the first fields timestamp */ + if (interlacing_method != GST_DEINTERLACE_TELECINE) { + /* Timestamps are assigned to the field buffers under the assumption that + the timestamp of the buffer equals the first fields timestamp */ - timestamp = GST_BUFFER_TIMESTAMP (buffer); - GST_BUFFER_TIMESTAMP (field1) = timestamp; - GST_BUFFER_TIMESTAMP (field2) = timestamp + self->field_duration; + timestamp = GST_BUFFER_TIMESTAMP (buffer); + GST_BUFFER_TIMESTAMP (field1) = timestamp; + GST_BUFFER_TIMESTAMP (field2) = timestamp + self->field_duration; + if (repeated) + GST_BUFFER_TIMESTAMP (field2) += self->field_duration; + } if (repeated) { self->field_history[2].buf = field1; @@ -853,9 +1182,10 @@ gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer) } self->history_count += fields_to_push; + self->cur_field_idx += fields_to_push; - GST_DEBUG_OBJECT (self, "Pushed buffer -- current history size %d", - self->history_count); + GST_DEBUG_OBJECT (self, "Pushed buffer -- current history size %d, index %d", + self->history_count, self->cur_field_idx); if (self->last_buffer) gst_buffer_unref (self->last_buffer); @@ -943,84 +1273,447 @@ gst_deinterlace_do_qos (GstDeinterlace * self, GstClockTime timestamp) return TRUE; } +static gboolean +gst_deinterlace_fix_timestamps (GstDeinterlace * self, + GstDeinterlaceField * field1, GstDeinterlaceField * field2) +{ + GstDeinterlaceField *field3, *field4; + GstDeinterlaceInterlacingMethod interlacing_method; + + if (self->pattern_lock && self->pattern > -1) { + /* accurate pattern-locked timestamp adjustment */ + if (!self->pattern_count) + gst_deinterlace_update_pattern_timestamps (self); + + GST_BUFFER_TIMESTAMP (field1->buf) = + self->pattern_base_ts + self->output_count * self->pattern_buf_dur; + GST_BUFFER_DURATION (field1->buf) = self->pattern_buf_dur; + self->output_count++; + } else { + /* naive (but low-latency) timestamp adjustment based on subsequent + * fields/buffers */ + if (field2 + && GST_BUFFER_DATA (field1->buf) != GST_BUFFER_DATA (field2->buf)) { + if (GST_BUFFER_TIMESTAMP (field1->buf) + + GST_BUFFER_DURATION (field1->buf) == + GST_BUFFER_TIMESTAMP (field2->buf)) { + GST_BUFFER_TIMESTAMP (field1->buf) = + GST_BUFFER_TIMESTAMP (field2->buf) = + (GST_BUFFER_TIMESTAMP (field1->buf) + + GST_BUFFER_TIMESTAMP (field2->buf)) / 2; + } else { + GST_BUFFER_TIMESTAMP (field2->buf) = GST_BUFFER_TIMESTAMP (field1->buf); + } + } + + if (self->history_count < 3) { + GST_DEBUG_OBJECT (self, "Need more fields (have %d, need 3)", + self->history_count); + return FALSE; + } + + field3 = &self->field_history[self->history_count - 3]; + interlacing_method = + gst_deinterlace_get_interlacing_method (GST_BUFFER_CAPS (field3->buf)); + if (interlacing_method == GST_DEINTERLACE_TELECINE) { + if (self->history_count < 4) { + GST_DEBUG_OBJECT (self, "Need more fields (have %d, need 4)", + self->history_count); + return FALSE; + } + + field4 = &self->field_history[self->history_count - 4]; + if (GST_BUFFER_DATA (field3->buf) != GST_BUFFER_DATA (field4->buf)) { + /* telecine fields in separate buffers */ + GST_BUFFER_TIMESTAMP (field3->buf) = + (GST_BUFFER_TIMESTAMP (field3->buf) + + GST_BUFFER_TIMESTAMP (field4->buf)) / 2; + } + } + + GST_BUFFER_DURATION (field1->buf) = + GST_BUFFER_TIMESTAMP (field3->buf) - GST_BUFFER_TIMESTAMP (field1->buf); + } + + GST_DEBUG_OBJECT (self, + "Field 1 adjusted to ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1->buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (field1->buf))); + return TRUE; +} + +static void +gst_deinterlace_get_pattern_lock (GstDeinterlace * self, gboolean * flush_one) +{ + /* loop over all possible patterns and all possible phases + * giving each a score. the highest score gets the lock */ + /* the score is calculated as the number of matched buffers in the + * sequence starting at the phase offset with those from the history + * then the longest duration pattern match is taken. if there is more than + * one pattern matching all buffers, we take the longest pattern of those. + * matches to complete patterns are preferred. if no non-trivial pattern is + * matched, trivial patterns are tested. */ + gint i, j, k, score, pattern, phase; + const gint state_count = self->state_count; + const gint n_required = self->ignore_obscure ? + GST_DEINTERLACE_OBSCURE_THRESHOLD : + GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY; + + /* set unknown pattern as this is used in logic outside this function */ + self->pattern = -1; + + /* wait for more buffers */ + if (!self->have_eos && state_count < n_required) { + GST_DEBUG_OBJECT (self, "Need more buffers in state history - %d/%d", + state_count, n_required); + return; + } + + score = pattern = phase = -1; + + /* loop over all patterns */ + for (i = 0; i < G_N_ELEMENTS (telecine_patterns); i++) { + const guint8 length = telecine_patterns[i].length; + + if (self->ignore_obscure && i >= GST_DEINTERLACE_OBSCURE_THRESHOLD) + break; + + if (state_count < length) + continue; + + /* loop over all phases */ + for (j = 0; j < length; j++) { + /* low-latency mode looks at past buffers, high latency at future buffers */ + const gint state_idx = (self->low_latency ? length : state_count) - 1; + /* loop over history, breaking on differing buffer states */ + for (k = 0; k < length && k < state_count; k++) { + const guint8 hist = self->buf_states[state_idx - k].state; + const guint8 patt = telecine_patterns[i].states[(j + k) % length]; + if (!(hist & patt)) + break; + } + + /* make complete matches more signficant */ + if (k == length) + k += GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY; + + /* take as new best pattern if the number of matched buffers is more than + * for other patterns */ + if (k > score) { + score = k; + pattern = i; + phase = j; + if (self->low_latency) { + /* state_idx + 1 is the number of buffers yet to be pushed out + * so length - state_idx - 1 is the number of old buffers in the + * pattern */ + phase = (phase + length - state_idx - 1) % length; + } + } + } + } + + GST_DEBUG_OBJECT (self, + "Final pattern match result: pa %d, ph %d, l %d, s %d", pattern, phase, + telecine_patterns[pattern].length, score); + self->pattern = pattern; + self->pattern_phase = phase; + self->pattern_count = 0; + self->output_count = 0; + self->pattern_lock = TRUE; + + /* check for the case that the first field of the pattern is an orphan */ + if (pattern > 1 + && telecine_patterns[pattern].states[phase] & (GST_ONE | GST_INT)) { + gint i = phase, field_count = 0; + guint8 state = telecine_patterns[pattern].states[i]; + + do { + if (state & GST_ONE) { + field_count++; + } else if (!(state & GST_DRP)) { + field_count += 2; + } + i++; + i %= telecine_patterns[pattern].length; + state = telecine_patterns[pattern].states[i]; + } while (!(state & GST_PRG)); + + /* if field_count is odd, we have an orphan field at the beginning of the + * sequence + * note - don't do this in low-latency mode as we are somewhere within the + * pattern already */ + if (!self->low_latency && (*flush_one = field_count & 1)) { + GST_DEBUG_OBJECT (self, "Orphan field detected at the beginning of the " + "pattern - it will be deinterlaced."); + } + } +} + static GstFlowReturn gst_deinterlace_output_frame (GstDeinterlace * self, gboolean flushing) { GstClockTime timestamp; - GstFlowReturn ret = GST_FLOW_OK; - gint fields_required = 0; - gint cur_field_idx = 0; + GstFlowReturn ret; + gint fields_required; GstBuffer *buf, *outbuf; + GstDeinterlaceField *field1, *field2; + GstDeinterlaceInterlacingMethod interlacing_method; + guint8 buf_state; + gboolean hl_no_lock; /* indicates high latency timestamp adjustment but no pattern lock (could be ONEF or I) */ + gboolean same_buffer; /* are field1 and field2 in the same buffer? */ + gboolean flush_one; /* used for flushing one field when in high latency mode and not locked */ + TelecinePattern pattern; + guint8 phase, count; + const GstDeinterlaceLocking locking = self->locking; + +restart: + ret = GST_FLOW_OK; + fields_required = 0; + hl_no_lock = FALSE; + same_buffer = FALSE; + flush_one = FALSE; + self->need_more = FALSE; + phase = self->pattern_phase; + count = self->pattern_count; + + if (!self->history_count) { + GST_DEBUG_OBJECT (self, "History is empty, waiting for more buffers!"); + goto need_more; + } - gst_deinterlace_set_method (self, self->user_set_method_id); - fields_required = gst_deinterlace_method_get_fields_required (self->method); - - if (self->history_count < fields_required) { - if (flushing) { - /* FIXME: if there are any methods implemented that output different - * dimensions (e.g. half height) that require more than one field of - * history, it is desirable to degrade to something that outputs - * half-height also */ - gst_deinterlace_set_method (self, - self->history_count >= 2 ? - GST_DEINTERLACE_VFIR : GST_DEINTERLACE_LINEAR); + field1 = &self->field_history[self->history_count - 1]; + + if (locking != GST_DEINTERLACE_LOCKING_NONE) { + if (!self->state_count) { + GST_ERROR_OBJECT (self, + "BROKEN! Fields in history + no states should not happen!"); + return GST_FLOW_ERROR; + } + + gst_deinterlace_get_buffer_state (self, field1->buf, &buf_state, + &interlacing_method); + + if (self->pattern != -1) + pattern = telecine_patterns[self->pattern]; + + /* patterns 0 and 1 are interlaced, the rest are telecine */ + if (self->pattern > 1) + interlacing_method = GST_DEINTERLACE_TELECINE; + + if (self->pattern == -1 || self->pattern_refresh + || !(buf_state & pattern.states[(phase + count) % pattern.length])) { + /* no pattern, pattern refresh set or unexpected buffer state */ + self->pattern_lock = FALSE; + self->pattern_refresh = TRUE; + + /* refresh pattern lock */ + gst_deinterlace_get_pattern_lock (self, &flush_one); + + if (self->pattern != -1) { + /* locked onto a valid pattern so refresh complete */ + GST_DEBUG_OBJECT (self, "Pattern locked! %s starting at %d", + telecine_patterns[self->pattern].nick, self->pattern_phase); + self->pattern_refresh = FALSE; + } else if (!self->low_latency) { + if (!self->pattern_lock) { + goto need_more; + } else { + hl_no_lock = TRUE; + } + } + + /* setcaps on sink and src pads */ + gst_deinterlace_setcaps (self->sinkpad, GST_PAD_CAPS (self->sinkpad)); + + if (flush_one && self->drop_orphans) { + GST_DEBUG_OBJECT (self, "Dropping orphan first field"); + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + goto restart; + } + } + } else { + gst_deinterlace_get_buffer_state (self, field1->buf, NULL, + &interlacing_method); + } + + same_buffer = self->history_count >= 2 + && (GST_BUFFER_DATA (field1->buf) == + GST_BUFFER_DATA (self->field_history[self->history_count - 2].buf)); + + if ((flushing && self->history_count == 1) || (flush_one + && !self->drop_orphans) || (hl_no_lock && (self->history_count == 1 + || !same_buffer))) { + GST_DEBUG_OBJECT (self, "Flushing one field using linear method"); + gst_deinterlace_set_method (self, GST_DEINTERLACE_LINEAR); + fields_required = gst_deinterlace_method_get_fields_required (self->method); + } else if (interlacing_method == GST_DEINTERLACE_TELECINE + && (self->low_latency > 0 || self->pattern != -1 || (hl_no_lock + && same_buffer + && GST_BUFFER_FLAG_IS_SET (field1->buf, + GST_VIDEO_BUFFER_PROGRESSIVE)))) { + /* telecined - we reconstruct frames by weaving pairs of fields */ + fields_required = 2; + if (!flushing && self->history_count < fields_required) { + GST_DEBUG_OBJECT (self, "Need more fields (have %d, need %d)", + self->history_count, self->cur_field_idx + fields_required); + goto need_more; + } + + field2 = &self->field_history[self->history_count - 2]; + if (!gst_deinterlace_fix_timestamps (self, field1, field2) && !flushing) + goto need_more; + + if (same_buffer) { + /* telecine progressive */ + GstBuffer *field1_buf; + + GST_DEBUG_OBJECT (self, + "Frame type: Telecine Progressive; pushing buffer as a frame"); + /* pop and push */ + self->cur_field_idx--; + field1_buf = gst_deinterlace_pop_history (self); + /* field2 is the same buffer as field1, but we need to remove it from + * the history anyway */ + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + /* set the caps from the src pad on the buffer as they should be correct */ + gst_buffer_set_caps (field1_buf, GST_PAD_CAPS (self->srcpad)); + GST_DEBUG_OBJECT (self, + "[OUT] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1_buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (field1_buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1_buf) + + GST_BUFFER_DURATION (field1_buf))); + return gst_pad_push (self->srcpad, field1_buf); + } else { + /* telecine fields in separate buffers */ + + /* check field1 and field2 buffer caps and flags are corresponding */ + if (field1->flags == field2->flags) { + /* ERROR - fields are of same parity - what should be done here? + * perhaps deinterlace the tip field and start again? */ + GST_ERROR_OBJECT (self, "Telecine mixed with fields of same parity!"); + } + GST_DEBUG_OBJECT (self, + "Frame type: Telecine Mixed; weaving tip two fields into a frame"); + /* set method to WEAVE */ + gst_deinterlace_set_method (self, GST_DEINTERLACE_WEAVE); + } + } else if (interlacing_method == GST_DEINTERLACE_INTERLACED || (hl_no_lock + && interlacing_method == GST_DEINTERLACE_TELECINE && same_buffer + && !GST_BUFFER_FLAG_IS_SET (field1->buf, + GST_VIDEO_BUFFER_PROGRESSIVE))) { + gst_deinterlace_set_method (self, self->user_set_method_id); + fields_required = gst_deinterlace_method_get_fields_required (self->method); + if (flushing && self->history_count < fields_required) { + /* note: we already checked for flushing with history count == 1 above + * so we must have 2 or more fields in here */ + gst_deinterlace_set_method (self, GST_DEINTERLACE_VFIR); fields_required = gst_deinterlace_method_get_fields_required (self->method); GST_DEBUG_OBJECT (self, "Flushing field(s) using %s method", methods_types[self->method_id].value_nick); - } else { - /* Not enough fields in the history */ + } + + /* Not enough fields in the history */ + if (!flushing && self->history_count < fields_required) { GST_DEBUG_OBJECT (self, "Need more fields (have %d, need %d)", - self->history_count, fields_required); - return GST_FLOW_OK; + self->history_count, self->cur_field_idx + fields_required); + goto need_more; } - } - while (self->history_count >= fields_required) { - if (self->fields == GST_DEINTERLACE_ALL) - GST_DEBUG_OBJECT (self, "All fields"); - else if (self->fields == GST_DEINTERLACE_TF) - GST_DEBUG_OBJECT (self, "Top fields"); - else if (self->fields == GST_DEINTERLACE_BF) - GST_DEBUG_OBJECT (self, "Bottom fields"); - - cur_field_idx = self->history_count - fields_required; - - if ((self->field_history[cur_field_idx].flags == PICTURE_INTERLACED_TOP - && self->fields == GST_DEINTERLACE_TF) || - self->fields == GST_DEINTERLACE_ALL) { - GST_DEBUG_OBJECT (self, "deinterlacing top field"); - - /* create new buffer */ - ret = - gst_pad_alloc_buffer (self->srcpad, GST_BUFFER_OFFSET_NONE, - self->frame_size, GST_PAD_CAPS (self->srcpad), &outbuf); - if (ret != GST_FLOW_OK) - return ret; + GST_DEBUG_OBJECT (self, + "Frame type: Interlaced; deinterlacing using %s method", + methods_types[self->method_id].value_nick); + } else { + GstBuffer *field1_buf; - if (GST_PAD_CAPS (self->srcpad) != GST_BUFFER_CAPS (outbuf) - && !gst_caps_is_equal (GST_PAD_CAPS (self->srcpad), - GST_BUFFER_CAPS (outbuf))) { - gst_caps_replace (&self->request_caps, GST_BUFFER_CAPS (outbuf)); - GST_DEBUG_OBJECT (self, "Upstream wants new caps %" GST_PTR_FORMAT, - self->request_caps); + /* progressive */ + fields_required = 2; - gst_buffer_unref (outbuf); - outbuf = gst_buffer_try_new_and_alloc (self->frame_size); + /* Not enough fields in the history */ + if (!flushing && self->history_count < fields_required) { + GST_DEBUG_OBJECT (self, "Need more fields (have %d, need %d)", + self->history_count, self->cur_field_idx + fields_required); + goto need_more; + } - if (!outbuf) - return GST_FLOW_ERROR; + field2 = &self->field_history[self->history_count - 2]; + if (GST_BUFFER_DATA (field1->buf) != GST_BUFFER_DATA (field2->buf)) { + /* ERROR - next two fields in field history are not one progressive buffer - weave? */ + GST_ERROR_OBJECT (self, + "Progressive buffer but two fields at tip aren't in the same buffer!"); + } - gst_buffer_set_caps (outbuf, GST_PAD_CAPS (self->srcpad)); - } + GST_DEBUG_OBJECT (self, + "Frame type: Progressive; pushing buffer as a frame"); + /* pop and push */ + self->cur_field_idx--; + field1_buf = gst_deinterlace_pop_history (self); + /* field2 is the same buffer as field1, but we need to remove it from the + * history anyway */ + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + GST_DEBUG_OBJECT (self, + "[OUT] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1_buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (field1_buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1_buf) + + GST_BUFFER_DURATION (field1_buf))); + return gst_pad_push (self->srcpad, field1_buf); + } + + if (!flushing && self->cur_field_idx < 1) { + goto need_more; + } + + if (self->fields == GST_DEINTERLACE_ALL + || interlacing_method == GST_DEINTERLACE_TELECINE) + GST_DEBUG_OBJECT (self, "All fields"); + else if (self->fields == GST_DEINTERLACE_TF) + GST_DEBUG_OBJECT (self, "Top fields"); + else if (self->fields == GST_DEINTERLACE_BF) + GST_DEBUG_OBJECT (self, "Bottom fields"); + + if ((self->field_history[self->cur_field_idx].flags == PICTURE_INTERLACED_TOP + && (self->fields == GST_DEINTERLACE_TF + || interlacing_method == GST_DEINTERLACE_TELECINE)) + || self->fields == GST_DEINTERLACE_ALL) { + GST_DEBUG_OBJECT (self, "deinterlacing top field"); + + /* create new buffer */ + ret = + gst_pad_alloc_buffer (self->srcpad, GST_BUFFER_OFFSET_NONE, + self->frame_size, GST_PAD_CAPS (self->srcpad), &outbuf); + if (ret != GST_FLOW_OK) + return ret; + + if (GST_PAD_CAPS (self->srcpad) != GST_BUFFER_CAPS (outbuf) && + !gst_caps_is_equal (GST_PAD_CAPS (self->srcpad), + GST_BUFFER_CAPS (outbuf))) { + gst_caps_replace (&self->request_caps, GST_BUFFER_CAPS (outbuf)); + GST_DEBUG_OBJECT (self, "Upstream wants new caps %" GST_PTR_FORMAT, + self->request_caps); + + gst_buffer_unref (outbuf); + outbuf = gst_buffer_try_new_and_alloc (self->frame_size); + + if (!outbuf) + return GST_FLOW_ERROR; + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (self->srcpad)); + } - g_return_val_if_fail (self->history_count - 1 - - gst_deinterlace_method_get_latency (self->method) >= 0, - GST_FLOW_ERROR); + g_return_val_if_fail (self->history_count >= + 1 + gst_deinterlace_method_get_latency (self->method), GST_FLOW_ERROR); - buf = - self->field_history[self->history_count - 1 - - gst_deinterlace_method_get_latency (self->method)].buf; + buf = + self->field_history[self->history_count - 1 - + gst_deinterlace_method_get_latency (self->method)].buf; + + if (interlacing_method != GST_DEINTERLACE_TELECINE) { timestamp = GST_BUFFER_TIMESTAMP (buf); GST_BUFFER_TIMESTAMP (outbuf) = timestamp; @@ -1028,79 +1721,139 @@ gst_deinterlace_output_frame (GstDeinterlace * self, gboolean flushing) GST_BUFFER_DURATION (outbuf) = self->field_duration; else GST_BUFFER_DURATION (outbuf) = 2 * self->field_duration; + } else { + GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buf); + } - /* Check if we need to drop the frame because of QoS */ - if (!gst_deinterlace_do_qos (self, GST_BUFFER_TIMESTAMP (buf))) { - gst_buffer_unref (gst_deinterlace_pop_history (self)); - gst_buffer_unref (outbuf); - outbuf = NULL; - ret = GST_FLOW_OK; - } else { - /* do magic calculus */ - gst_deinterlace_method_deinterlace_frame (self->method, - self->field_history, self->history_count, outbuf); - - gst_buffer_unref (gst_deinterlace_pop_history (self)); - - if (gst_deinterlace_clip_buffer (self, outbuf)) { - ret = gst_pad_push (self->srcpad, outbuf); - } else { - ret = GST_FLOW_OK; - gst_buffer_unref (outbuf); + /* Check if we need to drop the frame because of QoS */ + if (!gst_deinterlace_do_qos (self, GST_BUFFER_TIMESTAMP (buf))) { + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + gst_buffer_unref (outbuf); + outbuf = NULL; + ret = GST_FLOW_OK; + } else { + if (self->cur_field_idx < 0 && flushing) { + if (self->history_count == 1) { + gst_buffer_unref (gst_deinterlace_pop_history (self)); + goto need_more; } - - outbuf = NULL; - if (ret != GST_FLOW_OK) - return ret; + self->cur_field_idx++; + } + if (self->cur_field_idx < 0) { + goto need_more; + } + if (!flushing && self->cur_field_idx < 1) { + goto need_more; } - } - /* no calculation done: remove excess field */ - else if (self->field_history[cur_field_idx].flags == - PICTURE_INTERLACED_TOP && self->fields == GST_DEINTERLACE_BF) { - GST_DEBUG_OBJECT (self, "Removing unused top field"); - gst_buffer_unref (gst_deinterlace_pop_history (self)); - } - cur_field_idx = self->history_count - fields_required; - if (self->history_count < fields_required) - break; + /* do magic calculus */ + gst_deinterlace_method_deinterlace_frame (self->method, + self->field_history, self->history_count, outbuf, + self->cur_field_idx); + + self->cur_field_idx--; + if (self->cur_field_idx + 1 + + gst_deinterlace_method_get_latency (self->method) + < self->history_count || flushing) { + gst_buffer_unref (gst_deinterlace_pop_history (self)); + } - /* deinterlace bottom_field */ - if ((self->field_history[cur_field_idx].flags == PICTURE_INTERLACED_BOTTOM - && self->fields == GST_DEINTERLACE_BF) || - self->fields == GST_DEINTERLACE_ALL) { - GST_DEBUG_OBJECT (self, "deinterlacing bottom field"); + if (gst_deinterlace_clip_buffer (self, outbuf)) { + GST_DEBUG_OBJECT (self, + "[OUT] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf) + + GST_BUFFER_DURATION (outbuf))); + ret = gst_pad_push (self->srcpad, outbuf); + } else { + ret = GST_FLOW_OK; + gst_buffer_unref (outbuf); + } - /* create new buffer */ - ret = - gst_pad_alloc_buffer (self->srcpad, GST_BUFFER_OFFSET_NONE, - self->frame_size, GST_PAD_CAPS (self->srcpad), &outbuf); + outbuf = NULL; if (ret != GST_FLOW_OK) return ret; + if (interlacing_method == GST_DEINTERLACE_TELECINE + && self->method_id == GST_DEINTERLACE_WEAVE) { + /* pop off the second field */ + GST_DEBUG_OBJECT (self, "Removing unused field (count: %d)", + self->history_count); + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + interlacing_method = GST_DEINTERLACE_INTERLACED; + return ret; + } + } - if (GST_PAD_CAPS (self->srcpad) != GST_BUFFER_CAPS (outbuf) - && !gst_caps_is_equal (GST_PAD_CAPS (self->srcpad), - GST_BUFFER_CAPS (outbuf))) { - gst_caps_replace (&self->request_caps, GST_BUFFER_CAPS (outbuf)); - GST_DEBUG_OBJECT (self, "Upstream wants new caps %" GST_PTR_FORMAT, - self->request_caps); + if (flush_one && !self->drop_orphans) { + GST_DEBUG_OBJECT (self, "Orphan field deinterlaced - reconfiguring"); + goto restart; + } + } + /* no calculation done: remove excess field */ + else if (self->field_history[self->cur_field_idx].flags == + PICTURE_INTERLACED_TOP && (self->fields == GST_DEINTERLACE_BF + && interlacing_method != GST_DEINTERLACE_TELECINE)) { + GST_DEBUG_OBJECT (self, "Removing unused top field"); + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + + if (flush_one && !self->drop_orphans) { + GST_DEBUG_OBJECT (self, "Orphan field deinterlaced - reconfiguring"); + goto restart; + } + } - gst_buffer_unref (outbuf); - outbuf = gst_buffer_try_new_and_alloc (self->frame_size); + if (self->history_count < fields_required) + return ret; - if (!outbuf) - return GST_FLOW_ERROR; + if (self->cur_field_idx < 0) + return ret; - gst_buffer_set_caps (outbuf, GST_PAD_CAPS (self->srcpad)); - } + if (!flushing && self->cur_field_idx < 1) { + return ret; + } - g_return_val_if_fail (self->history_count - 1 - - gst_deinterlace_method_get_latency (self->method) >= 0, - GST_FLOW_ERROR); + /* deinterlace bottom_field */ + if ((self->field_history[self->cur_field_idx].flags == + PICTURE_INTERLACED_BOTTOM && (self->fields == GST_DEINTERLACE_BF + || interlacing_method == GST_DEINTERLACE_TELECINE)) + || self->fields == GST_DEINTERLACE_ALL) { + GST_DEBUG_OBJECT (self, "deinterlacing bottom field"); + + /* create new buffer */ + ret = + gst_pad_alloc_buffer (self->srcpad, GST_BUFFER_OFFSET_NONE, + self->frame_size, GST_PAD_CAPS (self->srcpad), &outbuf); + if (ret != GST_FLOW_OK) + return ret; + + if (GST_PAD_CAPS (self->srcpad) != GST_BUFFER_CAPS (outbuf) && + !gst_caps_is_equal (GST_PAD_CAPS (self->srcpad), + GST_BUFFER_CAPS (outbuf))) { + gst_caps_replace (&self->request_caps, GST_BUFFER_CAPS (outbuf)); + GST_DEBUG_OBJECT (self, "Upstream wants new caps %" GST_PTR_FORMAT, + self->request_caps); + + gst_buffer_unref (outbuf); + outbuf = gst_buffer_try_new_and_alloc (self->frame_size); + + if (!outbuf) + return GST_FLOW_ERROR; + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (self->srcpad)); + } - buf = - self->field_history[self->history_count - 1 - - gst_deinterlace_method_get_latency (self->method)].buf; + g_return_val_if_fail (self->history_count - 1 - + gst_deinterlace_method_get_latency (self->method) >= 0, GST_FLOW_ERROR); + + buf = + self->field_history[self->history_count - 1 - + gst_deinterlace_method_get_latency (self->method)].buf; + if (interlacing_method != GST_DEINTERLACE_TELECINE) { timestamp = GST_BUFFER_TIMESTAMP (buf); GST_BUFFER_TIMESTAMP (outbuf) = timestamp; @@ -1108,47 +1861,120 @@ gst_deinterlace_output_frame (GstDeinterlace * self, gboolean flushing) GST_BUFFER_DURATION (outbuf) = self->field_duration; else GST_BUFFER_DURATION (outbuf) = 2 * self->field_duration; + } else { + GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buf); + } - /* Check if we need to drop the frame because of QoS */ - if (!gst_deinterlace_do_qos (self, GST_BUFFER_TIMESTAMP (buf))) { + /* Check if we need to drop the frame because of QoS */ + if (!gst_deinterlace_do_qos (self, GST_BUFFER_TIMESTAMP (buf))) { + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + gst_buffer_unref (outbuf); + outbuf = NULL; + ret = GST_FLOW_OK; + } else { + /* do magic calculus */ + gst_deinterlace_method_deinterlace_frame (self->method, + self->field_history, self->history_count, outbuf, + self->cur_field_idx); + + self->cur_field_idx--; + if (self->cur_field_idx + 1 + + gst_deinterlace_method_get_latency (self->method) + < self->history_count) { gst_buffer_unref (gst_deinterlace_pop_history (self)); - gst_buffer_unref (outbuf); - outbuf = NULL; - ret = GST_FLOW_OK; + } + + if (gst_deinterlace_clip_buffer (self, outbuf)) { + GST_DEBUG_OBJECT (self, + "[OUT] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf) + + GST_BUFFER_DURATION (outbuf))); + ret = gst_pad_push (self->srcpad, outbuf); } else { - /* do magic calculus */ - gst_deinterlace_method_deinterlace_frame (self->method, - self->field_history, self->history_count, outbuf); + ret = GST_FLOW_OK; + gst_buffer_unref (outbuf); + } + outbuf = NULL; + if (ret != GST_FLOW_OK) + return ret; + if (interlacing_method == GST_DEINTERLACE_TELECINE + && self->method_id == GST_DEINTERLACE_WEAVE) { + /* pop off the second field */ + GST_DEBUG_OBJECT (self, "Removing unused field (count: %d)", + self->history_count); + self->cur_field_idx--; gst_buffer_unref (gst_deinterlace_pop_history (self)); - - if (gst_deinterlace_clip_buffer (self, outbuf)) { - ret = gst_pad_push (self->srcpad, outbuf); - } else { - ret = GST_FLOW_OK; - gst_buffer_unref (outbuf); - } - - outbuf = NULL; - if (ret != GST_FLOW_OK) - return ret; + interlacing_method = GST_DEINTERLACE_INTERLACED; + return ret; } } - /* no calculation done: remove excess field */ - else if (self->field_history[cur_field_idx].flags == - PICTURE_INTERLACED_BOTTOM && self->fields == GST_DEINTERLACE_TF) { - GST_DEBUG_OBJECT (self, "Removing unused bottom field"); - gst_buffer_unref (gst_deinterlace_pop_history (self)); + + if (flush_one && !self->drop_orphans) { + GST_DEBUG_OBJECT (self, "Orphan field deinterlaced - reconfiguring"); + goto restart; + } + } + /* no calculation done: remove excess field */ + else if (self->field_history[self->cur_field_idx].flags == + PICTURE_INTERLACED_BOTTOM && (self->fields == GST_DEINTERLACE_TF + && interlacing_method != GST_DEINTERLACE_TELECINE)) { + GST_DEBUG_OBJECT (self, "Removing unused bottom field"); + self->cur_field_idx--; + gst_buffer_unref (gst_deinterlace_pop_history (self)); + + if (flush_one && !self->drop_orphans) { + GST_DEBUG_OBJECT (self, "Orphan field deinterlaced - reconfiguring"); + goto restart; } } return ret; + +need_more: + self->need_more = TRUE; + return ret; +} + +static gboolean +gst_deinterlace_get_latency (GstDeinterlace * self) +{ + if (self->locking == GST_DEINTERLACE_LOCKING_AUTO) { + gboolean res; + GstQuery *query; + + query = gst_query_new_latency (); + if ((res = gst_pad_peer_query (self->sinkpad, query))) { + gboolean is_live; + /* if upstream is live, we use low-latency passive locking mode + * else high-latency active locking mode */ + gst_query_parse_latency (query, &is_live, NULL, NULL); + GST_DEBUG_OBJECT (self, "Latency query indicates stream is %s", + is_live ? "live - using passive locking" : + "not live - using active locking"); + gst_query_unref (query); + return is_live; + } else { + /* conservatively use passive locking if the query fails */ + GST_WARNING_OBJECT (self, + "Latency query failed - fall back to using passive locking"); + gst_query_unref (query); + return TRUE; + } + } else { + return self->locking - 2; + } } static GstFlowReturn gst_deinterlace_chain (GstPad * pad, GstBuffer * buf) { GstDeinterlace *self = GST_DEINTERLACE (GST_PAD_PARENT (pad)); + GstFlowReturn ret = GST_FLOW_OK; GST_OBJECT_LOCK (self); if (self->reconfigure) { @@ -1166,8 +1992,23 @@ gst_deinterlace_chain (GstPad * pad, GstBuffer * buf) GST_OBJECT_UNLOCK (self); } - if (self->still_frame_mode || self->passthrough) + GST_DEBUG_OBJECT (self, + "[IN] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf))); + + if (self->still_frame_mode || self->passthrough) { + GST_DEBUG_OBJECT (self, + "Frame type: Progressive?; pushing buffer using pass-through"); + GST_DEBUG_OBJECT (self, + "[OUT] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf))); + return gst_pad_push (self->srcpad, buf); + } if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) { GST_DEBUG_OBJECT (self, "DISCONT buffer, resetting history"); @@ -1177,7 +2018,11 @@ gst_deinterlace_chain (GstPad * pad, GstBuffer * buf) gst_deinterlace_push_history (self, buf); buf = NULL; - return gst_deinterlace_output_frame (self, FALSE); + do { + ret = gst_deinterlace_output_frame (self, FALSE); + } while (!self->need_more && self->history_count > 0 && ret == GST_FLOW_OK); + + return ret; } static gint @@ -1245,8 +2090,6 @@ gst_deinterlace_getcaps (GstPad * pad) const GstCaps *ourcaps; GstCaps *peercaps; - GST_OBJECT_LOCK (self); - otherpad = (pad == self->srcpad) ? self->sinkpad : self->srcpad; ourcaps = gst_pad_get_pad_template_caps (pad); @@ -1260,8 +2103,6 @@ gst_deinterlace_getcaps (GstPad * pad) ret = gst_caps_copy (ourcaps); } - GST_OBJECT_UNLOCK (self); - for (len = gst_caps_get_size (ret); len > 0; len--) { GstStructure *s = gst_caps_get_structure (ret, len - 1); @@ -1386,6 +2227,23 @@ gst_deinterlace_setcaps (GstPad * pad, GstCaps * caps) gboolean res = TRUE; GstDeinterlace *self = GST_DEINTERLACE (gst_pad_get_parent (pad)); GstCaps *srccaps; + GstDeinterlaceInterlacingMethod interlacing_method; + + if (self->locking != GST_DEINTERLACE_LOCKING_NONE) { + if (self->low_latency == -1) + self->low_latency = gst_deinterlace_get_latency (self); + + if (self->pattern_lock) { + /* refresh has been successful - we have a lock now */ + self->pattern_refresh = FALSE; + } else { + /* if we were not refreshing (!pattern_refresh) the caps have changed + * so we need to refresh and we don't have a lock anymore + * otherwise we have pattern_fresh and !pattern_lock anyway */ + self->pattern_refresh = TRUE; + self->pattern_lock = FALSE; + } + } res = gst_video_format_parse_caps (caps, &self->format, &self->width, @@ -1398,27 +2256,51 @@ gst_deinterlace_setcaps (GstPad * pad, GstCaps * caps) gst_deinterlace_update_passthrough (self); - if (!self->passthrough && self->fields == GST_DEINTERLACE_ALL) { - gint fps_n = self->fps_n, fps_d = self->fps_d; - - if (!gst_fraction_double (&fps_n, &fps_d, FALSE)) - goto invalid_caps; + interlacing_method = gst_deinterlace_get_interlacing_method (caps); + if (self->pattern_lock) { srccaps = gst_caps_copy (caps); - - gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, fps_n, - fps_d, NULL); + if (self->pattern != -1 + && G_UNLIKELY (!gst_util_fraction_multiply (self->fps_n, self->fps_d, + telecine_patterns[self->pattern].ratio_n, + telecine_patterns[self->pattern].ratio_d, &self->fps_n, + &self->fps_d))) + GST_ERROR_OBJECT (self, + "Multiplying the framerate by the telecine pattern ratio overflowed!"); + gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, self->fps_n, + self->fps_d, NULL); + } else if (self->low_latency > 0) { + if (interlacing_method == GST_DEINTERLACE_TELECINE) { + /* for initial buffers of a telecine pattern, until there is a lock we + * we output naïvely adjusted timestamps */ + srccaps = gst_caps_copy (caps); + gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, 0, 1, NULL); + } else if (!self->passthrough && self->fields == GST_DEINTERLACE_ALL) { + gint fps_n = self->fps_n, fps_d = self->fps_d; + + if (!gst_fraction_double (&fps_n, &fps_d, FALSE)) + goto invalid_caps; + + srccaps = gst_caps_copy (caps); + + gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, fps_n, + fps_d, NULL); + } else { + srccaps = gst_caps_ref (caps); + } } else { + /* in high latency pattern locking mode if we don't have a pattern lock, + * the sink pad caps are the best we know */ srccaps = gst_caps_ref (caps); } if (self->mode != GST_DEINTERLACE_MODE_DISABLED) { srccaps = gst_caps_make_writable (srccaps); + gst_structure_remove_field (gst_caps_get_structure (srccaps, 0), + "interlacing-method"); gst_caps_set_simple (srccaps, "interlaced", G_TYPE_BOOLEAN, FALSE, NULL); } - gst_deinterlace_reset_history (self, FALSE); - if (!gst_pad_set_caps (self->srcpad, srccaps)) goto caps_not_accepted; @@ -1475,8 +2357,8 @@ gst_deinterlace_sink_event (GstPad * pad, GstEvent * event) gint64 start, end, base; gdouble rate, applied_rate; - gst_event_parse_new_segment_full (event, &is_update, &rate, &applied_rate, - &fmt, &start, &end, &base); + gst_event_parse_new_segment_full (event, &is_update, &rate, + &applied_rate, &fmt, &start, &end, &base); gst_deinterlace_reset_qos (self); gst_deinterlace_reset_history (self, FALSE); @@ -1524,6 +2406,7 @@ gst_deinterlace_sink_event (GstPad * pad, GstEvent * event) } /* fall through */ case GST_EVENT_EOS: + self->have_eos = TRUE; gst_deinterlace_reset_history (self, FALSE); /* fall through */ diff --git a/gst/deinterlace/gstdeinterlace.h b/gst/deinterlace/gstdeinterlace.h index df996f8..a5a69a3 100644 --- a/gst/deinterlace/gstdeinterlace.h +++ b/gst/deinterlace/gstdeinterlace.h @@ -43,8 +43,6 @@ G_BEGIN_DECLS typedef struct _GstDeinterlace GstDeinterlace; typedef struct _GstDeinterlaceClass GstDeinterlaceClass; -#define GST_DEINTERLACE_MAX_FIELD_HISTORY 10 - typedef enum { GST_DEINTERLACE_TOMSMOCOMP, @@ -79,6 +77,39 @@ typedef enum { GST_DEINTERLACE_MODE_DISABLED } GstDeinterlaceMode; +typedef enum +{ + GST_DEINTERLACE_LOCKING_NONE, + GST_DEINTERLACE_LOCKING_AUTO, + GST_DEINTERLACE_LOCKING_ACTIVE, + GST_DEINTERLACE_LOCKING_PASSIVE, +} GstDeinterlaceLocking; + +#define GST_DEINTERLACE_MAX_FIELD_HISTORY 10 +#define GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY 50 +/* check max field history is large enough */ +#if GST_DEINTERLACE_MAX_FIELD_HISTORY < GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY * 3 +#undef GST_DEINTERLACE_MAX_FIELD_HISTORY +#define GST_DEINTERLACE_MAX_FIELD_HISTORY (GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY * 3) +#endif + +typedef struct _TelecinePattern TelecinePattern; +struct _TelecinePattern +{ + const gchar *nick; + guint8 length; + guint8 ratio_n, ratio_d; + guint8 states[GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY]; +}; + +typedef struct _GstDeinterlaceBufferState GstDeinterlaceBufferState; +struct _GstDeinterlaceBufferState +{ + GstClockTime timestamp; + GstClockTime duration; + guint8 state; +}; + struct _GstDeinterlace { GstElement parent; @@ -92,8 +123,10 @@ struct _GstDeinterlace GstDeinterlaceFields fields; - GstDeinterlaceMethods method_id; /* current state (differs when flushing) */ - GstDeinterlaceMethods user_set_method_id; /* property value */ + /* current state (differs when flushing/inverse telecine using weave) */ + GstDeinterlaceMethods method_id; + /* property value */ + GstDeinterlaceMethods user_set_method_id; GstDeinterlaceMethod *method; GstVideoFormat format; @@ -113,6 +146,7 @@ struct _GstDeinterlace */ GstDeinterlaceField field_history[GST_DEINTERLACE_MAX_FIELD_HISTORY]; guint history_count; + int cur_field_idx; /* Set to TRUE if we're in still frame mode, i.e. just forward all buffers @@ -134,6 +168,24 @@ struct _GstDeinterlace gboolean reconfigure; GstDeinterlaceMode new_mode; GstDeinterlaceFields new_fields; + + GstDeinterlaceLocking locking; + gint low_latency; + gboolean drop_orphans; + gboolean ignore_obscure; + gboolean pattern_lock; + gboolean pattern_refresh; + GstDeinterlaceBufferState buf_states[GST_DEINTERLACE_MAX_BUFFER_STATE_HISTORY]; + gint state_count; + gint pattern; + guint8 pattern_phase; + guint8 pattern_count; + guint8 output_count; + GstClockTime pattern_base_ts; + GstClockTime pattern_buf_dur; + + gboolean need_more; + gboolean have_eos; }; struct _GstDeinterlaceClass diff --git a/gst/deinterlace/gstdeinterlacemethod.c b/gst/deinterlace/gstdeinterlacemethod.c index fe5996b..9927868 100644 --- a/gst/deinterlace/gstdeinterlacemethod.c +++ b/gst/deinterlace/gstdeinterlacemethod.c @@ -206,10 +206,10 @@ gst_deinterlace_method_init (GstDeinterlaceMethod * self) void gst_deinterlace_method_deinterlace_frame (GstDeinterlaceMethod * self, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, int cur_field_idx) { g_assert (self->deinterlace_frame != NULL); - self->deinterlace_frame (self, history, history_count, outbuf); + self->deinterlace_frame (self, history, history_count, outbuf, cur_field_idx); } gint @@ -318,14 +318,13 @@ gst_deinterlace_simple_method_copy_scanline_packed (GstDeinterlaceSimpleMethod * static void gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * method, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, gint cur_field_idx) { GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); GstDeinterlaceScanlineData scanlines; guint8 *dest; - const guint8 *field0, *field1, *field2, *field3; - gint cur_field_idx = history_count - dm_class->fields_required; + const guint8 *field0, *field1, *field2, *fieldp; guint cur_field_flags = history[cur_field_idx].flags; gint i; gint frame_height = self->parent.frame_height; @@ -334,29 +333,29 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * g_assert (self->interpolate_scanline_packed != NULL); g_assert (self->copy_scanline_packed != NULL); + if (cur_field_idx > 0) { + fieldp = GST_BUFFER_DATA (history[cur_field_idx - 1].buf); + } else { + fieldp = NULL; + } + dest = GST_BUFFER_DATA (outbuf); field0 = GST_BUFFER_DATA (history[cur_field_idx].buf); g_assert (dm_class->fields_required <= 4); - if (dm_class->fields_required >= 2) { + if (cur_field_idx + 1 < history_count) { field1 = GST_BUFFER_DATA (history[cur_field_idx + 1].buf); } else { field1 = NULL; } - if (dm_class->fields_required >= 3) { + if (cur_field_idx + 2 < history_count) { field2 = GST_BUFFER_DATA (history[cur_field_idx + 2].buf); } else { field2 = NULL; } - if (dm_class->fields_required >= 4) { - field3 = GST_BUFFER_DATA (history[cur_field_idx + 3].buf); - } else { - field3 = NULL; - } - #define CLAMP_LOW(i) (((i)<0) ? (i+2) : (i)) #define CLAMP_HI(i) (((i)>=(frame_height)) ? (i-2) : (i)) #define LINE(x,i) ((x) + CLAMP_HI(CLAMP_LOW(i)) * (stride)) @@ -368,6 +367,9 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * if (!((i & 1) ^ scanlines.bottom_field)) { /* copying */ + scanlines.tp = LINE2 (fieldp, i - 1); + scanlines.bp = LINE2 (fieldp, i + 1); + scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i); scanlines.m0 = LINE2 (field0, i); scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i)); @@ -379,12 +381,13 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * scanlines.m2 = LINE2 (field2, i); scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t3 = LINE2 (field3, i - 1); - scanlines.b3 = LINE2 (field3, i + 1); - self->copy_scanline_packed (self, LINE (dest, i), &scanlines); } else { /* interpolating */ + scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i); + scanlines.mp = LINE2 (fieldp, i); + scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i)); + scanlines.t0 = LINE2 (field0, i - 1); scanlines.b0 = LINE2 (field0, i + 1); @@ -395,10 +398,6 @@ gst_deinterlace_simple_method_deinterlace_frame_packed (GstDeinterlaceMethod * scanlines.t2 = LINE2 (field2, i - 1); scanlines.b2 = LINE2 (field2, i + 1); - scanlines.tt3 = LINE2 (field3, (i - 2 >= 0) ? i - 2 : i); - scanlines.m3 = LINE2 (field3, i); - scanlines.bb3 = LINE2 (field3, (i + 2 < frame_height ? i + 2 : i)); - self->interpolate_scanline_packed (self, LINE (dest, i), &scanlines); } } @@ -452,7 +451,7 @@ gst_deinterlace_simple_method_copy_scanline_planar_v (GstDeinterlaceSimpleMethod static void gst_deinterlace_simple_method_deinterlace_frame_planar_plane (GstDeinterlaceSimpleMethod * self, guint8 * dest, const guint8 * field0, - const guint8 * field1, const guint8 * field2, const guint8 * field3, + const guint8 * field1, const guint8 * field2, const guint8 * fieldp, guint cur_field_flags, gint plane, GstDeinterlaceSimpleMethodFunction copy_scanline, GstDeinterlaceSimpleMethodFunction interpolate_scanline) @@ -471,6 +470,9 @@ static void if (!((i & 1) ^ scanlines.bottom_field)) { /* copying */ + scanlines.tp = LINE2 (fieldp, i - 1); + scanlines.bp = LINE2 (fieldp, i + 1); + scanlines.tt0 = LINE2 (field0, (i - 2 >= 0) ? i - 2 : i); scanlines.m0 = LINE2 (field0, i); scanlines.bb0 = LINE2 (field0, (i + 2 < frame_height ? i + 2 : i)); @@ -482,12 +484,13 @@ static void scanlines.m2 = LINE2 (field2, i); scanlines.bb2 = LINE2 (field2, (i + 2 < frame_height ? i + 2 : i)); - scanlines.t3 = LINE2 (field3, i - 1); - scanlines.b3 = LINE2 (field3, i + 1); - copy_scanline (self, LINE (dest, i), &scanlines); } else { /* interpolating */ + scanlines.ttp = LINE2 (fieldp, (i - 2 >= 0) ? i - 2 : i); + scanlines.mp = LINE2 (fieldp, i); + scanlines.bbp = LINE2 (fieldp, (i + 2 < frame_height ? i + 2 : i)); + scanlines.t0 = LINE2 (field0, i - 1); scanlines.b0 = LINE2 (field0, i + 1); @@ -498,10 +501,6 @@ static void scanlines.t2 = LINE2 (field2, i - 1); scanlines.b2 = LINE2 (field2, i + 1); - scanlines.tt3 = LINE2 (field3, (i - 2 >= 0) ? i - 2 : i); - scanlines.m3 = LINE2 (field3, i); - scanlines.bb3 = LINE2 (field3, (i + 2 < frame_height ? i + 2 : i)); - interpolate_scanline (self, LINE (dest, i), &scanlines); } } @@ -510,13 +509,12 @@ static void static void gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod * method, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, gint cur_field_idx) { GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); guint8 *out; - const guint8 *field0, *field1, *field2, *field3; - gint cur_field_idx = history_count - dm_class->fields_required; + const guint8 *field0, *field1, *field2, *fieldp; guint cur_field_flags = history[cur_field_idx].flags; gint i, offset; GstDeinterlaceSimpleMethodFunction copy_scanline; @@ -536,27 +534,27 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod * out = GST_BUFFER_DATA (outbuf) + offset; + fieldp = NULL; + if (cur_field_idx > 0) { + fieldp = GST_BUFFER_DATA (history[cur_field_idx - 1].buf) + offset; + } + field0 = GST_BUFFER_DATA (history[cur_field_idx].buf) + offset; g_assert (dm_class->fields_required <= 4); field1 = NULL; - if (dm_class->fields_required >= 2) { + if (cur_field_idx + 1 < history_count) { field1 = GST_BUFFER_DATA (history[cur_field_idx + 1].buf) + offset; } field2 = NULL; - if (dm_class->fields_required >= 3) { + if (cur_field_idx + 2 < history_count) { field2 = GST_BUFFER_DATA (history[cur_field_idx + 2].buf) + offset; } - field3 = NULL; - if (dm_class->fields_required >= 4) { - field3 = GST_BUFFER_DATA (history[cur_field_idx + 3].buf) + offset; - } - gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out, - field0, field1, field2, field3, cur_field_flags, i, copy_scanline, + field0, field1, field2, fieldp, cur_field_flags, i, copy_scanline, interpolate_scanline); } } @@ -564,13 +562,12 @@ gst_deinterlace_simple_method_deinterlace_frame_planar (GstDeinterlaceMethod * static void gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod * method, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, gint cur_field_idx) { GstDeinterlaceSimpleMethod *self = GST_DEINTERLACE_SIMPLE_METHOD (method); GstDeinterlaceMethodClass *dm_class = GST_DEINTERLACE_METHOD_GET_CLASS (self); guint8 *out; - const guint8 *field0, *field1, *field2, *field3; - gint cur_field_idx = history_count - dm_class->fields_required; + const guint8 *field0, *field1, *field2, *fieldp; guint cur_field_flags = history[cur_field_idx].flags; gint i, offset; @@ -582,27 +579,27 @@ gst_deinterlace_simple_method_deinterlace_frame_nv12 (GstDeinterlaceMethod * out = GST_BUFFER_DATA (outbuf) + offset; + fieldp = NULL; + if (cur_field_idx > 0) { + fieldp = GST_BUFFER_DATA (history[cur_field_idx - 1].buf) + offset; + } + field0 = GST_BUFFER_DATA (history[cur_field_idx].buf) + offset; g_assert (dm_class->fields_required <= 4); field1 = NULL; - if (dm_class->fields_required >= 2) { + if (cur_field_idx + 1 < history_count) { field1 = GST_BUFFER_DATA (history[cur_field_idx + 1].buf) + offset; } field2 = NULL; - if (dm_class->fields_required >= 3) { + if (cur_field_idx + 2 < history_count) { field2 = GST_BUFFER_DATA (history[cur_field_idx + 2].buf) + offset; } - field3 = NULL; - if (dm_class->fields_required >= 4) { - field3 = GST_BUFFER_DATA (history[cur_field_idx + 3].buf) + offset; - } - gst_deinterlace_simple_method_deinterlace_frame_planar_plane (self, out, - field0, field1, field2, field3, cur_field_flags, i, + field0, field1, field2, fieldp, cur_field_flags, i, self->copy_scanline_packed, self->interpolate_scanline_packed); } } diff --git a/gst/deinterlace/gstdeinterlacemethod.h b/gst/deinterlace/gstdeinterlacemethod.h index 11e2c35..a50ecbd 100644 --- a/gst/deinterlace/gstdeinterlacemethod.h +++ b/gst/deinterlace/gstdeinterlacemethod.h @@ -61,7 +61,9 @@ typedef struct * This structure defines the deinterlacer plugin. */ -typedef void (*GstDeinterlaceMethodDeinterlaceFunction) (GstDeinterlaceMethod *self, const GstDeinterlaceField *history, guint history_count, GstBuffer *outbuf); +typedef void (*GstDeinterlaceMethodDeinterlaceFunction) ( + GstDeinterlaceMethod *self, const GstDeinterlaceField *history, + guint history_count, GstBuffer *outbuf, int cur_field_idx); struct _GstDeinterlaceMethod { GstObject parent; @@ -112,7 +114,8 @@ GType gst_deinterlace_method_get_type (void); gboolean gst_deinterlace_method_supported (GType type, GstVideoFormat format, gint width, gint height); void gst_deinterlace_method_setup (GstDeinterlaceMethod * self, GstVideoFormat format, gint width, gint height); -void gst_deinterlace_method_deinterlace_frame (GstDeinterlaceMethod * self, const GstDeinterlaceField * history, guint history_count, GstBuffer * outbuf); +void gst_deinterlace_method_deinterlace_frame (GstDeinterlaceMethod * self, const GstDeinterlaceField * history, guint history_count, GstBuffer * outbuf, + int cur_field_idx); gint gst_deinterlace_method_get_fields_required (GstDeinterlaceMethod * self); gint gst_deinterlace_method_get_latency (GstDeinterlaceMethod * self); @@ -133,32 +136,32 @@ typedef struct _GstDeinterlaceScanlineData GstDeinterlaceScanlineData; */ struct _GstDeinterlaceScanlineData { + const guint8 *ttp, *tp, *mp, *bp, *bbp; const guint8 *tt0, *t0, *m0, *b0, *bb0; const guint8 *tt1, *t1, *m1, *b1, *bb1; const guint8 *tt2, *t2, *m2, *b2, *bb2; - const guint8 *tt3, *t3, *m3, *b3, *bb3; gboolean bottom_field; }; /* * For interpolate_scanline the input is: * - * | t-3 t-2 t-1 t - * | Field 3 | Field 2 | Field 1 | Field 0 | - * | TT3 | | TT1 | | + * | t-3 t-2 t-1 t t+1 + * | Field 3 | Field 2 | Field 1 | Field 0 | Field -1 + * | TT3 | | TT1 | | TTp * | | T2 | | T0 | - * | M3 | | M1 | | + * | M3 | | M1 | | Mp * | | B2 | | B0 | - * | BB3 | | BB1 | | + * | BB3 | | BB1 | | BBp * * For copy_scanline the input is: * - * | t-3 t-2 t-1 t - * | Field 3 | Field 2 | Field 1 | Field 0 | + * | t-3 t-2 t-1 t t+1 + * | Field 3 | Field 2 | Field 1 | Field 0 | Field -1 * | | TT2 | | TT0 | - * | T3 | | T1 | | + * | T3 | | T1 | | Tp * | | M2 | | M0 | - * | B3 | | B1 | | + * | B3 | | B1 | | Bp * | | BB2 | | BB0 | * * All other values are NULL. diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c index e1f7ed3..a278f75 100644 --- a/gst/deinterlace/tvtime-dist.c +++ b/gst/deinterlace/tvtime-dist.c @@ -325,7 +325,7 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -468,7 +468,7 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -638,7 +638,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s3, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -921,7 +921,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); diff --git a/gst/deinterlace/tvtime/greedy.c b/gst/deinterlace/tvtime/greedy.c index dcb495b..5775132 100644 --- a/gst/deinterlace/tvtime/greedy.c +++ b/gst/deinterlace/tvtime/greedy.c @@ -72,54 +72,69 @@ static inline void deinterlace_greedy_interpolate_scanline_orc (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME - is this safe or just a hack? */ guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; - deinterlace_line_greedy (out, scanlines->m3, scanlines->t2, scanlines->b2, - scanlines->m1, max_comb, self->parent.row_stride[0]); + if (scanlines->m1 == NULL || scanlines->mp == NULL) { + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, + self->parent.row_stride[0]); + } else { + deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, + scanlines->mp ? scanlines->mp : scanlines->m1, + max_comb, self->parent.row_stride[0]); + } } static inline void deinterlace_greedy_interpolate_scanline_orc_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME - is this safe or just a hack? */ guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; - deinterlace_line_greedy (out, scanlines->m3, scanlines->t2, scanlines->b2, - scanlines->m1, max_comb, self->parent.row_stride[1]); + if (scanlines->m1 == NULL || scanlines->mp == NULL) { + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, + self->parent.row_stride[1]); + } else { + deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, + scanlines->mp ? scanlines->mp : scanlines->m1, + max_comb, self->parent.row_stride[1]); + } } static inline void deinterlace_greedy_interpolate_scanline_orc_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME - is this safe or just a hack? */ guint max_comb = GST_DEINTERLACE_METHOD_GREEDY_L (self)->max_comb; - deinterlace_line_greedy (out, scanlines->m3, scanlines->t2, scanlines->b2, - scanlines->m1, max_comb, self->parent.row_stride[2]); + if (scanlines->m1 == NULL || scanlines->mp == NULL) { + deinterlace_line_linear (out, scanlines->t0, scanlines->b0, + self->parent.row_stride[2]); + } else { + deinterlace_line_greedy (out, scanlines->m1, scanlines->t0, scanlines->b0, + scanlines->mp ? scanlines->mp : scanlines->m1, + max_comb, self->parent.row_stride[2]); + } } static void deinterlace_greedy_copy_scanline (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m2, self->parent.row_stride[0]); + memcpy (out, scanlines->m0, self->parent.row_stride[0]); } static void deinterlace_greedy_copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m2, self->parent.row_stride[1]); + memcpy (out, scanlines->m0, self->parent.row_stride[1]); } static void deinterlace_greedy_copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m2, self->parent.row_stride[2]); + memcpy (out, scanlines->m0, self->parent.row_stride[2]); } G_DEFINE_TYPE (GstDeinterlaceMethodGreedyL, gst_deinterlace_method_greedy_l, @@ -179,7 +194,7 @@ gst_deinterlace_method_greedy_l_class_init (GstDeinterlaceMethodGreedyLClass * "Max Comb", 0, 255, 15, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS) ); - dim_class->fields_required = 4; + dim_class->fields_required = 2; dim_class->name = "Motion Adaptive: Simple Detection"; dim_class->nick = "greedyl"; dim_class->latency = 1; diff --git a/gst/deinterlace/tvtime/greedyh.c b/gst/deinterlace/tvtime/greedyh.c index d1e4fd6..93da8cd 100644 --- a/gst/deinterlace/tvtime/greedyh.c +++ b/gst/deinterlace/tvtime/greedyh.c @@ -719,7 +719,7 @@ greedyh_scanline_C_planar_uv (GstDeinterlaceMethodGreedyH * self, static void deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, int cur_field_idx) { GstDeinterlaceMethodGreedyH *self = GST_DEINTERLACE_METHOD_GREEDY_H (method); GstDeinterlaceMethodGreedyHClass *klass = @@ -736,6 +736,23 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method, guint8 *Dest = GST_BUFFER_DATA (outbuf); ScanlineFunction scanline; + if (cur_field_idx + 2 > history_count || cur_field_idx < 1) { + GstDeinterlaceMethod *backup_method; + + backup_method = g_object_new (gst_deinterlace_method_linear_get_type (), + NULL); + + gst_deinterlace_method_setup (backup_method, method->format, + method->frame_width, method->frame_height); + gst_deinterlace_method_deinterlace_frame (backup_method, + history, history_count, outbuf, cur_field_idx); + + g_object_unref (backup_method); + return; + } + + cur_field_idx += 2; + switch (method->format) { case GST_VIDEO_FORMAT_YUY2: case GST_VIDEO_FORMAT_YVYU: @@ -755,20 +772,20 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method, // copy first even line no matter what, and the first odd line if we're // processing an EVEN field. (note diff from other deint rtns.) - if (history[history_count - 1].flags == PICTURE_INTERLACED_BOTTOM) { + if (history[cur_field_idx - 1].flags == PICTURE_INTERLACED_BOTTOM) { InfoIsOdd = 1; - L1 = GST_BUFFER_DATA (history[history_count - 2].buf); - if (history[history_count - 2].flags & PICTURE_INTERLACED_BOTTOM) + L1 = GST_BUFFER_DATA (history[cur_field_idx - 2].buf); + if (history[cur_field_idx - 2].flags & PICTURE_INTERLACED_BOTTOM) L1 += RowStride; - L2 = GST_BUFFER_DATA (history[history_count - 1].buf); - if (history[history_count - 1].flags & PICTURE_INTERLACED_BOTTOM) + L2 = GST_BUFFER_DATA (history[cur_field_idx - 1].buf); + if (history[cur_field_idx - 1].flags & PICTURE_INTERLACED_BOTTOM) L2 += RowStride; L3 = L1 + Pitch; - L2P = GST_BUFFER_DATA (history[history_count - 3].buf); - if (history[history_count - 3].flags & PICTURE_INTERLACED_BOTTOM) + L2P = GST_BUFFER_DATA (history[cur_field_idx - 3].buf); + if (history[cur_field_idx - 3].flags & PICTURE_INTERLACED_BOTTOM) L2P += RowStride; // copy first even line @@ -776,17 +793,17 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method, Dest += RowStride; } else { InfoIsOdd = 0; - L1 = GST_BUFFER_DATA (history[history_count - 2].buf); - if (history[history_count - 2].flags & PICTURE_INTERLACED_BOTTOM) + L1 = GST_BUFFER_DATA (history[cur_field_idx - 2].buf); + if (history[cur_field_idx - 2].flags & PICTURE_INTERLACED_BOTTOM) L1 += RowStride; - L2 = GST_BUFFER_DATA (history[history_count - 1].buf) + Pitch; - if (history[history_count - 1].flags & PICTURE_INTERLACED_BOTTOM) + L2 = GST_BUFFER_DATA (history[cur_field_idx - 1].buf) + Pitch; + if (history[cur_field_idx - 1].flags & PICTURE_INTERLACED_BOTTOM) L2 += RowStride; L3 = L1 + Pitch; - L2P = GST_BUFFER_DATA (history[history_count - 3].buf) + Pitch; - if (history[history_count - 3].flags & PICTURE_INTERLACED_BOTTOM) + L2P = GST_BUFFER_DATA (history[cur_field_idx - 3].buf) + Pitch; + if (history[cur_field_idx - 3].flags & PICTURE_INTERLACED_BOTTOM) L2P += RowStride; // copy first even line @@ -858,7 +875,7 @@ deinterlace_frame_di_greedyh_planar_plane (GstDeinterlaceMethodGreedyH * self, static void deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method, const GstDeinterlaceField * history, guint history_count, - GstBuffer * outbuf) + GstBuffer * outbuf, int cur_field_idx) { GstDeinterlaceMethodGreedyH *self = GST_DEINTERLACE_METHOD_GREEDY_H (method); GstDeinterlaceMethodGreedyHClass *klass = @@ -876,10 +893,27 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method, gint Offset; ScanlineFunction scanline; + if (cur_field_idx + 2 > history_count || cur_field_idx < 1) { + GstDeinterlaceMethod *backup_method; + + backup_method = g_object_new (gst_deinterlace_method_linear_get_type (), + NULL); + + gst_deinterlace_method_setup (backup_method, method->format, + method->frame_width, method->frame_height); + gst_deinterlace_method_deinterlace_frame (backup_method, + history, history_count, outbuf, cur_field_idx); + + g_object_unref (backup_method); + return; + } + + cur_field_idx += 2; + for (i = 0; i < 3; i++) { Offset = method->offset[i]; - InfoIsOdd = (history[history_count - 1].flags == PICTURE_INTERLACED_BOTTOM); + InfoIsOdd = (history[cur_field_idx - 1].flags == PICTURE_INTERLACED_BOTTOM); RowStride = method->row_stride[i]; FieldHeight = method->height[i] / 2; Pitch = method->row_stride[i] * 2; @@ -891,17 +925,17 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method, Dest = GST_BUFFER_DATA (outbuf) + Offset; - L1 = GST_BUFFER_DATA (history[history_count - 2].buf) + Offset; - if (history[history_count - 2].flags & PICTURE_INTERLACED_BOTTOM) + L1 = GST_BUFFER_DATA (history[cur_field_idx - 2].buf) + Offset; + if (history[cur_field_idx - 2].flags & PICTURE_INTERLACED_BOTTOM) L1 += RowStride; - L2 = GST_BUFFER_DATA (history[history_count - 1].buf) + Offset; - if (history[history_count - 1].flags & PICTURE_INTERLACED_BOTTOM) + L2 = GST_BUFFER_DATA (history[cur_field_idx - 1].buf) + Offset; + if (history[cur_field_idx - 1].flags & PICTURE_INTERLACED_BOTTOM) L2 += RowStride; L3 = L1 + Pitch; - L2P = GST_BUFFER_DATA (history[history_count - 3].buf) + Offset; - if (history[history_count - 3].flags & PICTURE_INTERLACED_BOTTOM) + L2P = GST_BUFFER_DATA (history[cur_field_idx - 3].buf) + Offset; + if (history[cur_field_idx - 3].flags & PICTURE_INTERLACED_BOTTOM) L2P += RowStride; deinterlace_frame_di_greedyh_planar_plane (self, L1, L2, L3, L2P, Dest, diff --git a/gst/deinterlace/tvtime/linearblend.c b/gst/deinterlace/tvtime/linearblend.c index a343d0f..189e1aa 100644 --- a/gst/deinterlace/tvtime/linearblend.c +++ b/gst/deinterlace/tvtime/linearblend.c @@ -56,7 +56,11 @@ deinterlace_scanline_linear_blend_c (GstDeinterlaceSimpleMethod * self, guint8 * out, const guint8 * t0, const guint8 * b0, const guint8 * m1, gint size) { - deinterlace_line_linear_blend (out, t0, b0, m1, size); + if (m1 == NULL) { + deinterlace_line_linear (out, t0, b0, size); + } else { + deinterlace_line_linear_blend (out, t0, b0, m1, size); + } } static void @@ -96,7 +100,11 @@ deinterlace_scanline_linear_blend2_c (GstDeinterlaceSimpleMethod * self, guint8 * out, const guint8 * m0, const guint8 * t1, const guint8 * b1, gint size) { - deinterlace_line_linear_blend (out, t1, b1, m0, size); + if (t1 == NULL) { + memcpy (out, m0, size); + } else { + deinterlace_line_linear_blend (out, t1, b1, m0, size); + } } static void @@ -145,7 +153,7 @@ static void dim_class->fields_required = 2; dim_class->name = "Blur: Temporal"; dim_class->nick = "linearblend"; - dim_class->latency = 0; + dim_class->latency = 1; dism_class->interpolate_scanline_yuy2 = deinterlace_scanline_linear_blend_packed_c; diff --git a/gst/deinterlace/tvtime/scalerbob.c b/gst/deinterlace/tvtime/scalerbob.c index bac4c62..adc285a 100644 --- a/gst/deinterlace/tvtime/scalerbob.c +++ b/gst/deinterlace/tvtime/scalerbob.c @@ -77,10 +77,10 @@ gst_deinterlace_method_scaler_bob_class_init (GstDeinterlaceMethodScalerBobClass GstDeinterlaceSimpleMethodClass *dism_class = (GstDeinterlaceSimpleMethodClass *) klass; - dim_class->fields_required = 1; + dim_class->fields_required = 2; dim_class->name = "Double lines"; dim_class->nick = "scalerbob"; - dim_class->latency = 0; + dim_class->latency = 1; dism_class->interpolate_scanline_ayuv = deinterlace_scanline_scaler_bob_packed; diff --git a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc index 23903b3..f8ffe1e 100644 --- a/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc +++ b/gst/deinterlace/tvtime/tomsmocomp/TomsMoCompAll.inc @@ -61,7 +61,9 @@ #define SEFUNC(x) Search_Effort_C_##x(src_pitch, dst_pitch, rowsize, pWeaveSrc, pWeaveSrcP, pWeaveDest, IsOdd, pCopySrc, pCopySrcP, FldHeight) #endif -static void FUNCT_NAME(GstDeinterlaceMethod *d_method, const GstDeinterlaceField* history, guint history_count, GstBuffer *outbuf) +static void FUNCT_NAME(GstDeinterlaceMethod *d_method, + const GstDeinterlaceField* history, guint history_count, + GstBuffer *outbuf, int cur_field_idx) { GstDeinterlaceMethodTomsMoComp *self = GST_DEINTERLACE_METHOD_TOMSMOCOMP (d_method); glong SearchEffort = self->search_effort; @@ -78,6 +80,21 @@ static void FUNCT_NAME(GstDeinterlaceMethod *d_method, const GstDeinterlaceField gint rowsize; gint FldHeight; + if (cur_field_idx + 2 > history_count || cur_field_idx < 1) { + GstDeinterlaceMethod *backup_method; + + backup_method = g_object_new (gst_deinterlace_method_linear_get_type(), + NULL); + + gst_deinterlace_method_setup (backup_method, d_method->format, + d_method->frame_width, d_method->frame_height); + gst_deinterlace_method_deinterlace_frame (backup_method, + history, history_count, outbuf, cur_field_idx); + + g_object_unref (backup_method); + return; + } + /* double stride do address just every odd/even scanline */ src_pitch = self->parent.row_stride[0]*2; dst_pitch = self->parent.row_stride[0]; diff --git a/gst/deinterlace/tvtime/vfir.c b/gst/deinterlace/tvtime/vfir.c index c589dd7..6442a82 100644 --- a/gst/deinterlace/tvtime/vfir.c +++ b/gst/deinterlace/tvtime/vfir.c @@ -68,7 +68,11 @@ static inline void deinterlace_c (guint8 * dst, const guint8 * lum_m4, const guint8 * lum_m3, const guint8 * lum_m2, const guint8 * lum_m1, const guint8 * lum, gint size) { - deinterlace_line_vfir (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); + if (lum_m2 == NULL) { + deinterlace_line_linear (dst, lum_m1, lum_m3, size); + } else { + deinterlace_line_vfir (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); + } } static void @@ -127,6 +131,8 @@ deinterlace_line_planar_v_c (GstDeinterlaceSimpleMethod * self, guint8 * dst, deinterlace_c (dst, lum_m4, lum_m3, lum_m2, lum_m1, lum, size); } +#undef BUILD_X86_ASM + #ifdef BUILD_X86_ASM #include "mmx.h" static void @@ -251,7 +257,7 @@ gst_deinterlace_method_vfir_class_init (GstDeinterlaceMethodVFIRClass * klass) dim_class->fields_required = 2; dim_class->name = "Blur Vertical"; dim_class->nick = "vfir"; - dim_class->latency = 0; + dim_class->latency = 1; #ifdef BUILD_X86_ASM if (cpu_flags & ORC_TARGET_MMX_MMX) { diff --git a/gst/deinterlace/tvtime/weave.c b/gst/deinterlace/tvtime/weave.c index 8d49979..1501b1a 100644 --- a/gst/deinterlace/tvtime/weave.c +++ b/gst/deinterlace/tvtime/weave.c @@ -48,28 +48,44 @@ static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[1]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[1]); + } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[2]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[2]); + } } static void @@ -113,7 +129,7 @@ gst_deinterlace_method_weave_class_init (GstDeinterlaceMethodWeaveClass * klass) dim_class->fields_required = 2; dim_class->name = "Weave"; dim_class->nick = "weave"; - dim_class->latency = 0; + dim_class->latency = 1; dism_class->interpolate_scanline_ayuv = deinterlace_scanline_weave_packed; dism_class->interpolate_scanline_yuy2 = deinterlace_scanline_weave_packed; diff --git a/gst/deinterlace/tvtime/weavebff.c b/gst/deinterlace/tvtime/weavebff.c index b96da1f..b11395c 100644 --- a/gst/deinterlace/tvtime/weavebff.c +++ b/gst/deinterlace/tvtime/weavebff.c @@ -48,76 +48,72 @@ static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->b0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->b0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->b0, self->parent.row_stride[1]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[1]); + } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->b0, self->parent.row_stride[2]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[2]); + } } static void copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb2, self->parent.row_stride[0]); - } else { - memcpy (out, scanlines->bb0, self->parent.row_stride[0]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[0]); } static void copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb2, self->parent.row_stride[0]); - } else { - memcpy (out, scanlines->bb0, self->parent.row_stride[0]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[0]); } static void copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb2, self->parent.row_stride[1]); - } else { - memcpy (out, scanlines->bb0, self->parent.row_stride[1]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[1]); } static void copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb2, self->parent.row_stride[2]); - } else { - memcpy (out, scanlines->bb0, self->parent.row_stride[2]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[2]); } G_DEFINE_TYPE (GstDeinterlaceMethodWeaveBFF, gst_deinterlace_method_weave_bff, @@ -131,10 +127,10 @@ gst_deinterlace_method_weave_bff_class_init (GstDeinterlaceMethodWeaveBFFClass * GstDeinterlaceSimpleMethodClass *dism_class = (GstDeinterlaceSimpleMethodClass *) klass; - dim_class->fields_required = 3; + dim_class->fields_required = 2; dim_class->name = "Progressive: Bottom Field First"; dim_class->nick = "weavebff"; - dim_class->latency = 0; + dim_class->latency = 1; dism_class->interpolate_scanline_ayuv = deinterlace_scanline_weave_packed; dism_class->interpolate_scanline_yuy2 = deinterlace_scanline_weave_packed; diff --git a/gst/deinterlace/tvtime/weavetff.c b/gst/deinterlace/tvtime/weavetff.c index b645b0b..3c60613 100644 --- a/gst/deinterlace/tvtime/weavetff.c +++ b/gst/deinterlace/tvtime/weavetff.c @@ -49,76 +49,72 @@ static void deinterlace_scanline_weave_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[0]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[0]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[0]); + } } static void deinterlace_scanline_weave_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[1]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[1]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[1]); + } } static void deinterlace_scanline_weave_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - memcpy (out, scanlines->m1, self->parent.row_stride[2]); + if (scanlines->m1 == NULL) { + memcpy (out, scanlines->t0, self->parent.row_stride[2]); + } else { + memcpy (out, scanlines->m1, self->parent.row_stride[2]); + } } static void copy_scanline_packed (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb0, self->parent.row_stride[0]); - } else { - memcpy (out, scanlines->bb2, self->parent.row_stride[0]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[0]); } static void copy_scanline_planar_y (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb0, self->parent.row_stride[0]); - } else { - memcpy (out, scanlines->bb2, self->parent.row_stride[0]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[0]); } static void copy_scanline_planar_u (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb0, self->parent.row_stride[1]); - } else { - memcpy (out, scanlines->bb2, self->parent.row_stride[1]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[1]); } static void copy_scanline_planar_v (GstDeinterlaceSimpleMethod * self, guint8 * out, const GstDeinterlaceScanlineData * scanlines) { - /* FIXME: original code used m2 and m0 but this looks really bad */ - if (scanlines->bottom_field) { - memcpy (out, scanlines->bb0, self->parent.row_stride[2]); - } else { - memcpy (out, scanlines->bb2, self->parent.row_stride[2]); - } + memcpy (out, scanlines->m0, self->parent.row_stride[2]); } G_DEFINE_TYPE (GstDeinterlaceMethodWeaveTFF, gst_deinterlace_method_weave_tff, @@ -132,10 +128,10 @@ gst_deinterlace_method_weave_tff_class_init (GstDeinterlaceMethodWeaveTFFClass * GstDeinterlaceSimpleMethodClass *dism_class = (GstDeinterlaceSimpleMethodClass *) klass; - dim_class->fields_required = 3; + dim_class->fields_required = 2; dim_class->name = "Progressive: Top Field First"; dim_class->nick = "weavetff"; - dim_class->latency = 0; + dim_class->latency = 1; dism_class->interpolate_scanline_ayuv = deinterlace_scanline_weave_packed; dism_class->interpolate_scanline_yuy2 = deinterlace_scanline_weave_packed; diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in index 28cb532..3a06acb 100644 --- a/gst/effectv/Makefile.in +++ b/gst/effectv/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -118,8 +123,8 @@ am_libgsteffectv_la_OBJECTS = libgsteffectv_la-gsteffectv.lo \ libgsteffectv_la-gstradioac.lo libgsteffectv_la-gststreak.lo \ libgsteffectv_la-gstripple.lo libgsteffectv_la_OBJECTS = $(am_libgsteffectv_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsteffectv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -135,21 +140,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsteffectv_la_SOURCES) DIST_SOURCES = $(libgsteffectv_la_SOURCES) @@ -232,7 +237,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -307,7 +315,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -331,6 +338,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -365,18 +373,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -429,6 +429,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -463,7 +464,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -575,7 +575,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsteffectv.la: $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_DEPENDENCIES) +libgsteffectv.la: $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_DEPENDENCIES) $(EXTRA_libgsteffectv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsteffectv_la_LINK) -rpath $(plugindir) $(libgsteffectv_la_OBJECTS) $(libgsteffectv_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -601,130 +601,114 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsteffectv_la-gsteffectv.lo: gsteffectv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gsteffectv.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gsteffectv.Tpo -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gsteffectv.Tpo $(DEPDIR)/libgsteffectv_la-gsteffectv.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsteffectv.c' object='libgsteffectv_la-gsteffectv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsteffectv.c' object='libgsteffectv_la-gsteffectv.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gsteffectv.lo `test -f 'gsteffectv.c' || echo '$(srcdir)/'`gsteffectv.c libgsteffectv_la-gstedge.lo: gstedge.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstedge.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstedge.Tpo -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstedge.Tpo $(DEPDIR)/libgsteffectv_la-gstedge.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstedge.c' object='libgsteffectv_la-gstedge.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstedge.c' object='libgsteffectv_la-gstedge.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstedge.lo `test -f 'gstedge.c' || echo '$(srcdir)/'`gstedge.c libgsteffectv_la-gstaging.lo: gstaging.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstaging.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstaging.Tpo -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstaging.Tpo $(DEPDIR)/libgsteffectv_la-gstaging.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaging.c' object='libgsteffectv_la-gstaging.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaging.c' object='libgsteffectv_la-gstaging.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstaging.lo `test -f 'gstaging.c' || echo '$(srcdir)/'`gstaging.c libgsteffectv_la-gstdice.lo: gstdice.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstdice.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstdice.Tpo -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstdice.Tpo $(DEPDIR)/libgsteffectv_la-gstdice.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdice.c' object='libgsteffectv_la-gstdice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdice.c' object='libgsteffectv_la-gstdice.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstdice.lo `test -f 'gstdice.c' || echo '$(srcdir)/'`gstdice.c libgsteffectv_la-gstwarp.lo: gstwarp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstwarp.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstwarp.Tpo -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstwarp.Tpo $(DEPDIR)/libgsteffectv_la-gstwarp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwarp.c' object='libgsteffectv_la-gstwarp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwarp.c' object='libgsteffectv_la-gstwarp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstwarp.lo `test -f 'gstwarp.c' || echo '$(srcdir)/'`gstwarp.c libgsteffectv_la-gstshagadelic.lo: gstshagadelic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstshagadelic.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstshagadelic.Tpo -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstshagadelic.Tpo $(DEPDIR)/libgsteffectv_la-gstshagadelic.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshagadelic.c' object='libgsteffectv_la-gstshagadelic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshagadelic.c' object='libgsteffectv_la-gstshagadelic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstshagadelic.lo `test -f 'gstshagadelic.c' || echo '$(srcdir)/'`gstshagadelic.c libgsteffectv_la-gstvertigo.lo: gstvertigo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstvertigo.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstvertigo.Tpo -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstvertigo.Tpo $(DEPDIR)/libgsteffectv_la-gstvertigo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvertigo.c' object='libgsteffectv_la-gstvertigo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvertigo.c' object='libgsteffectv_la-gstvertigo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstvertigo.lo `test -f 'gstvertigo.c' || echo '$(srcdir)/'`gstvertigo.c libgsteffectv_la-gstrev.lo: gstrev.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstrev.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstrev.Tpo -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstrev.Tpo $(DEPDIR)/libgsteffectv_la-gstrev.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrev.c' object='libgsteffectv_la-gstrev.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrev.c' object='libgsteffectv_la-gstrev.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstrev.lo `test -f 'gstrev.c' || echo '$(srcdir)/'`gstrev.c libgsteffectv_la-gstquark.lo: gstquark.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstquark.Tpo -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstquark.Tpo $(DEPDIR)/libgsteffectv_la-gstquark.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstquark.c' object='libgsteffectv_la-gstquark.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstquark.c' object='libgsteffectv_la-gstquark.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c libgsteffectv_la-gstop.lo: gstop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstop.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstop.Tpo -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstop.Tpo $(DEPDIR)/libgsteffectv_la-gstop.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstop.c' object='libgsteffectv_la-gstop.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstop.c' object='libgsteffectv_la-gstop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstop.lo `test -f 'gstop.c' || echo '$(srcdir)/'`gstop.c libgsteffectv_la-gstradioac.lo: gstradioac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstradioac.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstradioac.Tpo -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstradioac.Tpo $(DEPDIR)/libgsteffectv_la-gstradioac.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstradioac.c' object='libgsteffectv_la-gstradioac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstradioac.c' object='libgsteffectv_la-gstradioac.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstradioac.lo `test -f 'gstradioac.c' || echo '$(srcdir)/'`gstradioac.c libgsteffectv_la-gststreak.lo: gststreak.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gststreak.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gststreak.Tpo -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gststreak.Tpo $(DEPDIR)/libgsteffectv_la-gststreak.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreak.c' object='libgsteffectv_la-gststreak.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreak.c' object='libgsteffectv_la-gststreak.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gststreak.lo `test -f 'gststreak.c' || echo '$(srcdir)/'`gststreak.c libgsteffectv_la-gstripple.lo: gstripple.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -MT libgsteffectv_la-gstripple.lo -MD -MP -MF $(DEPDIR)/libgsteffectv_la-gstripple.Tpo -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsteffectv_la-gstripple.Tpo $(DEPDIR)/libgsteffectv_la-gstripple.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstripple.c' object='libgsteffectv_la-gstripple.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstripple.c' object='libgsteffectv_la-gstripple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsteffectv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsteffectv_la_CFLAGS) $(CFLAGS) -c -o libgsteffectv_la-gstripple.lo `test -f 'gstripple.c' || echo '$(srcdir)/'`gstripple.c mostlyclean-libtool: -rm -f *.lo @@ -831,10 +815,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c index 8bd2a85..0661d02 100644 --- a/gst/effectv/gstaging.c +++ b/gst/effectv/gstaging.c @@ -378,10 +378,10 @@ gst_agingtv_base_init (gpointer g_class) "AgingTV adds age to video input using scratches and dust", "Sam Lantinga "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_agingtv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_agingtv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_agingtv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_agingtv_src_template); } static void diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c index bedabe0..a297147 100644 --- a/gst/effectv/gstdice.c +++ b/gst/effectv/gstdice.c @@ -289,10 +289,10 @@ gst_dicetv_base_init (gpointer g_class) "'Dices' the screen up into many small squares", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_dicetv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_dicetv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_dicetv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_dicetv_src_template); } static void diff --git a/gst/effectv/gstedge.c b/gst/effectv/gstedge.c index f4b7762..e41e99f 100644 --- a/gst/effectv/gstedge.c +++ b/gst/effectv/gstedge.c @@ -130,7 +130,7 @@ gst_edgetv_transform (GstBaseTransform * trans, GstBuffer * in, GstBuffer * out) p = *src; q = *(src - 4); - /* difference between the current pixel and right neighbor. */ + /* difference between the current pixel and left neighbor. */ r = ((p & 0xff0000) - (q & 0xff0000)) >> 16; g = ((p & 0xff00) - (q & 0xff00)) >> 8; b = (p & 0xff) - (q & 0xff); @@ -189,8 +189,12 @@ gst_edgetv_transform (GstBaseTransform * trans, GstBuffer * in, GstBuffer * out) dest[width + 3] = v3; dest[width * 2] = v2; dest[width * 2 + 1] = v2; + dest[width * 2 + 2] = 0; + dest[width * 2 + 3] = 0; dest[width * 3] = v2; dest[width * 3 + 1] = v2; + dest[width * 3 + 2] = 0; + dest[width * 3 + 3] = 0; src += 4; dest += 4; @@ -234,10 +238,10 @@ gst_edgetv_base_init (gpointer g_class) "Filter/Effect/Video", "Apply edge detect on video", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_edgetv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_edgetv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_edgetv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_edgetv_src_template); } static void diff --git a/gst/effectv/gstop.c b/gst/effectv/gstop.c index de798dc..29f41f6 100644 --- a/gst/effectv/gstop.c +++ b/gst/effectv/gstop.c @@ -384,10 +384,10 @@ gst_optv_base_init (gpointer g_class) "FUKUCHI, Kentarou , " "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_optv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_optv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_optv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_optv_src_template); } static void diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c index 3b307f2..59f4f2c 100644 --- a/gst/effectv/gstquark.c +++ b/gst/effectv/gstquark.c @@ -274,10 +274,10 @@ gst_quarktv_base_init (gpointer g_class) "Filter/Effect/Video", "Motion dissolver", "FUKUCHI, Kentarou "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_quarktv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_quarktv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_quarktv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_quarktv_src_template); } static void @@ -306,7 +306,4 @@ gst_quarktv_init (GstQuarkTV * filter, GstQuarkTVClass * klass) { filter->planes = PLANES; filter->current_plane = filter->planes - 1; - - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstradioac.c b/gst/effectv/gstradioac.c index 58c1b7b..f417c93 100644 --- a/gst/effectv/gstradioac.c +++ b/gst/effectv/gstradioac.c @@ -134,14 +134,15 @@ enum #define RATIO 0.95 static guint32 palettes[COLORS * PATTERN]; +static gint swap_tab[] = { 2, 1, 0, 3 }; GST_BOILERPLATE (GstRadioacTV, gst_radioactv, GstVideoFilter, GST_TYPE_VIDEO_FILTER); #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define CAPS_STR GST_VIDEO_CAPS_RGBx +#define CAPS_STR GST_VIDEO_CAPS_RGBx "; " GST_VIDEO_CAPS_BGRx #else -#define CAPS_STR GST_VIDEO_CAPS_xBGR +#define CAPS_STR GST_VIDEO_CAPS_xBGR "; " GST_VIDEO_CAPS_xRGB #endif static GstStaticPadTemplate gst_radioactv_src_template = @@ -165,18 +166,20 @@ makePalette (void) #define DELTA (255/(COLORS/2-1)) + /* red, gree, blue */ for (i = 0; i < COLORS / 2; i++) { palettes[i] = i * DELTA; palettes[COLORS + i] = (i * DELTA) << 8; palettes[COLORS * 2 + i] = (i * DELTA) << 16; } for (i = 0; i < COLORS / 2; i++) { - palettes[+i + COLORS / 2] = 255 | (i * DELTA) << 16 | (i * DELTA) << 8; + palettes[i + COLORS / 2] = 255 | (i * DELTA) << 16 | (i * DELTA) << 8; palettes[COLORS + i + COLORS / 2] = (255 << 8) | (i * DELTA) << 16 | i * DELTA; palettes[COLORS * 2 + i + COLORS / 2] = (255 << 16) | (i * DELTA) << 8 | i * DELTA; } + /* white */ for (i = 0; i < COLORS; i++) { palettes[COLORS * 3 + i] = (255 * i / COLORS) * 0x10101; } @@ -341,7 +344,19 @@ gst_radioactv_transform (GstBaseTransform * trans, GstBuffer * in, dest = (guint32 *) GST_BUFFER_DATA (out); GST_OBJECT_LOCK (filter); - palette = &palettes[COLORS * filter->color]; +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + if (filter->format == GST_VIDEO_FORMAT_RGBx) { + palette = &palettes[COLORS * filter->color]; + } else { + palette = &palettes[COLORS * swap_tab[filter->color]]; + } +#else + if (filter->format == GST_VIDEO_FORMAT_xBGR) { + palette = &palettes[COLORS * filter->color]; + } else { + palette = &palettes[COLORS * swap_tab[filter->color]]; + } +#endif diff = filter->diff; if (filter->mode == 3 && filter->trigger) @@ -405,14 +420,12 @@ gst_radioactv_set_caps (GstBaseTransform * btrans, GstCaps * incaps, GstCaps * outcaps) { GstRadioacTV *filter = GST_RADIOACTV (btrans); - GstStructure *structure; gboolean ret = FALSE; - structure = gst_caps_get_structure (incaps, 0); - GST_OBJECT_LOCK (filter); - if (gst_structure_get_int (structure, "width", &filter->width) && - gst_structure_get_int (structure, "height", &filter->height)) { + + if (gst_video_format_parse_caps (incaps, &filter->format, &filter->width, + &filter->height)) { filter->buf_width_blocks = filter->width / 32; if (filter->buf_width_blocks > 255) goto out; @@ -565,10 +578,10 @@ gst_radioactv_base_init (gpointer g_class) "FUKUCHI, Kentarou , " "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_radioactv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_radioactv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_radioactv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_radioactv_src_template); } static void @@ -616,7 +629,4 @@ gst_radioactv_init (GstRadioacTV * filter, GstRadioacTVClass * klass) filter->color = DEFAULT_COLOR; filter->interval = DEFAULT_INTERVAL; filter->trigger = DEFAULT_TRIGGER; - - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstradioac.h b/gst/effectv/gstradioac.h index 34ad8ed..64a425d 100644 --- a/gst/effectv/gstradioac.h +++ b/gst/effectv/gstradioac.h @@ -29,6 +29,7 @@ #include +#include #include G_BEGIN_DECLS @@ -53,6 +54,7 @@ struct _GstRadioacTV /* < private > */ gint width, height; + GstVideoFormat format; gint mode; gint color; diff --git a/gst/effectv/gstrev.c b/gst/effectv/gstrev.c index ad58a8e..a5cc4dd 100644 --- a/gst/effectv/gstrev.c +++ b/gst/effectv/gstrev.c @@ -232,10 +232,10 @@ gst_revtv_base_init (gpointer g_class) "A video waveform monitor for each line of video processed", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_revtv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_revtv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_revtv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_revtv_src_template); } static void diff --git a/gst/effectv/gstripple.c b/gst/effectv/gstripple.c index e002ad1..49ed75c 100644 --- a/gst/effectv/gstripple.c +++ b/gst/effectv/gstripple.c @@ -312,9 +312,9 @@ gst_rippletv_transform (GstBaseTransform * trans, GstBuffer * in, guint32 *src, *dest; GstFlowReturn ret = GST_FLOW_OK; gint x, y, i; - gint dx, dy; + gint dx, dy, o_dx; gint h, v; - gint width, height; + gint m_w, m_h, v_w, v_h; gint *p, *q, *r; gint8 *vp; GstClockTime timestamp, stream_time; @@ -339,22 +339,24 @@ gst_rippletv_transform (GstBaseTransform * trans, GstBuffer * in, else motiondetect (filter, src); + m_w = filter->map_w; + m_h = filter->map_h; + v_w = filter->width; + v_h = filter->height; + /* simulate surface wave */ - width = filter->map_w; - height = filter->map_h; /* This function is called only 30 times per second. To increase a speed * of wave, iterates this loop several times. */ for (i = loopnum; i > 0; i--) { /* wave simulation */ - p = filter->map1 + width + 1; - q = filter->map2 + width + 1; - r = filter->map3 + width + 1; - for (y = height - 2; y > 0; y--) { - for (x = width - 2; x > 0; x--) { - h = *(p - width - 1) + *(p - width + 1) + *(p + width - 1) + *(p + - width + 1) - + *(p - width) + *(p - 1) + *(p + 1) + *(p + width) - (*p) * 9; + p = filter->map1 + m_w + 1; + q = filter->map2 + m_w + 1; + r = filter->map3 + m_w + 1; + for (y = m_h - 2; y > 0; y--) { + for (x = m_w - 2; x > 0; x--) { + h = *(p - m_w - 1) + *(p - m_w + 1) + *(p + m_w - 1) + *(p + m_w + 1) + + *(p - m_w) + *(p - 1) + *(p + 1) + *(p + m_w) - (*p) * 9; h = h >> 3; v = *p - *q; v += h - (v >> decay); @@ -369,11 +371,11 @@ gst_rippletv_transform (GstBaseTransform * trans, GstBuffer * in, } /* low pass filter */ - p = filter->map3 + width + 1; - q = filter->map2 + width + 1; - for (y = height - 2; y > 0; y--) { - for (x = width - 2; x > 0; x--) { - h = *(p - width) + *(p - 1) + *(p + 1) + *(p + width) + (*p) * 60; + p = filter->map3 + m_w + 1; + q = filter->map2 + m_w + 1; + for (y = m_h - 2; y > 0; y--) { + for (x = m_w - 2; x > 0; x--) { + h = *(p - m_w) + *(p - 1) + *(p + 1) + *(p + m_w) + (*p) * 60; *q = h >> 6; p++; q++; @@ -389,12 +391,12 @@ gst_rippletv_transform (GstBaseTransform * trans, GstBuffer * in, vp = filter->vtable; p = filter->map1; - for (y = height - 1; y > 0; y--) { - for (x = width - 1; x > 0; x--) { + for (y = m_h - 1; y > 0; y--) { + for (x = m_w - 1; x > 0; x--) { /* difference of the height between two voxel. They are twiced to * emphasise the wave. */ vp[0] = sqrtable[((p[0] - p[1]) >> (point - 1)) & 0xff]; - vp[1] = sqrtable[((p[0] - p[width]) >> (point - 1)) & 0xff]; + vp[1] = sqrtable[((p[0] - p[m_w]) >> (point - 1)) & 0xff]; p++; vp += 2; } @@ -402,48 +404,34 @@ gst_rippletv_transform (GstBaseTransform * trans, GstBuffer * in, vp += 2; } - height = filter->height; - width = filter->width; vp = filter->vtable; /* draw refracted image. The vector table is stretched. */ - for (y = 0; y < height; y += 2) { - for (x = 0; x < width; x += 2) { + for (y = 0; y < v_h; y += 2) { + for (x = 0; x < v_w; x += 2) { h = (gint) vp[0]; v = (gint) vp[1]; dx = x + h; dy = y + v; - if (dx < 0) - dx = 0; - if (dy < 0) - dy = 0; - if (dx >= width) - dx = width - 1; - if (dy >= height) - dy = height - 1; - dest[0] = src[dy * width + dx]; - - i = dx; + dx = CLAMP (dx, 0, (v_w - 2)); + dy = CLAMP (dy, 0, (v_h - 2)); + dest[0] = src[dy * v_w + dx]; + + o_dx = dx; dx = x + 1 + (h + (gint) vp[2]) / 2; - if (dx < 0) - dx = 0; - if (dx >= width) - dx = width - 1; - dest[1] = src[dy * width + dx]; - - dy = y + 1 + (v + (gint) vp[filter->map_w * 2 + 1]) / 2; - if (dy < 0) - dy = 0; - if (dy >= height) - dy = height - 1; - dest[width] = src[dy * width + i]; - - dest[width + 1] = src[dy * width + dx]; + dx = CLAMP (dx, 0, (v_w - 2)); + dest[1] = src[dy * v_w + dx]; + + dy = y + 1 + (v + (gint) vp[m_w * 2 + 1]) / 2; + dy = CLAMP (dy, 0, (v_h - 2)); + dest[v_w] = src[dy * v_w + o_dx]; + + dest[v_w + 1] = src[dy * v_w + dx]; dest += 2; vp += 2; } - dest += filter->width; + dest += v_w; vp += 2; } GST_OBJECT_UNLOCK (filter); @@ -468,9 +456,11 @@ gst_rippletv_set_caps (GstBaseTransform * btrans, GstCaps * incaps, filter->map_h = filter->height / 2 + 1; filter->map_w = filter->width / 2 + 1; + /* we over allocate the buffers, as the render code does not handle clipping + * very well */ if (filter->map) g_free (filter->map); - filter->map = g_new0 (gint, filter->map_h * filter->map_w * 3); + filter->map = g_new0 (gint, (1 + filter->map_h) * filter->map_w * 3); filter->map1 = filter->map; filter->map2 = filter->map + filter->map_w * filter->map_h; @@ -478,15 +468,15 @@ gst_rippletv_set_caps (GstBaseTransform * btrans, GstCaps * incaps, if (filter->vtable) g_free (filter->vtable); - filter->vtable = g_new0 (gint8, filter->map_h * filter->map_w * 2); + filter->vtable = g_new0 (gint8, (1 + filter->map_h) * filter->map_w * 2); if (filter->background) g_free (filter->background); - filter->background = g_new0 (gint16, filter->width * filter->height); + filter->background = g_new0 (gint16, filter->width * (filter->height + 1)); if (filter->diff) g_free (filter->diff); - filter->diff = g_new0 (guint8, filter->width * filter->height); + filter->diff = g_new0 (guint8, filter->width * (filter->height + 1)); ret = TRUE; } @@ -587,10 +577,10 @@ gst_rippletv_base_init (gpointer g_class) "FUKUCHI, Kentarou , " "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rippletv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rippletv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rippletv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rippletv_src_template); } static void @@ -626,6 +616,7 @@ gst_rippletv_init (GstRippleTV * filter, GstRippleTVClass * klass) { filter->mode = DEFAULT_MODE; + /* FIXME: remove this when memory corruption after resizes are fixed */ gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstshagadelic.c b/gst/effectv/gstshagadelic.c index 650a563..f2cb6e7 100644 --- a/gst/effectv/gstshagadelic.c +++ b/gst/effectv/gstshagadelic.c @@ -244,10 +244,10 @@ gst_shagadelictv_base_init (gpointer g_class) "Oh behave, ShagedelicTV makes images shagadelic!", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_shagadelictv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_shagadelictv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_shagadelictv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_shagadelictv_src_template); } static void @@ -267,7 +267,4 @@ gst_shagadelictv_init (GstShagadelicTV * filter, GstShagadelicTVClass * klass) { filter->ripple = NULL; filter->spiral = NULL; - - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gststreak.c b/gst/effectv/gststreak.c index bdda54d..3feb1f4 100644 --- a/gst/effectv/gststreak.c +++ b/gst/effectv/gststreak.c @@ -245,10 +245,10 @@ gst_streaktv_base_init (gpointer g_class) "FUKUCHI, Kentarou , " "Sebastian Dröge "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_streaktv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_streaktv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_streaktv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_streaktv_src_template); } static void @@ -276,7 +276,4 @@ static void gst_streaktv_init (GstStreakTV * filter, GstStreakTVClass * klass) { filter->feedback = DEFAULT_FEEDBACK; - - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c index 2f7ac7c..51b1f90 100644 --- a/gst/effectv/gstvertigo.c +++ b/gst/effectv/gstvertigo.c @@ -289,10 +289,10 @@ gst_vertigotv_base_init (gpointer g_class) "A loopback alpha blending effector with rotating and scaling", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_vertigotv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_vertigotv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_vertigotv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_vertigotv_src_template); } static void @@ -325,7 +325,4 @@ gst_vertigotv_init (GstVertigoTV * filter, GstVertigoTVClass * klass) filter->phase = 0.0; filter->phase_increment = 0.02; filter->zoomrate = 1.01; - - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (filter)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (filter)); } diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c index e5eb758..fff0d4e 100644 --- a/gst/effectv/gstwarp.c +++ b/gst/effectv/gstwarp.c @@ -144,11 +144,7 @@ initDistTable (GstWarpTV * filter) { gint32 halfw, halfh, *distptr; gint x, y; -#ifdef PS2 - float m; -#else float m; -#endif halfw = filter->width >> 1; halfh = filter->height >> 1; @@ -264,10 +260,10 @@ gst_warptv_base_init (gpointer g_class) "WarpTV does realtime goo'ing of the video input", "Sam Lantinga "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_warptv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_warptv_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_warptv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_warptv_src_template); } static void @@ -288,6 +284,5 @@ gst_warptv_class_init (GstWarpTVClass * klass) static void gst_warptv_init (GstWarpTV * warptv, GstWarpTVClass * klass) { - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SRC_PAD (warptv)); - gst_pad_use_fixed_caps (GST_BASE_TRANSFORM_SINK_PAD (warptv)); + /* nothing to do */ } diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in index 3118b67..73e8aec 100644 --- a/gst/equalizer/Makefile.in +++ b/gst/equalizer/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -68,8 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -104,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(presetdir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +120,8 @@ am_libgstequalizer_la_OBJECTS = libgstequalizer_la-gstiirequalizer.lo \ libgstequalizer_la-gstiirequalizer3bands.lo \ libgstequalizer_la-gstiirequalizer10bands.lo libgstequalizer_la_OBJECTS = $(am_libgstequalizer_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstequalizer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstequalizer_la_SOURCES) DIST_SOURCES = $(libgstequalizer_la_SOURCES) @@ -230,7 +235,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -305,7 +313,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -329,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -363,18 +371,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -427,6 +427,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -461,7 +462,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -567,7 +567,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstequalizer.la: $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_DEPENDENCIES) +libgstequalizer.la: $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_DEPENDENCIES) $(EXTRA_libgstequalizer_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstequalizer_la_LINK) -rpath $(plugindir) $(libgstequalizer_la_OBJECTS) $(libgstequalizer_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -584,58 +584,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstequalizer_la-gstiirequalizer.lo: gstiirequalizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Tpo -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstiirequalizer.c' object='libgstequalizer_la-gstiirequalizer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstiirequalizer.c' object='libgstequalizer_la-gstiirequalizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer.lo `test -f 'gstiirequalizer.c' || echo '$(srcdir)/'`gstiirequalizer.c libgstequalizer_la-gstiirequalizernbands.lo: gstiirequalizernbands.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizernbands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Tpo -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizernbands.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstiirequalizernbands.c' object='libgstequalizer_la-gstiirequalizernbands.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstiirequalizernbands.c' object='libgstequalizer_la-gstiirequalizernbands.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizernbands.lo `test -f 'gstiirequalizernbands.c' || echo '$(srcdir)/'`gstiirequalizernbands.c libgstequalizer_la-gstiirequalizer3bands.lo: gstiirequalizer3bands.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer3bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Tpo -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer3bands.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstiirequalizer3bands.c' object='libgstequalizer_la-gstiirequalizer3bands.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstiirequalizer3bands.c' object='libgstequalizer_la-gstiirequalizer3bands.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer3bands.lo `test -f 'gstiirequalizer3bands.c' || echo '$(srcdir)/'`gstiirequalizer3bands.c libgstequalizer_la-gstiirequalizer10bands.lo: gstiirequalizer10bands.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -MT libgstequalizer_la-gstiirequalizer10bands.lo -MD -MP -MF $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Tpo -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Tpo $(DEPDIR)/libgstequalizer_la-gstiirequalizer10bands.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstiirequalizer10bands.c' object='libgstequalizer_la-gstiirequalizer10bands.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstiirequalizer10bands.c' object='libgstequalizer_la-gstiirequalizer10bands.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstequalizer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstequalizer_la_CFLAGS) $(CFLAGS) -c -o libgstequalizer_la-gstiirequalizer10bands.lo `test -f 'gstiirequalizer10bands.c' || echo '$(srcdir)/'`gstiirequalizer10bands.c mostlyclean-libtool: -rm -f *.lo @@ -659,9 +652,7 @@ uninstall-presetDATA: @$(NORMAL_UNINSTALL) @list='$(preset_DATA)'; test -n "$(presetdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(presetdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(presetdir)" && rm -f $$files + dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -762,10 +753,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c index 0b76748..ffd2c43 100644 --- a/gst/equalizer/gstiirequalizer.c +++ b/gst/equalizer/gstiirequalizer.c @@ -31,6 +31,8 @@ #include "gstiirequalizer3bands.h" #include "gstiirequalizer10bands.h" +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY (equalizer_debug); #define GST_CAT_DEFAULT equalizer_debug @@ -658,10 +660,10 @@ gst_iir_equalizer_compute_frequencies (GstIirEqualizer * equ, guint new_count) /* add new bands */ equ->bands = g_realloc (equ->bands, sizeof (GstObject *) * new_count); for (i = old_count; i < new_count; i++) { - equ->bands[i] = g_object_new (GST_TYPE_IIR_EQUALIZER_BAND, NULL); /* otherwise they get names like 'iirequalizerband5' */ sprintf (name, "band%u", i); - gst_object_set_name (GST_OBJECT (equ->bands[i]), name); + equ->bands[i] = g_object_new (GST_TYPE_IIR_EQUALIZER_BAND, + "name", name, NULL); GST_DEBUG ("adding band[%d]=%p", i, equ->bands[i]); gst_object_set_parent (GST_OBJECT (equ->bands[i]), GST_OBJECT (equ)); @@ -832,27 +834,42 @@ gst_iir_equalizer_transform_ip (GstBaseTransform * btrans, GstBuffer * buf) GstAudioFilter *filter = GST_AUDIO_FILTER (btrans); GstIirEqualizer *equ = GST_IIR_EQUALIZER (btrans); GstClockTime timestamp; + gboolean need_new_coefficients; if (G_UNLIKELY (filter->format.channels < 1 || equ->process == NULL)) return GST_FLOW_NOT_NEGOTIATED; BANDS_LOCK (equ); - if (equ->need_new_coefficients) { - update_coefficients (equ); - set_passthrough (equ); - } + need_new_coefficients = equ->need_new_coefficients; BANDS_UNLOCK (equ); - if (gst_base_transform_is_passthrough (btrans)) + if (!need_new_coefficients && gst_base_transform_is_passthrough (btrans)) return GST_FLOW_OK; timestamp = GST_BUFFER_TIMESTAMP (buf); timestamp = gst_segment_to_stream_time (&btrans->segment, GST_FORMAT_TIME, timestamp); - if (GST_CLOCK_TIME_IS_VALID (timestamp)) + if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + GstIirEqualizerBand **filters = equ->bands; + guint f, nf = equ->freq_band_count; + gst_object_sync_values (G_OBJECT (equ), timestamp); + /* sync values for bands too */ + /* FIXME: iterating equ->bands is not thread-safe here */ + for (f = 0; f < nf; f++) { + gst_object_sync_values (G_OBJECT (filters[f]), timestamp); + } + } + + BANDS_LOCK (equ); + if (need_new_coefficients) { + update_coefficients (equ); + set_passthrough (equ); + } + BANDS_UNLOCK (equ); + equ->process (equ, GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), filter->format.channels); diff --git a/gst/flv/Makefile.am b/gst/flv/Makefile.am index 93e1de1..e8059cb 100644 --- a/gst/flv/Makefile.am +++ b/gst/flv/Makefile.am @@ -7,7 +7,7 @@ libgstflv_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS} libgstflv_la_SOURCES = gstflvdemux.c gstflvmux.c libgstflv_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstflvdemux.h gstflvmux.h +noinst_HEADERS = gstflvdemux.h gstflvmux.h amfdefs.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in index 255269a..9a786a1 100644 --- a/gst/flv/Makefile.in +++ b/gst/flv/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstflv_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstflv_la_OBJECTS = libgstflv_la-gstflvdemux.lo \ libgstflv_la-gstflvmux.lo libgstflv_la_OBJECTS = $(am_libgstflv_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstflv_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstflv_la_SOURCES) DIST_SOURCES = $(libgstflv_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -485,7 +485,7 @@ libgstflv_la_LIBADD = -lgstpbutils-@GST_MAJORMINOR@ \ libgstflv_la_LDFLAGS = ${GST_PLUGIN_LDFLAGS} libgstflv_la_SOURCES = gstflvdemux.c gstflvmux.c libgstflv_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstflvdemux.h gstflvmux.h +noinst_HEADERS = gstflvdemux.h gstflvmux.h amfdefs.h all: all-am .SUFFIXES: @@ -551,7 +551,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstflv.la: $(libgstflv_la_OBJECTS) $(libgstflv_la_DEPENDENCIES) +libgstflv.la: $(libgstflv_la_OBJECTS) $(libgstflv_la_DEPENDENCIES) $(EXTRA_libgstflv_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflv_la_LINK) -rpath $(plugindir) $(libgstflv_la_OBJECTS) $(libgstflv_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -566,42 +566,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstflv_la-gstflvdemux.lo: gstflvdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvdemux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvdemux.Tpo -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflv_la-gstflvdemux.Tpo $(DEPDIR)/libgstflv_la-gstflvdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflvdemux.c' object='libgstflv_la-gstflvdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflvdemux.c' object='libgstflv_la-gstflvdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvdemux.lo `test -f 'gstflvdemux.c' || echo '$(srcdir)/'`gstflvdemux.c libgstflv_la-gstflvmux.lo: gstflvmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -MT libgstflv_la-gstflvmux.lo -MD -MP -MF $(DEPDIR)/libgstflv_la-gstflvmux.Tpo -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflv_la-gstflvmux.Tpo $(DEPDIR)/libgstflv_la-gstflvmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflvmux.c' object='libgstflv_la-gstflvmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflvmux.c' object='libgstflv_la-gstflvmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflv_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflv_la_CFLAGS) $(CFLAGS) -c -o libgstflv_la-gstflvmux.lo `test -f 'gstflvmux.c' || echo '$(srcdir)/'`gstflvmux.c mostlyclean-libtool: -rm -f *.lo @@ -708,10 +703,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/flv/amfdefs.h b/gst/flv/amfdefs.h new file mode 100644 index 0000000..6c14f3f --- /dev/null +++ b/gst/flv/amfdefs.h @@ -0,0 +1,44 @@ +/* GStreamer + * + * Copyright (c) 2011 Jan Schmidt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __AMFDEFS_H__ +#define __AMFDEFS_H__ + +#include + +#define AMF0_NUMBER_MARKER 0x0 +#define AMF0_BOOLEAN_MARKER 0x1 +#define AMF0_STRING_MARKER 0x2 +#define AMF0_OBJECT_MARKER 0x3 +#define AMF0_MOVIECLIP_MARKER 0x4 // Reserved, not supported +#define AMF0_NULL_MARKER 0x5 +#define AMF0_UNDEFINED_MARKER 0x6 +#define AMF0_REFERENCE_MARKER 0x7 +#define AMF0_ECMA_ARRAY_MARKER 0x8 +#define AMF0_OBJECT_END_MARKER 0x9 +#define AMF0_STRICT_ARRAY_MARKER 0xA +#define AMF0_DATE_MARKER 0xB +#define AMF0_LONG_STRING_MARKER 0xC +#define AMF0_UNSUPPORTED_MARKER 0xD +#define AMF0_RECORDSET_MARKER 0xE // Reserved, not supported +#define AMF0_XML_DOCUMENT_MARKER 0xF +#define AMF0_TYPED_OBJECT_MARKER 0x10 + +#endif diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c index fae7e41..fbf7e25 100644 --- a/gst/flv/gstflvdemux.c +++ b/gst/flv/gstflvdemux.c @@ -34,6 +34,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include "gstflvdemux.h" #include "gstflvmux.h" @@ -55,7 +59,7 @@ static GstStaticPadTemplate audio_src_template = GST_STATIC_CAPS ("audio/x-adpcm, layout = (string) swf, channels = (int) { 1, 2 }, rate = (int) { 5512, 11025, 22050, 44100 }; " "audio/mpeg, mpegversion = (int) 1, layer = (int) 3, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 22050, 44100 }, parsed = (boolean) TRUE; " - "audio/mpeg, mpegversion = (int) 4, framed = (boolean) TRUE; " + "audio/mpeg, mpegversion = (int) 4, stream-format = (string) raw, framed = (boolean) TRUE; " "audio/x-nellymoser, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 16000, 22050, 44100 }; " "audio/x-raw-int, endianness = (int) LITTLE_ENDIAN, channels = (int) { 1, 2 }, width = (int) 8, depth = (int) 8, rate = (int) { 5512, 11025, 22050, 44100 }, signed = (boolean) FALSE; " "audio/x-raw-int, endianness = (int) LITTLE_ENDIAN, channels = (int) { 1, 2 }, width = (int) 16, depth = (int) 16, rate = (int) { 5512, 11025, 22050, 44100 }, signed = (boolean) TRUE; " @@ -84,6 +88,9 @@ GST_BOILERPLATE (GstFlvDemux, gst_flv_demux, GstElement, GST_TYPE_ELEMENT); /* 1 byte of tag type + 3 bytes of tag data size */ #define FLV_TAG_TYPE_SIZE 4 +/* two seconds - consider pts are resynced to another base if this different */ +#define RESYNC_THRESHOLD 2000 + static gboolean flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event); static gboolean gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, @@ -675,7 +682,8 @@ gst_flv_demux_audio_negotiate (GstFlvDemux * demux, guint32 codec_tag, } } caps = gst_caps_new_simple ("audio/mpeg", - "mpegversion", G_TYPE_INT, 4, "framed", G_TYPE_BOOLEAN, TRUE, NULL); + "mpegversion", G_TYPE_INT, 4, "framed", G_TYPE_BOOLEAN, TRUE, + "stream-format", G_TYPE_STRING, "raw", NULL); break; } case 7: @@ -758,6 +766,23 @@ gst_flv_demux_push_tags (GstFlvDemux * demux) } } +static void +gst_flv_demux_update_resync (GstFlvDemux * demux, guint32 pts, gboolean discont, + guint32 * last, GstClockTime * offset) +{ + gint32 dpts = pts - *last; + if (!discont && ABS (dpts) >= RESYNC_THRESHOLD) { + /* Theoretically, we should use substract the duration of the last buffer, + but this demuxer sends no durations on buffers, not sure if it cannot + know, or just does not care to calculate. */ + *offset -= dpts * GST_MSECOND; + GST_WARNING_OBJECT (demux, + "Large pts gap (%" G_GINT32_FORMAT " ms), assuming resync, offset now %" + GST_TIME_FORMAT "", dpts, GST_TIME_ARGS (*offset)); + } + *last = pts; +} + static GstFlowReturn gst_flv_demux_parse_tag_audio (GstFlvDemux * demux, GstBuffer * buffer) { @@ -944,8 +969,12 @@ gst_flv_demux_parse_tag_audio (GstFlvDemux * demux, GstBuffer * buffer) } } + /* detect (and deem to be resyncs) large pts gaps */ + gst_flv_demux_update_resync (demux, pts, demux->audio_need_discont, + &demux->last_audio_pts, &demux->audio_time_offset); + /* Fill buffer with data */ - GST_BUFFER_TIMESTAMP (outbuf) = pts * GST_MSECOND; + GST_BUFFER_TIMESTAMP (outbuf) = pts * GST_MSECOND + demux->audio_time_offset; GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; GST_BUFFER_OFFSET (outbuf) = demux->audio_offset++; GST_BUFFER_OFFSET_END (outbuf) = demux->audio_offset; @@ -1194,7 +1223,9 @@ gst_flv_demux_parse_tag_video (GstFlvDemux * demux, GstBuffer * buffer) GST_LOG_OBJECT (demux, "got cts %d", cts); - pts = pts + cts; + /* avoid negative overflow */ + if (cts >= 0 || pts >= -cts) + pts += cts; } GST_LOG_OBJECT (demux, "video tag with codec tag %u, keyframe (%d) " @@ -1310,8 +1341,12 @@ gst_flv_demux_parse_tag_video (GstFlvDemux * demux, GstBuffer * buffer) } } + /* detect (and deem to be resyncs) large pts gaps */ + gst_flv_demux_update_resync (demux, pts, demux->video_need_discont, + &demux->last_video_pts, &demux->video_time_offset); + /* Fill buffer with data */ - GST_BUFFER_TIMESTAMP (outbuf) = pts * GST_MSECOND; + GST_BUFFER_TIMESTAMP (outbuf) = pts * GST_MSECOND + demux->video_time_offset; GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; GST_BUFFER_OFFSET (outbuf) = demux->video_offset++; GST_BUFFER_OFFSET_END (outbuf) = demux->video_offset; @@ -1624,6 +1659,8 @@ gst_flv_demux_cleanup (GstFlvDemux * demux) demux->index_max_time = 0; demux->audio_start = demux->video_start = GST_CLOCK_TIME_NONE; + demux->last_audio_pts = demux->last_video_pts = 0; + demux->audio_time_offset = demux->video_time_offset = 0; demux->no_more_pads = FALSE; @@ -3199,12 +3236,12 @@ gst_flv_demux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&flv_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_template)); + gst_element_class_add_static_pad_template (element_class, + &flv_sink_template); + gst_element_class_add_static_pad_template (element_class, + &audio_src_template); + gst_element_class_add_static_pad_template (element_class, + &video_src_template); gst_element_class_set_details_simple (element_class, "FLV Demuxer", "Codec/Demuxer", "Demux FLV feeds into digital streams", diff --git a/gst/flv/gstflvdemux.h b/gst/flv/gstflvdemux.h index 60083e8..07559a5 100644 --- a/gst/flv/gstflvdemux.h +++ b/gst/flv/gstflvdemux.h @@ -95,6 +95,8 @@ struct _GstFlvDemux gboolean audio_linked; GstBuffer * audio_codec_data; GstClockTime audio_start; + guint32 last_audio_pts; + GstClockTime audio_time_offset; /* Video infos */ guint32 w; @@ -109,6 +111,8 @@ struct _GstFlvDemux gboolean got_par; GstBuffer * video_codec_data; GstClockTime video_start; + guint32 last_video_pts; + GstClockTime video_time_offset; gdouble framerate; gboolean random_access; diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c index 40a18e8..44ed7ea 100644 --- a/gst/flv/gstflvmux.c +++ b/gst/flv/gstflvmux.c @@ -39,6 +39,7 @@ #include #include "gstflvmux.h" +#include "amfdefs.h" GST_DEBUG_CATEGORY_STATIC (flvmux_debug); #define GST_CAT_DEFAULT flvmux_debug @@ -73,7 +74,8 @@ static GstStaticPadTemplate audiosink_templ = GST_STATIC_PAD_TEMPLATE ("audio", GST_STATIC_CAPS ("audio/x-adpcm, layout = (string) swf, channels = (int) { 1, 2 }, rate = (int) { 5512, 11025, 22050, 44100 }; " "audio/mpeg, mpegversion = (int) 1, layer = (int) 3, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 22050, 44100 }, parsed = (boolean) TRUE; " - "audio/mpeg, mpegversion = (int) 4, framed = (boolean) TRUE; " + "audio/mpeg, mpegversion = (int) 2, framed = (boolean) TRUE; " + "audio/mpeg, mpegversion = (int) 4, stream-format = (string) raw, framed = (boolean) TRUE; " "audio/x-nellymoser, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 16000, 22050, 44100 }; " "audio/x-raw-int, endianness = (int) LITTLE_ENDIAN, channels = (int) { 1, 2 }, width = (int) 8, depth = (int) 8, rate = (int) { 5512, 11025, 22050, 44100 }, signed = (boolean) FALSE; " "audio/x-raw-int, endianness = (int) LITTLE_ENDIAN, channels = (int) { 1, 2 }, width = (int) 16, depth = (int) 16, rate = (int) { 5512, 11025, 22050, 44100 }, signed = (boolean) TRUE; " @@ -114,6 +116,8 @@ static GstStateChangeReturn gst_flv_mux_change_state (GstElement * element, GstStateChange transition); static void gst_flv_mux_reset (GstElement * element); +static void gst_flv_mux_reset_pad (GstFlvMux * mux, GstFlvPad * pad, + gboolean video); typedef struct { @@ -132,12 +136,11 @@ gst_flv_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&videosink_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audiosink_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); + gst_element_class_add_static_pad_template (element_class, + &videosink_templ); + gst_element_class_add_static_pad_template (element_class, + &audiosink_templ); + gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_details_simple (element_class, "FLV muxer", "Codec/Muxer", "Muxes video/audio streams into a FLV stream", @@ -218,10 +221,10 @@ gst_flv_mux_reset (GstElement * element) GstFlvMux *mux = GST_FLV_MUX (element); GSList *sl; - while ((sl = mux->collect->data) != NULL) { + for (sl = mux->collect->data; sl != NULL; sl = g_slist_next (sl)) { GstFlvPad *cpad = (GstFlvPad *) sl->data; - gst_element_release_request_pad (element, cpad->collect.pad); + gst_flv_mux_reset_pad (mux, cpad, cpad->video); } g_list_foreach (mux->index, (GFunc) gst_flv_mux_index_entry_free, NULL); @@ -274,11 +277,6 @@ gst_flv_mux_handle_sink_event (GstPad * pad, GstEvent * event) mux->new_tags = TRUE; break; } - case GST_EVENT_NEWSEGMENT: - /* We don't support NEWSEGMENT events */ - ret = FALSE; - gst_event_unref (event); - break; default: break; } @@ -361,7 +359,7 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) } else { ret = FALSE; } - } else if (mpegversion == 4) { + } else if (mpegversion == 4 || mpegversion == 2) { cpad->audio_codec = 10; } else { ret = FALSE; @@ -477,6 +475,26 @@ gst_flv_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) return ret; } +static void +gst_flv_mux_reset_pad (GstFlvMux * mux, GstFlvPad * cpad, gboolean video) +{ + cpad->video = video; + + if (cpad->audio_codec_data) + gst_buffer_unref (cpad->audio_codec_data); + cpad->audio_codec_data = NULL; + cpad->audio_codec = G_MAXUINT; + cpad->rate = G_MAXUINT; + cpad->width = G_MAXUINT; + cpad->channels = G_MAXUINT; + + if (cpad->video_codec_data) + gst_buffer_unref (cpad->video_codec_data); + cpad->video_codec_data = NULL; + cpad->video_codec = G_MAXUINT; + cpad->last_timestamp = 0; +} + static GstPad * gst_flv_mux_request_new_pad (GstElement * element, GstPadTemplate * templ, const gchar * pad_name) @@ -521,18 +539,9 @@ gst_flv_mux_request_new_pad (GstElement * element, cpad = (GstFlvPad *) gst_collect_pads_add_pad (mux->collect, pad, sizeof (GstFlvPad)); - cpad->video = video; - - cpad->audio_codec = G_MAXUINT; - cpad->rate = G_MAXUINT; - cpad->width = G_MAXUINT; - cpad->channels = G_MAXUINT; cpad->audio_codec_data = NULL; - - cpad->video_codec = G_MAXUINT; cpad->video_codec_data = NULL; - - cpad->last_timestamp = 0; + gst_flv_mux_reset_pad (mux, cpad, video); /* FIXME: hacked way to override/extend the event function of * GstCollectPads; because it sets its own event function giving the @@ -555,11 +564,7 @@ gst_flv_mux_release_pad (GstElement * element, GstPad * pad) GstFlvMux *mux = GST_FLV_MUX (GST_PAD_PARENT (pad)); GstFlvPad *cpad = (GstFlvPad *) gst_pad_get_element_private (pad); - if (cpad && cpad->audio_codec_data) - gst_buffer_unref (cpad->audio_codec_data); - if (cpad && cpad->video_codec_data) - gst_buffer_unref (cpad->video_codec_data); - + gst_flv_mux_reset_pad (mux, cpad, cpad->video); gst_collect_pads_remove_pad (mux->collect, pad); gst_element_remove_pad (element, pad); } @@ -567,6 +572,7 @@ gst_flv_mux_release_pad (GstElement * element, GstPad * pad) static GstFlowReturn gst_flv_mux_push (GstFlvMux * mux, GstBuffer * buffer) { + buffer = gst_buffer_make_metadata_writable (buffer); gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->srcpad)); /* pushing the buffer that rewrites the header will make it no longer be the * total output size in bytes, but it doesn't matter at that point */ @@ -620,7 +626,7 @@ gst_flv_mux_preallocate_index (GstFlvMux * mux) /* prefill the space with a gstfiller: script tag variable */ GST_WRITE_UINT16_BE (data, 9); /* 9 characters */ memcpy (data + 2, "gstfiller", 9); - GST_WRITE_UINT8 (data + 11, 2); /* a string value */ + GST_WRITE_UINT8 (data + 11, AMF0_STRING_MARKER); /* a string value */ GST_WRITE_UINT16_BE (data + 12, preallocate_size - 14); memset (data + 14, ' ', preallocate_size - 14); /* the rest is spaces */ return tmp; @@ -631,17 +637,20 @@ gst_flv_mux_create_number_script_value (const gchar * name, gdouble value) { GstBuffer *tmp = gst_buffer_new_and_alloc (2 + strlen (name) + 1 + 8); guint8 *data = GST_BUFFER_DATA (tmp); + gsize len = strlen (name); - GST_WRITE_UINT16_BE (data, strlen (name)); /* name length */ - memcpy (&data[2], name, strlen (name)); - data[2 + strlen (name)] = 0; /* double */ - GST_WRITE_DOUBLE_BE (data + 2 + strlen (name) + 1, value); + GST_WRITE_UINT16_BE (data, len); + data += 2; /* name length */ + memcpy (data, name, len); + data += len; + *data++ = AMF0_NUMBER_MARKER; /* double type */ + GST_WRITE_DOUBLE_BE (data, value); return tmp; } static GstBuffer * -gst_flv_mux_create_metadata (GstFlvMux * mux) +gst_flv_mux_create_metadata (GstFlvMux * mux, gboolean full) { const GstTagList *tags; GstBuffer *script_tag, *tmp; @@ -670,7 +679,7 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) tmp = gst_buffer_new_and_alloc (13); data = GST_BUFFER_DATA (tmp); - data[0] = 2; /* string */ + data[0] = AMF0_STRING_MARKER; /* string */ data[1] = 0; data[2] = 10; /* length 10 */ memcpy (&data[3], "onMetaData", 10); @@ -684,29 +693,30 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) GST_WRITE_UINT32_BE (data + 1, n_tags); script_tag = gst_buffer_join (script_tag, tmp); + if (!full) + goto tags; + /* Some players expect the 'duration' to be always set. Fill it out later, after querying the pads or after getting EOS */ if (!mux->streamable) { tmp = gst_flv_mux_create_number_script_value ("duration", 86400); script_tag = gst_buffer_join (script_tag, tmp); tags_written++; - } - /* Sometimes the information about the total file size is useful for the - player. It will be filled later, after getting EOS */ - if (!mux->streamable) { + /* Sometimes the information about the total file size is useful for the + player. It will be filled later, after getting EOS */ tmp = gst_flv_mux_create_number_script_value ("filesize", 0); script_tag = gst_buffer_join (script_tag, tmp); tags_written++; - } - if (!mux->streamable) { + /* Preallocate space for the index to be written at EOS */ tmp = gst_flv_mux_preallocate_index (mux); script_tag = gst_buffer_join (script_tag, tmp); } else { GST_DEBUG_OBJECT (mux, "not preallocating index, streamable mode"); } +tags: for (i = 0; tags && i < n_tags; i++) { const gchar *tag_name = gst_structure_nth_field_name ((const GstStructure *) tags, i); @@ -745,6 +755,9 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) } } + if (!full) + goto end; + if (mux->duration == GST_CLOCK_TIME_NONE) { GSList *l; @@ -926,6 +939,14 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) tags_written++; } +end: + + if (!tags_written) { + gst_buffer_unref (script_tag); + script_tag = NULL; + goto exit; + } + tmp = gst_buffer_new_and_alloc (2 + 0 + 1); data = GST_BUFFER_DATA (tmp); data[0] = 0; /* 0 byte size */ @@ -946,6 +967,7 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) GST_WRITE_UINT32_BE (data + 11 + 13 + 1, tags_written); +exit: return script_tag; } @@ -1089,7 +1111,7 @@ gst_flv_mux_write_header (GstFlvMux * mux) GstFlowReturn ret; header = gst_flv_mux_create_header (mux); - metadata = gst_flv_mux_create_metadata (mux); + metadata = gst_flv_mux_create_metadata (mux, TRUE); video_codec_data = NULL; audio_codec_data = NULL; @@ -1241,12 +1263,6 @@ gst_flv_mux_determine_duration (GstFlvMux * mux) } } - if (duration == GST_CLOCK_TIME_NONE) { - GST_DEBUG_OBJECT (mux, "not able to determine duration " - "from pad timestamps, assuming 0"); - return 0; - } - return duration; } @@ -1260,6 +1276,7 @@ gst_flv_mux_rewrite_header (GstFlvMux * mux) GList *l; guint32 index_len, allocate_size; guint32 i, index_skip; + GstClockTime dur; if (mux->streamable) return GST_FLOW_OK; @@ -1272,9 +1289,12 @@ gst_flv_mux_rewrite_header (GstFlvMux * mux) return GST_FLOW_OK; } - /* if we were not able to determine the duration before, set it now */ - if (mux->duration == GST_CLOCK_TIME_NONE) - mux->duration = gst_flv_mux_determine_duration (mux); + /* determine duration now based on our own timestamping, + * so that it is likely many times better and consistent + * than whatever obtained by some query */ + dur = gst_flv_mux_determine_duration (mux); + if (dur != GST_CLOCK_TIME_NONE) + mux->duration = dur; /* rewrite the duration tag */ d = gst_guint64_to_gdouble (mux->duration); @@ -1414,8 +1434,9 @@ gst_flv_mux_collected (GstCollectPads * pads, gpointer user_data) } if (mux->new_tags) { - GstBuffer *buf = gst_flv_mux_create_metadata (mux); - gst_flv_mux_push (mux, buf); + GstBuffer *buf = gst_flv_mux_create_metadata (mux, FALSE); + if (buf) + gst_flv_mux_push (mux, buf); mux->new_tags = FALSE; } diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in index 720b612..3197a98 100644 --- a/gst/flx/Makefile.in +++ b/gst/flx/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstflxdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstflxdec_la_OBJECTS = libgstflxdec_la-gstflxdec.lo \ libgstflxdec_la-flx_color.lo libgstflxdec_la_OBJECTS = $(am_libgstflxdec_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstflxdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstflxdec_la_SOURCES) DIST_SOURCES = $(libgstflxdec_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -549,7 +549,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstflxdec.la: $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_DEPENDENCIES) +libgstflxdec.la: $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_DEPENDENCIES) $(EXTRA_libgstflxdec_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstflxdec_la_LINK) -rpath $(plugindir) $(libgstflxdec_la_OBJECTS) $(libgstflxdec_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -564,42 +564,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstflxdec_la-gstflxdec.lo: gstflxdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-gstflxdec.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-gstflxdec.Tpo -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflxdec_la-gstflxdec.Tpo $(DEPDIR)/libgstflxdec_la-gstflxdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflxdec.c' object='libgstflxdec_la-gstflxdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstflxdec.c' object='libgstflxdec_la-gstflxdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-gstflxdec.lo `test -f 'gstflxdec.c' || echo '$(srcdir)/'`gstflxdec.c libgstflxdec_la-flx_color.lo: flx_color.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -MT libgstflxdec_la-flx_color.lo -MD -MP -MF $(DEPDIR)/libgstflxdec_la-flx_color.Tpo -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflxdec_la-flx_color.Tpo $(DEPDIR)/libgstflxdec_la-flx_color.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flx_color.c' object='libgstflxdec_la-flx_color.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flx_color.c' object='libgstflxdec_la-flx_color.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflxdec_la_CFLAGS) $(CFLAGS) -c -o libgstflxdec_la-flx_color.lo `test -f 'flx_color.c' || echo '$(srcdir)/'`flx_color.c mostlyclean-libtool: -rm -f *.lo @@ -706,10 +701,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c index 627aad1..5017684 100644 --- a/gst/flx/gstflxdec.c +++ b/gst/flx/gstflxdec.c @@ -111,10 +111,10 @@ gst_flxdec_base_init (GstFlxDecClass * klass) "Codec/Decoder/Video", "FLC/FLI/FLX video decoder", "Sepp Wijnands , Zeeshan Ali "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sink_factory)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_video_factory)); + gst_element_class_add_static_pad_template (gstelement_class, + &sink_factory); + gst_element_class_add_static_pad_template (gstelement_class, + &src_video_factory); } static void diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in index f22ff75..159fa32 100644 --- a/gst/goom/Makefile.in +++ b/gst/goom/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -65,8 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -101,6 +100,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -130,8 +135,8 @@ am_libgstgoom_la_OBJECTS = libgstgoom_la-gstgoom.lo \ libgstgoom_la-goom_core.lo libgstgoom_la-graphic.lo \ $(am__objects_2) libgstgoom_la_OBJECTS = $(am_libgstgoom_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgoom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -147,21 +152,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgoom_la_SOURCES) DIST_SOURCES = $(am__libgstgoom_la_SOURCES_DIST) @@ -243,7 +248,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -318,7 +326,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -342,6 +349,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -376,18 +384,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -440,6 +440,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -474,7 +475,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -595,7 +595,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgoom.la: $(libgstgoom_la_OBJECTS) $(libgstgoom_la_DEPENDENCIES) +libgstgoom.la: $(libgstgoom_la_OBJECTS) $(libgstgoom_la_DEPENDENCIES) $(EXTRA_libgstgoom_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgoom_la_LINK) -rpath $(plugindir) $(libgstgoom_la_OBJECTS) $(libgstgoom_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -627,178 +627,156 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgoom_la-gstgoom.lo: gstgoom.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-gstgoom.Tpo -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-gstgoom.Tpo $(DEPDIR)/libgstgoom_la-gstgoom.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgoom.c' object='libgstgoom_la-gstgoom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgoom.c' object='libgstgoom_la-gstgoom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c libgstgoom_la-drawmethods.lo: drawmethods.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-drawmethods.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-drawmethods.Tpo -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-drawmethods.Tpo $(DEPDIR)/libgstgoom_la-drawmethods.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='drawmethods.c' object='libgstgoom_la-drawmethods.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='drawmethods.c' object='libgstgoom_la-drawmethods.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-drawmethods.lo `test -f 'drawmethods.c' || echo '$(srcdir)/'`drawmethods.c libgstgoom_la-sound_tester.lo: sound_tester.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-sound_tester.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-sound_tester.Tpo -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-sound_tester.Tpo $(DEPDIR)/libgstgoom_la-sound_tester.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sound_tester.c' object='libgstgoom_la-sound_tester.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sound_tester.c' object='libgstgoom_la-sound_tester.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-sound_tester.lo `test -f 'sound_tester.c' || echo '$(srcdir)/'`sound_tester.c libgstgoom_la-mathtools.lo: mathtools.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mathtools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mathtools.Tpo -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-mathtools.Tpo $(DEPDIR)/libgstgoom_la-mathtools.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mathtools.c' object='libgstgoom_la-mathtools.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mathtools.c' object='libgstgoom_la-mathtools.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mathtools.lo `test -f 'mathtools.c' || echo '$(srcdir)/'`mathtools.c libgstgoom_la-lines.lo: lines.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-lines.Tpo -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-lines.Tpo $(DEPDIR)/libgstgoom_la-lines.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lines.c' object='libgstgoom_la-lines.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lines.c' object='libgstgoom_la-lines.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c libgstgoom_la-ifs.lo: ifs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-ifs.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-ifs.Tpo -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-ifs.Tpo $(DEPDIR)/libgstgoom_la-ifs.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ifs.c' object='libgstgoom_la-ifs.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ifs.c' object='libgstgoom_la-ifs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-ifs.lo `test -f 'ifs.c' || echo '$(srcdir)/'`ifs.c libgstgoom_la-surf3d.lo: surf3d.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-surf3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-surf3d.Tpo -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-surf3d.Tpo $(DEPDIR)/libgstgoom_la-surf3d.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='surf3d.c' object='libgstgoom_la-surf3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='surf3d.c' object='libgstgoom_la-surf3d.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-surf3d.lo `test -f 'surf3d.c' || echo '$(srcdir)/'`surf3d.c libgstgoom_la-tentacle3d.lo: tentacle3d.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-tentacle3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-tentacle3d.Tpo -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-tentacle3d.Tpo $(DEPDIR)/libgstgoom_la-tentacle3d.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tentacle3d.c' object='libgstgoom_la-tentacle3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tentacle3d.c' object='libgstgoom_la-tentacle3d.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-tentacle3d.lo `test -f 'tentacle3d.c' || echo '$(srcdir)/'`tentacle3d.c libgstgoom_la-v3d.lo: v3d.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-v3d.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-v3d.Tpo -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-v3d.Tpo $(DEPDIR)/libgstgoom_la-v3d.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v3d.c' object='libgstgoom_la-v3d.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v3d.c' object='libgstgoom_la-v3d.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-v3d.lo `test -f 'v3d.c' || echo '$(srcdir)/'`v3d.c libgstgoom_la-convolve_fx.lo: convolve_fx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-convolve_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-convolve_fx.Tpo -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-convolve_fx.Tpo $(DEPDIR)/libgstgoom_la-convolve_fx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='convolve_fx.c' object='libgstgoom_la-convolve_fx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='convolve_fx.c' object='libgstgoom_la-convolve_fx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-convolve_fx.lo `test -f 'convolve_fx.c' || echo '$(srcdir)/'`convolve_fx.c libgstgoom_la-flying_stars_fx.lo: flying_stars_fx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-flying_stars_fx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-flying_stars_fx.Tpo -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-flying_stars_fx.Tpo $(DEPDIR)/libgstgoom_la-flying_stars_fx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='flying_stars_fx.c' object='libgstgoom_la-flying_stars_fx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flying_stars_fx.c' object='libgstgoom_la-flying_stars_fx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-flying_stars_fx.lo `test -f 'flying_stars_fx.c' || echo '$(srcdir)/'`flying_stars_fx.c libgstgoom_la-plugin_info.lo: plugin_info.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-plugin_info.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-plugin_info.Tpo -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-plugin_info.Tpo $(DEPDIR)/libgstgoom_la-plugin_info.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin_info.c' object='libgstgoom_la-plugin_info.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin_info.c' object='libgstgoom_la-plugin_info.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-plugin_info.lo `test -f 'plugin_info.c' || echo '$(srcdir)/'`plugin_info.c libgstgoom_la-goom_tools.lo: goom_tools.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_tools.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_tools.Tpo -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-goom_tools.Tpo $(DEPDIR)/libgstgoom_la-goom_tools.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='goom_tools.c' object='libgstgoom_la-goom_tools.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goom_tools.c' object='libgstgoom_la-goom_tools.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_tools.lo `test -f 'goom_tools.c' || echo '$(srcdir)/'`goom_tools.c libgstgoom_la-config_param.lo: config_param.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-config_param.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-config_param.Tpo -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-config_param.Tpo $(DEPDIR)/libgstgoom_la-config_param.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config_param.c' object='libgstgoom_la-config_param.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='config_param.c' object='libgstgoom_la-config_param.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-config_param.lo `test -f 'config_param.c' || echo '$(srcdir)/'`config_param.c libgstgoom_la-filters.lo: filters.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-filters.Tpo -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-filters.Tpo $(DEPDIR)/libgstgoom_la-filters.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filters.c' object='libgstgoom_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters.c' object='libgstgoom_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c libgstgoom_la-goom_core.lo: goom_core.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-goom_core.Tpo -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-goom_core.Tpo $(DEPDIR)/libgstgoom_la-goom_core.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='goom_core.c' object='libgstgoom_la-goom_core.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goom_core.c' object='libgstgoom_la-goom_core.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c libgstgoom_la-graphic.lo: graphic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-graphic.Tpo -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-graphic.Tpo $(DEPDIR)/libgstgoom_la-graphic.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphic.c' object='libgstgoom_la-graphic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='graphic.c' object='libgstgoom_la-graphic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c libgstgoom_la-mmx.lo: mmx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-mmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-mmx.Tpo -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-mmx.Tpo $(DEPDIR)/libgstgoom_la-mmx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmx.c' object='libgstgoom_la-mmx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mmx.c' object='libgstgoom_la-mmx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-mmx.lo `test -f 'mmx.c' || echo '$(srcdir)/'`mmx.c libgstgoom_la-xmmx.lo: xmmx.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -MT libgstgoom_la-xmmx.lo -MD -MP -MF $(DEPDIR)/libgstgoom_la-xmmx.Tpo -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom_la-xmmx.Tpo $(DEPDIR)/libgstgoom_la-xmmx.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xmmx.c' object='libgstgoom_la-xmmx.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmmx.c' object='libgstgoom_la-xmmx.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom_la_CFLAGS) $(CFLAGS) -c -o libgstgoom_la-xmmx.lo `test -f 'xmmx.c' || echo '$(srcdir)/'`xmmx.c mostlyclean-libtool: -rm -f *.lo @@ -905,10 +883,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c index 30a6c8c..b05b8f3 100644 --- a/gst/goom/gstgoom.c +++ b/gst/goom/gstgoom.c @@ -137,10 +137,9 @@ gst_goom_base_init (GstGoomClass * klass) "Visualization", "Takes frames of data and outputs video frames using the GOOM filter", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void @@ -400,7 +399,7 @@ gst_goom_sink_event (GstPad * pad, GstEvent * event) static gboolean gst_goom_src_query (GstPad * pad, GstQuery * query) { - gboolean res; + gboolean res = FALSE; GstGoom *goom; goom = GST_GOOM (gst_pad_get_parent (pad)); @@ -415,6 +414,9 @@ gst_goom_src_query (GstPad * pad, GstQuery * query) GstClockTime our_latency; guint max_samples; + if (goom->rate == 0) + break; + if ((res = gst_pad_peer_query (goom->sinkpad, query))) { gst_query_parse_latency (query, &us_live, &min_latency, &max_latency); diff --git a/gst/goom/plugin_info.c b/gst/goom/plugin_info.c index aba15ca..b50c9dd 100644 --- a/gst/goom/plugin_info.c +++ b/gst/goom/plugin_info.c @@ -35,8 +35,6 @@ #if defined (HAVE_CPU_PPC64) || defined (HAVE_CPU_PPC) -#include -#include #include "ppc_zoom_ultimate.h" #include "ppc_drawings.h" #endif /* HAVE_CPU_PPC64 || HAVE_CPU_PPC */ diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in index 74885e3..d6b9d6d 100644 --- a/gst/goom2k1/Makefile.in +++ b/gst/goom2k1/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstgoom2k1_la_OBJECTS = libgstgoom2k1_la-gstgoom.lo \ libgstgoom2k1_la-goom_core.lo $(am__objects_1) \ libgstgoom2k1_la-graphic.lo libgstgoom2k1_la-lines.lo libgstgoom2k1_la_OBJECTS = $(am_libgstgoom2k1_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstgoom2k1_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstgoom2k1_la_SOURCES) DIST_SOURCES = $(libgstgoom2k1_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -554,7 +554,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstgoom2k1.la: $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_DEPENDENCIES) +libgstgoom2k1.la: $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_DEPENDENCIES) $(EXTRA_libgstgoom2k1_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstgoom2k1_la_LINK) -rpath $(plugindir) $(libgstgoom2k1_la_OBJECTS) $(libgstgoom2k1_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -572,66 +572,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstgoom2k1_la-gstgoom.lo: gstgoom.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-gstgoom.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-gstgoom.Tpo -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-gstgoom.Tpo $(DEPDIR)/libgstgoom2k1_la-gstgoom.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgoom.c' object='libgstgoom2k1_la-gstgoom.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgoom.c' object='libgstgoom2k1_la-gstgoom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-gstgoom.lo `test -f 'gstgoom.c' || echo '$(srcdir)/'`gstgoom.c libgstgoom2k1_la-goom_core.lo: goom_core.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-goom_core.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-goom_core.Tpo -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-goom_core.Tpo $(DEPDIR)/libgstgoom2k1_la-goom_core.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='goom_core.c' object='libgstgoom2k1_la-goom_core.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goom_core.c' object='libgstgoom2k1_la-goom_core.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-goom_core.lo `test -f 'goom_core.c' || echo '$(srcdir)/'`goom_core.c libgstgoom2k1_la-filters.lo: filters.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-filters.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-filters.Tpo -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-filters.Tpo $(DEPDIR)/libgstgoom2k1_la-filters.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filters.c' object='libgstgoom2k1_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='filters.c' object='libgstgoom2k1_la-filters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-filters.lo `test -f 'filters.c' || echo '$(srcdir)/'`filters.c libgstgoom2k1_la-graphic.lo: graphic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-graphic.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-graphic.Tpo -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-graphic.Tpo $(DEPDIR)/libgstgoom2k1_la-graphic.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphic.c' object='libgstgoom2k1_la-graphic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='graphic.c' object='libgstgoom2k1_la-graphic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-graphic.lo `test -f 'graphic.c' || echo '$(srcdir)/'`graphic.c libgstgoom2k1_la-lines.lo: lines.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -MT libgstgoom2k1_la-lines.lo -MD -MP -MF $(DEPDIR)/libgstgoom2k1_la-lines.Tpo -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgoom2k1_la-lines.Tpo $(DEPDIR)/libgstgoom2k1_la-lines.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lines.c' object='libgstgoom2k1_la-lines.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lines.c' object='libgstgoom2k1_la-lines.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgoom2k1_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgoom2k1_la_CFLAGS) $(CFLAGS) -c -o libgstgoom2k1_la-lines.lo `test -f 'lines.c' || echo '$(srcdir)/'`lines.c mostlyclean-libtool: -rm -f *.lo @@ -738,10 +730,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/goom2k1/goom_core.c b/gst/goom2k1/goom_core.c index d66ffe2..ee893f4 100644 --- a/gst/goom2k1/goom_core.c +++ b/gst/goom2k1/goom_core.c @@ -66,9 +66,8 @@ goom_set_resolution (GoomData * goomdata, guint32 resx, guint32 resy) goomdata->back = (guint32 *) malloc (buffsize * sizeof (guint32) + 128); goomdata->buffsize = buffsize; - goomdata->p1 = - (void *) (((unsigned long) goomdata->pixel + 0x7f) & (~0x7f)); - goomdata->p2 = (void *) (((unsigned long) goomdata->back + 0x7f) & (~0x7f)); + goomdata->p1 = (void *) (((guintptr) goomdata->pixel + 0x7f) & (~0x7f)); + goomdata->p2 = (void *) (((guintptr) goomdata->back + 0x7f) & (~0x7f)); } goomdata->resolx = resx; diff --git a/gst/goom2k1/gstgoom.c b/gst/goom2k1/gstgoom.c index 08b7bc5..7c27394 100644 --- a/gst/goom2k1/gstgoom.c +++ b/gst/goom2k1/gstgoom.c @@ -134,10 +134,9 @@ gst_goom_base_init (GstGoomClass * klass) "GOOM: what a GOOM! 2k1 edition", "Visualization", "Takes frames of data and outputs video frames using the GOOM 2k1 filter", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in index 2c45b02..c24dcea 100644 --- a/gst/icydemux/Makefile.in +++ b/gst/icydemux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgsticydemux_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgsticydemux_la_OBJECTS = libgsticydemux_la-gsticydemux.lo libgsticydemux_la_OBJECTS = $(am_libgsticydemux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsticydemux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsticydemux_la_SOURCES) DIST_SOURCES = $(libgsticydemux_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -549,7 +549,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsticydemux.la: $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_DEPENDENCIES) +libgsticydemux.la: $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_DEPENDENCIES) $(EXTRA_libgsticydemux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsticydemux_la_LINK) -rpath $(plugindir) $(libgsticydemux_la_OBJECTS) $(libgsticydemux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -563,34 +563,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsticydemux_la-gsticydemux.lo: gsticydemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -MT libgsticydemux_la-gsticydemux.lo -MD -MP -MF $(DEPDIR)/libgsticydemux_la-gsticydemux.Tpo -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsticydemux_la-gsticydemux.Tpo $(DEPDIR)/libgsticydemux_la-gsticydemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsticydemux.c' object='libgsticydemux_la-gsticydemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsticydemux.c' object='libgsticydemux_la-gsticydemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsticydemux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsticydemux_la_CFLAGS) $(CFLAGS) -c -o libgsticydemux_la-gsticydemux.lo `test -f 'gsticydemux.c' || echo '$(srcdir)/'`gsticydemux.c mostlyclean-libtool: -rm -f *.lo @@ -697,10 +693,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c index 2582959..4a533b9 100644 --- a/gst/icydemux/gsticydemux.c +++ b/gst/icydemux/gsticydemux.c @@ -115,10 +115,8 @@ gst_icydemux_base_init (GstICYDemuxClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "ICY tag demuxer", "Codec/Demuxer/Metadata", "Read and output ICY tags while demuxing the contents", diff --git a/gst/id3demux/Makefile.am b/gst/id3demux/Makefile.am index 823cb77..cce8035 100644 --- a/gst/id3demux/Makefile.am +++ b/gst/id3demux/Makefile.am @@ -1,13 +1,13 @@ plugin_LTLIBRARIES = libgstid3demux.la -libgstid3demux_la_SOURCES = gstid3demux.c id3tags.c id3v2frames.c +libgstid3demux_la_SOURCES = gstid3demux.c libgstid3demux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstid3demux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_MAJORMINOR@ \ - -lgstpbutils-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(ZLIB_LIBS) + -lgstpbutils-@GST_MAJORMINOR@ $(GST_BASE_LIBS) libgstid3demux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstid3demux_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstid3demux.h id3tags.h +noinst_HEADERS = gstid3demux.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in index f68750d..a4753f3 100644 --- a/gst/id3demux/Makefile.in +++ b/gst/id3demux/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,16 +102,21 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstid3demux_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_libgstid3demux_la_OBJECTS = libgstid3demux_la-gstid3demux.lo \ - libgstid3demux_la-id3tags.lo libgstid3demux_la-id3v2frames.lo + $(am__DEPENDENCIES_1) +am_libgstid3demux_la_OBJECTS = libgstid3demux_la-gstid3demux.lo libgstid3demux_la_OBJECTS = $(am_libgstid3demux_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstid3demux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstid3demux_la_SOURCES) DIST_SOURCES = $(libgstid3demux_la_SOURCES) @@ -225,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -478,14 +477,14 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstid3demux.la -libgstid3demux_la_SOURCES = gstid3demux.c id3tags.c id3v2frames.c +libgstid3demux_la_SOURCES = gstid3demux.c libgstid3demux_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstid3demux_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_MAJORMINOR@ \ - -lgstpbutils-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(ZLIB_LIBS) + -lgstpbutils-@GST_MAJORMINOR@ $(GST_BASE_LIBS) libgstid3demux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstid3demux_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstid3demux.h id3tags.h +noinst_HEADERS = gstid3demux.h all: all-am .SUFFIXES: @@ -551,7 +550,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstid3demux.la: $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_DEPENDENCIES) +libgstid3demux.la: $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_DEPENDENCIES) $(EXTRA_libgstid3demux_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstid3demux_la_LINK) -rpath $(plugindir) $(libgstid3demux_la_OBJECTS) $(libgstid3demux_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -561,56 +560,34 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3demux_la-gstid3demux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3demux_la-id3tags.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstid3demux_la-id3v2frames.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstid3demux_la-gstid3demux.lo: gstid3demux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -MT libgstid3demux_la-gstid3demux.lo -MD -MP -MF $(DEPDIR)/libgstid3demux_la-gstid3demux.Tpo -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3demux_la-gstid3demux.Tpo $(DEPDIR)/libgstid3demux_la-gstid3demux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstid3demux.c' object='libgstid3demux_la-gstid3demux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstid3demux.c' object='libgstid3demux_la-gstid3demux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c - -libgstid3demux_la-id3tags.lo: id3tags.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -MT libgstid3demux_la-id3tags.lo -MD -MP -MF $(DEPDIR)/libgstid3demux_la-id3tags.Tpo -c -o libgstid3demux_la-id3tags.lo `test -f 'id3tags.c' || echo '$(srcdir)/'`id3tags.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3demux_la-id3tags.Tpo $(DEPDIR)/libgstid3demux_la-id3tags.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='id3tags.c' object='libgstid3demux_la-id3tags.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-id3tags.lo `test -f 'id3tags.c' || echo '$(srcdir)/'`id3tags.c - -libgstid3demux_la-id3v2frames.lo: id3v2frames.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -MT libgstid3demux_la-id3v2frames.lo -MD -MP -MF $(DEPDIR)/libgstid3demux_la-id3v2frames.Tpo -c -o libgstid3demux_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstid3demux_la-id3v2frames.Tpo $(DEPDIR)/libgstid3demux_la-id3v2frames.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='id3v2frames.c' object='libgstid3demux_la-id3v2frames.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstid3demux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstid3demux_la_CFLAGS) $(CFLAGS) -c -o libgstid3demux_la-gstid3demux.lo `test -f 'gstid3demux.c' || echo '$(srcdir)/'`gstid3demux.c mostlyclean-libtool: -rm -f *.lo @@ -717,10 +694,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c index 9368504..414b574 100644 --- a/gst/id3demux/gstid3demux.c +++ b/gst/id3demux/gstid3demux.c @@ -55,7 +55,6 @@ #include #include "gstid3demux.h" -#include "id3tags.h" enum { @@ -68,6 +67,9 @@ enum GST_DEBUG_CATEGORY (id3demux_debug); #define GST_CAT_DEFAULT (id3demux_debug) +#define ID3V1_TAG_SIZE 128 +#define ID3V2_HDR_SIZE GST_TAG_ID3V2_HEADER_SIZE + static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, @@ -94,8 +96,7 @@ gst_id3demux_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "ID3 tag demuxer", "Codec/Demuxer/Metadata", @@ -142,7 +143,7 @@ gst_id3demux_identify_tag (GstTagDemux * demux, GstBuffer * buf, if (data[0] != 'I' || data[1] != 'D' || data[2] != '3') goto no_marker; - *tag_size = id3demux_calc_id3v2_tag_size (buf); + *tag_size = gst_tag_get_id3v2_tag_size (buf); } else { if (data[0] != 'T' || data[1] != 'A' || data[2] != 'G') goto no_marker; @@ -178,11 +179,10 @@ gst_id3demux_parse_tag (GstTagDemux * demux, GstBuffer * buffer, gboolean start_tag, guint * tag_size, GstTagList ** tags) { if (start_tag) { - ID3TagsResult res; /* FIXME: make id3tags.c return tagmuxresult values */ - - res = id3demux_read_id3v2_tag (buffer, tag_size, tags); + *tag_size = gst_tag_get_id3v2_tag_size (buffer); + *tags = gst_tag_list_from_id3v2_tag (buffer); - if (G_LIKELY (res == ID3TAGS_READ_TAG)) { + if (G_LIKELY (*tags != NULL)) { gst_id3demux_add_container_format (*tags); return GST_TAG_DEMUX_RESULT_OK; } else { @@ -276,11 +276,6 @@ plugin_init (GstPlugin * plugin) gst_tag_register_musicbrainz_tags (); - /* ensure private tag is registered */ - gst_tag_register (GST_ID3_DEMUX_TAG_ID3V2_FRAME, GST_TAG_FLAG_META, - GST_TYPE_BUFFER, "ID3v2 frame", "unparsed id3v2 tag frame", - gst_tag_merge_use_first); - return gst_element_register (plugin, "id3demux", GST_RANK_PRIMARY, GST_TYPE_ID3DEMUX); } diff --git a/gst/id3demux/id3tags.c b/gst/id3demux/id3tags.c deleted file mode 100644 index d201d7c..0000000 --- a/gst/id3demux/id3tags.c +++ /dev/null @@ -1,554 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */ -/* Copyright 2005 Jan Schmidt - * Copyright 2002,2003 Scott Wheeler (portions from taglib) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include - -#include "id3tags.h" - -GST_DEBUG_CATEGORY_EXTERN (id3demux_debug); -#define GST_CAT_DEFAULT (id3demux_debug) - -#define HANDLE_INVALID_SYNCSAFE -static ID3TagsResult -id3demux_id3v2_frames_to_tag_list (ID3TagsWorking * work, guint size); - -guint -read_synch_uint (const guint8 * data, guint size) -{ - gint i; - guint result = 0; - gint invalid = 0; - - g_assert (size <= 4); - - size--; - for (i = 0; i <= size; i++) { - invalid |= data[i] & 0x80; - result |= (data[i] & 0x7f) << ((size - i) * 7); - } - -#ifdef HANDLE_INVALID_SYNCSAFE - if (invalid) { - GST_WARNING ("Invalid synch-safe integer in ID3v2 frame " - "- using the actual value instead"); - result = 0; - for (i = 0; i <= size; i++) { - result |= data[i] << ((size - i) * 8); - } - } -#endif - return result; -} - -guint -id3demux_calc_id3v2_tag_size (GstBuffer * buf) -{ - guint8 *data, flags; - guint size; - - g_assert (buf != NULL); - g_assert (GST_BUFFER_SIZE (buf) >= ID3V2_HDR_SIZE); - - data = GST_BUFFER_DATA (buf); - - /* Check for 'ID3' string at start of buffer */ - if (data[0] != 'I' || data[1] != 'D' || data[2] != '3') { - GST_DEBUG ("No ID3v2 tag in data"); - return 0; - } - - /* Read the flags */ - flags = data[5]; - - /* Read the size from the header */ - size = read_synch_uint (data + 6, 4); - if (size == 0) - return ID3V2_HDR_SIZE; - - size += ID3V2_HDR_SIZE; - - /* Expand the read size to include a footer if there is one */ - if ((flags & ID3V2_HDR_FLAG_FOOTER)) - size += 10; - - GST_DEBUG ("ID3v2 tag, size: %u bytes", size); - return size; -} - -guint8 * -id3demux_ununsync_data (const guint8 * unsync_data, guint32 * size) -{ - const guint8 *end; - guint8 *out, *uu; - guint out_size; - - uu = out = g_malloc (*size); - - for (end = unsync_data + *size; unsync_data < end - 1; ++unsync_data, ++uu) { - *uu = *unsync_data; - if (G_UNLIKELY (*unsync_data == 0xff && *(unsync_data + 1) == 0x00)) - ++unsync_data; - } - - /* take care of last byte (if last two bytes weren't 0xff 0x00) */ - if (unsync_data < end) { - *uu = *unsync_data; - ++uu; - } - - out_size = uu - out; - GST_DEBUG ("size after un-unsyncing: %u (before: %u)", out_size, *size); - - *size = out_size; - return out; -} - -/* caller must pass buffer with full ID3 tag */ -ID3TagsResult -id3demux_read_id3v2_tag (GstBuffer * buffer, guint * id3v2_size, - GstTagList ** tags) -{ - guint8 *data, *uu_data = NULL; - guint read_size; - ID3TagsWorking work; - guint8 flags; - ID3TagsResult result; - guint16 version; - - read_size = id3demux_calc_id3v2_tag_size (buffer); - - if (id3v2_size) - *id3v2_size = read_size; - - /* Ignore tag if it has no frames attached, but skip the header then */ - if (read_size <= ID3V2_HDR_SIZE) - return ID3TAGS_BROKEN_TAG; - - data = GST_BUFFER_DATA (buffer); - - /* Read the version */ - version = GST_READ_UINT16_BE (data + 3); - - /* Read the flags */ - flags = data[5]; - - /* Validate the version. At the moment, we only support up to 2.4.0 */ - if (ID3V2_VER_MAJOR (version) > 4 || ID3V2_VER_MINOR (version) > 0) { - GST_WARNING ("ID3v2 tag is from revision 2.%d.%d, " - "but decoder only supports 2.%d.%d. Ignoring as per spec.", - version >> 8, version & 0xff, ID3V2_VERSION >> 8, ID3V2_VERSION & 0xff); - return ID3TAGS_BROKEN_TAG; - } - - GST_DEBUG ("ID3v2 header flags: %s %s %s %s", - (flags & ID3V2_HDR_FLAG_UNSYNC) ? "UNSYNC" : "", - (flags & ID3V2_HDR_FLAG_EXTHDR) ? "EXTENDED_HEADER" : "", - (flags & ID3V2_HDR_FLAG_EXPERIMENTAL) ? "EXPERIMENTAL" : "", - (flags & ID3V2_HDR_FLAG_FOOTER) ? "FOOTER" : ""); - - /* This shouldn't really happen! Caller should have checked first */ - if (GST_BUFFER_SIZE (buffer) < read_size) { - GST_DEBUG - ("Found ID3v2 tag with revision 2.%d.%d - need %u more bytes to read", - version >> 8, version & 0xff, - (guint) (read_size - GST_BUFFER_SIZE (buffer))); - return ID3TAGS_MORE_DATA; /* Need more data to decode with */ - } - - GST_DEBUG ("Reading ID3v2 tag with revision 2.%d.%d of size %u", version >> 8, - version & 0xff, read_size); - - g_return_val_if_fail (tags != NULL, ID3TAGS_READ_TAG); - - GST_MEMDUMP ("ID3v2 tag", GST_BUFFER_DATA (buffer), read_size); - - memset (&work, 0, sizeof (ID3TagsWorking)); - work.buffer = buffer; - work.hdr.version = version; - work.hdr.size = read_size; - work.hdr.flags = flags; - work.hdr.frame_data = GST_BUFFER_DATA (buffer) + ID3V2_HDR_SIZE; - if (flags & ID3V2_HDR_FLAG_FOOTER) - work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE - 10; - else - work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE; - - /* in v2.3 the frame sizes are not syncsafe, so the entire tag had to be - * unsynced. In v2.4 the frame sizes are syncsafe so it's just the frame - * data that needs un-unsyncing, but not the frame headers. */ - if ((flags & ID3V2_HDR_FLAG_UNSYNC) != 0 && ID3V2_VER_MAJOR (version) <= 3) { - GST_DEBUG ("Un-unsyncing entire tag"); - uu_data = id3demux_ununsync_data (work.hdr.frame_data, - &work.hdr.frame_data_size); - work.hdr.frame_data = uu_data; - GST_MEMDUMP ("ID3v2 tag (un-unsyced)", uu_data, work.hdr.frame_data_size); - } - - result = id3demux_id3v2_frames_to_tag_list (&work, work.hdr.frame_data_size); - - *tags = work.tags; - - g_free (uu_data); - - return result; -} - -static guint -id3demux_id3v2_frame_hdr_size (guint id3v2ver) -{ - /* ID3v2 < 2.3.0 only had 6 byte header */ - switch (ID3V2_VER_MAJOR (id3v2ver)) { - case 0: - case 1: - case 2: - return 6; - case 3: - case 4: - default: - return 10; - } -} - -static const gchar *obsolete_frame_ids[] = { - "CRM", "EQU", "LNK", "RVA", "TIM", "TSI", /* From 2.2 */ - "EQUA", "RVAD", "TIME", "TRDA", "TSIZ", /* From 2.3 */ - NULL -}; - -const struct ID3v2FrameIDConvert -{ - const gchar *orig; - const gchar *new; -} frame_id_conversions[] = { - /* 2.3.x frames */ - { - "TORY", "TDOR"}, { - "TYER", "TDRC"}, - /* 2.2.x frames */ - { - "BUF", "RBUF"}, { - "CNT", "PCNT"}, { - "COM", "COMM"}, { - "CRA", "AENC"}, { - "ETC", "ETCO"}, { - "GEO", "GEOB"}, { - "IPL", "TIPL"}, { - "MCI", "MCDI"}, { - "MLL", "MLLT"}, { - "PIC", "APIC"}, { - "POP", "POPM"}, { - "REV", "RVRB"}, { - "SLT", "SYLT"}, { - "STC", "SYTC"}, { - "TAL", "TALB"}, { - "TBP", "TBPM"}, { - "TCM", "TCOM"}, { - "TCO", "TCON"}, { - "TCR", "TCOP"}, { - "TDA", "TDAT"}, { /* obsolete, but we need to parse it anyway */ - "TDY", "TDLY"}, { - "TEN", "TENC"}, { - "TFT", "TFLT"}, { - "TKE", "TKEY"}, { - "TLA", "TLAN"}, { - "TLE", "TLEN"}, { - "TMT", "TMED"}, { - "TOA", "TOAL"}, { - "TOF", "TOFN"}, { - "TOL", "TOLY"}, { - "TOR", "TDOR"}, { - "TOT", "TOAL"}, { - "TP1", "TPE1"}, { - "TP2", "TPE2"}, { - "TP3", "TPE3"}, { - "TP4", "TPE4"}, { - "TPA", "TPOS"}, { - "TPB", "TPUB"}, { - "TRC", "TSRC"}, { - "TRD", "TDRC"}, { - "TRK", "TRCK"}, { - "TSS", "TSSE"}, { - "TT1", "TIT1"}, { - "TT2", "TIT2"}, { - "TT3", "TIT3"}, { - "TXT", "TOLY"}, { - "TXX", "TXXX"}, { - "TYE", "TDRC"}, { - "UFI", "UFID"}, { - "ULT", "USLT"}, { - "WAF", "WOAF"}, { - "WAR", "WOAR"}, { - "WAS", "WOAS"}, { - "WCM", "WCOM"}, { - "WCP", "WCOP"}, { - "WPB", "WPUB"}, { - "WXX", "WXXX"}, { - NULL, NULL} -}; - -static gboolean -convert_fid_to_v240 (gchar * frame_id) -{ - gint i = 0; - - while (obsolete_frame_ids[i] != NULL) { - if (strncmp (frame_id, obsolete_frame_ids[i], 5) == 0) - return TRUE; - i++; - } - - i = 0; - while (frame_id_conversions[i].orig != NULL) { - if (strncmp (frame_id, frame_id_conversions[i].orig, 5) == 0) { - strcpy (frame_id, frame_id_conversions[i].new); - return FALSE; - } - i++; - } - return FALSE; -} - - -/* add unknown or unhandled ID3v2 frames to the taglist as binary blobs */ -static void -id3demux_add_id3v2_frame_blob_to_taglist (ID3TagsWorking * work, guint size) -{ - GstBuffer *blob; - GstCaps *caps; - guint8 *frame_data; - gchar *media_type; - guint frame_size, header_size; - guint i; - - switch (ID3V2_VER_MAJOR (work->hdr.version)) { - case 1: - case 2: - header_size = 3 + 3; - break; - case 3: - case 4: - header_size = 4 + 4 + 2; - break; - default: - g_return_if_reached (); - } - - frame_data = work->hdr.frame_data - header_size; - frame_size = size + header_size; - - blob = gst_buffer_new_and_alloc (frame_size); - memcpy (GST_BUFFER_DATA (blob), frame_data, frame_size); - - /* Sanitize frame id */ - for (i = 0; i < 4; i++) { - if (!g_ascii_isalnum (frame_data[i])) - frame_data[i] = '_'; - } - - media_type = g_strdup_printf ("application/x-gst-id3v2-%c%c%c%c-frame", - g_ascii_tolower (frame_data[0]), g_ascii_tolower (frame_data[1]), - g_ascii_tolower (frame_data[2]), g_ascii_tolower (frame_data[3])); - caps = gst_caps_new_simple (media_type, "version", G_TYPE_INT, - (gint) ID3V2_VER_MAJOR (work->hdr.version), NULL); - gst_buffer_set_caps (blob, caps); - gst_caps_unref (caps); - g_free (media_type); - - /* gst_util_dump_mem (GST_BUFFER_DATA (blob), GST_BUFFER_SIZE (blob)); */ - - gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, - GST_ID3_DEMUX_TAG_ID3V2_FRAME, blob, NULL); - gst_buffer_unref (blob); -} - -static ID3TagsResult -id3demux_id3v2_frames_to_tag_list (ID3TagsWorking * work, guint size) -{ - guint frame_hdr_size; - guint8 *start; - - /* Extended header if present */ - if (work->hdr.flags & ID3V2_HDR_FLAG_EXTHDR) { - work->hdr.ext_hdr_size = read_synch_uint (work->hdr.frame_data, 4); - if (work->hdr.ext_hdr_size < 6 || - (work->hdr.ext_hdr_size) > work->hdr.frame_data_size) { - GST_DEBUG ("Invalid extended header. Broken tag"); - return ID3TAGS_BROKEN_TAG; - } - work->hdr.ext_flag_bytes = work->hdr.frame_data[4]; - if (5 + work->hdr.ext_flag_bytes > work->hdr.frame_data_size) { - GST_DEBUG - ("Tag claims extended header, but doesn't have enough bytes. Broken tag"); - return ID3TAGS_BROKEN_TAG; - } - - work->hdr.ext_flag_data = work->hdr.frame_data + 5; - work->hdr.frame_data += work->hdr.ext_hdr_size; - work->hdr.frame_data_size -= work->hdr.ext_hdr_size; - } - - start = GST_BUFFER_DATA (work->buffer); - frame_hdr_size = id3demux_id3v2_frame_hdr_size (work->hdr.version); - if (work->hdr.frame_data_size <= frame_hdr_size) { - GST_DEBUG ("Tag has no data frames. Broken tag"); - return ID3TAGS_BROKEN_TAG; /* Must have at least one frame */ - } - - work->tags = gst_tag_list_new (); - g_return_val_if_fail (work->tags != NULL, ID3TAGS_READ_TAG); - - while (work->hdr.frame_data_size > frame_hdr_size) { - guint frame_size = 0; - gchar frame_id[5] = ""; - guint16 frame_flags = 0x0; - gboolean obsolete_id = FALSE; - gboolean read_synch_size = TRUE; - guint i; - - /* Read the header */ - switch (ID3V2_VER_MAJOR (work->hdr.version)) { - case 0: - case 1: - case 2: - frame_id[0] = work->hdr.frame_data[0]; - frame_id[1] = work->hdr.frame_data[1]; - frame_id[2] = work->hdr.frame_data[2]; - frame_id[3] = 0; - frame_id[4] = 0; - obsolete_id = convert_fid_to_v240 (frame_id); - - /* 3 byte non-synchsafe size */ - frame_size = work->hdr.frame_data[3] << 16 | - work->hdr.frame_data[4] << 8 | work->hdr.frame_data[5]; - frame_flags = 0; - break; - case 3: - read_synch_size = FALSE; /* 2.3 frame size is not synch-safe */ - case 4: - default: - frame_id[0] = work->hdr.frame_data[0]; - frame_id[1] = work->hdr.frame_data[1]; - frame_id[2] = work->hdr.frame_data[2]; - frame_id[3] = work->hdr.frame_data[3]; - frame_id[4] = 0; - if (read_synch_size) - frame_size = read_synch_uint (work->hdr.frame_data + 4, 4); - else - frame_size = GST_READ_UINT32_BE (work->hdr.frame_data + 4); - - frame_flags = GST_READ_UINT16_BE (work->hdr.frame_data + 8); - - if (ID3V2_VER_MAJOR (work->hdr.version) == 3) { - frame_flags &= ID3V2_3_FRAME_FLAGS_MASK; - obsolete_id = convert_fid_to_v240 (frame_id); - if (obsolete_id) - GST_DEBUG ("Ignoring v2.3 frame %s", frame_id); - } - break; - } - - work->hdr.frame_data += frame_hdr_size; - work->hdr.frame_data_size -= frame_hdr_size; - - if (frame_size > work->hdr.frame_data_size || strcmp (frame_id, "") == 0) - break; /* No more frames to read */ - - /* Sanitize frame id */ - switch (ID3V2_VER_MAJOR (work->hdr.version)) { - case 0: - case 1: - case 2: - for (i = 0; i < 3; i++) { - if (!g_ascii_isalnum (frame_id[i])) - frame_id[i] = '_'; - } - break; - default: - for (i = 0; i < 4; i++) { - if (!g_ascii_isalnum (frame_id[i])) - frame_id[i] = '_'; - } - } -#if 1 - GST_LOG - ("Frame @ %ld (0x%02lx) id %s size %u, next=%ld (0x%02lx) obsolete=%d", - (glong) (work->hdr.frame_data - start), - (glong) (work->hdr.frame_data - start), frame_id, frame_size, - (glong) (work->hdr.frame_data + frame_hdr_size + frame_size - start), - (glong) (work->hdr.frame_data + frame_hdr_size + frame_size - start), - obsolete_id); -#define flag_string(flag,str) \ - ((frame_flags & (flag)) ? (str) : "") - GST_LOG ("Frame header flags: 0x%04x %s %s %s %s %s %s %s", frame_flags, - flag_string (ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE, "ALTER_PRESERVE"), - flag_string (ID3V2_FRAME_STATUS_READONLY, "READONLY"), - flag_string (ID3V2_FRAME_FORMAT_GROUPING_ID, "GROUPING_ID"), - flag_string (ID3V2_FRAME_FORMAT_COMPRESSION, "COMPRESSION"), - flag_string (ID3V2_FRAME_FORMAT_ENCRYPTION, "ENCRYPTION"), - flag_string (ID3V2_FRAME_FORMAT_UNSYNCHRONISATION, "UNSYNC"), - flag_string (ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR, "LENGTH_IND")); -#undef flag_str -#endif - - if (!obsolete_id) { - /* Now, read, decompress etc the contents of the frame - * into a TagList entry */ - work->cur_frame_size = frame_size; - work->frame_id = frame_id; - work->frame_flags = frame_flags; - - if (id3demux_id3v2_parse_frame (work)) { - GST_LOG ("Extracted frame with id %s", frame_id); - } else { - GST_LOG ("Failed to extract frame with id %s", frame_id); - id3demux_add_id3v2_frame_blob_to_taglist (work, frame_size); - } - } - work->hdr.frame_data += frame_size; - work->hdr.frame_data_size -= frame_size; - } - - if (gst_structure_n_fields (GST_STRUCTURE (work->tags)) == 0) { - GST_DEBUG ("Could not extract any frames from tag. Broken or empty tag"); - gst_tag_list_free (work->tags); - work->tags = NULL; - return ID3TAGS_BROKEN_TAG; - } - - /* Set day/month now if they were in a separate (obsolete) TDAT frame */ - if (work->pending_day != 0 && work->pending_month != 0) { - GDate *date = NULL; - - if (gst_tag_list_get_date (work->tags, GST_TAG_DATE, &date)) { - g_date_set_day (date, work->pending_day); - g_date_set_month (date, work->pending_month); - gst_tag_list_add (work->tags, GST_TAG_MERGE_REPLACE, GST_TAG_DATE, - date, NULL); - g_date_free (date); - } - } - - return ID3TAGS_READ_TAG; -} diff --git a/gst/id3demux/id3tags.h b/gst/id3demux/id3tags.h deleted file mode 100644 index 14a42de..0000000 --- a/gst/id3demux/id3tags.h +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright 2005 Jan Schmidt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __ID3TAGS_H__ -#define __ID3TAGS_H__ - -#include - -G_BEGIN_DECLS - -/* private tag for storing unprocessed ID3v2 frames */ -#define GST_ID3_DEMUX_TAG_ID3V2_FRAME "private-id3v2-frame" - -#define ID3V1_TAG_SIZE 128 -#define ID3V2_MARK_SIZE 3 -#define ID3V2_HDR_SIZE 10 - -typedef enum { - ID3TAGS_MORE_DATA, - ID3TAGS_READ_TAG, - ID3TAGS_BROKEN_TAG -} ID3TagsResult; - -/* From id3tags.c */ -guint id3demux_calc_id3v2_tag_size (GstBuffer * buf); -ID3TagsResult id3demux_read_id3v2_tag (GstBuffer *buffer, guint *id3v2_size, - GstTagList **tags); - -guint read_synch_uint (const guint8 * data, guint size); - -/* Things shared by id3tags.c and id3v2frames.c */ -#define ID3V2_VERSION 0x0400 -#define ID3V2_VER_MAJOR(v) ((v) >> 8) -#define ID3V2_VER_MINOR(v) ((v) & 0xff) - -typedef struct { - guint16 version; - guint8 flags; - guint32 size; - - guint8 *frame_data; - guint32 frame_data_size; - - guint32 ext_hdr_size; - guint8 ext_flag_bytes; - guint8 *ext_flag_data; -} ID3v2Header; - -typedef struct { - ID3v2Header hdr; - - GstBuffer *buffer; - GstTagList *tags; - - /* Current frame decoding */ - guint cur_frame_size; - gchar *frame_id; - guint16 frame_flags; - - guint8 *parse_data; - guint parse_size; - - /* To collect day/month from obsolete TDAT frame if it exists */ - guint pending_month; - guint pending_day; -} ID3TagsWorking; - -enum { - ID3V2_HDR_FLAG_UNSYNC = 0x80, - ID3V2_HDR_FLAG_EXTHDR = 0x40, - ID3V2_HDR_FLAG_EXPERIMENTAL = 0x20, - ID3V2_HDR_FLAG_FOOTER = 0x10 -}; - -enum { - ID3V2_EXT_FLAG_UPDATE = 0x80, - ID3V2_EXT_FLAG_CRC = 0x40, - ID3V2_EXT_FLAG_RESTRICTED = 0x20 -}; - -enum { - ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE = 0x4000, - ID3V2_FRAME_STATUS_FILE_ALTER_PRESERVE = 0x2000, - ID3V2_FRAME_STATUS_READONLY = 0x1000, - ID3V2_FRAME_FORMAT_GROUPING_ID = 0x0040, - ID3V2_FRAME_FORMAT_COMPRESSION = 0x0008, - ID3V2_FRAME_FORMAT_ENCRYPTION = 0x0004, - ID3V2_FRAME_FORMAT_UNSYNCHRONISATION = 0x0002, - ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR = 0x0001 -}; - -#define ID3V2_3_FRAME_FLAGS_MASK \ - (ID3V2_FRAME_STATUS_FRAME_ALTER_PRESERVE | \ - ID3V2_FRAME_STATUS_FILE_ALTER_PRESERVE | \ - ID3V2_FRAME_STATUS_READONLY | \ - ID3V2_FRAME_FORMAT_GROUPING_ID | \ - ID3V2_FRAME_FORMAT_COMPRESSION | \ - ID3V2_FRAME_FORMAT_ENCRYPTION) - -/* From id3v2frames.c */ -gboolean id3demux_id3v2_parse_frame (ID3TagsWorking *work); - -guint8 * id3demux_ununsync_data (const guint8 * unsync_data, guint32 * size); - -G_END_DECLS - -#endif diff --git a/gst/id3demux/id3v2frames.c b/gst/id3demux/id3v2frames.c deleted file mode 100644 index e51bbb7..0000000 --- a/gst/id3demux/id3v2frames.c +++ /dev/null @@ -1,1167 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */ -/* Copyright 2006-2008 Tim-Philipp Müller - * Copyright 2005 Jan Schmidt - * Copyright 2002,2003 Scott Wheeler (portions from taglib) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include - -#ifdef HAVE_ZLIB -#include -#endif - -#include "id3tags.h" - -GST_DEBUG_CATEGORY_EXTERN (id3demux_debug); -#define GST_CAT_DEFAULT (id3demux_debug) - -static gboolean parse_comment_frame (ID3TagsWorking * work); -static gchar *parse_url_link_frame (ID3TagsWorking * work, - const gchar ** tag_name); -static GArray *parse_text_identification_frame (ID3TagsWorking * work); -static gchar *parse_user_text_identification_frame (ID3TagsWorking * work, - const gchar ** tag_name); -static gchar *parse_unique_file_identifier (ID3TagsWorking * work, - const gchar ** tag_name); -static gboolean parse_relative_volume_adjustment_two (ID3TagsWorking * work); -static void parse_obsolete_tdat_frame (ID3TagsWorking * work); -static gboolean id3v2_tag_to_taglist (ID3TagsWorking * work, - const gchar * tag_name, const gchar * tag_str); -/* Parse a single string into an array of gchar* */ -static void parse_split_strings (guint8 encoding, gchar * data, gint data_size, - GArray ** out_fields); -static void free_tag_strings (GArray * fields); -static gboolean -id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name, - GArray * tag_fields); -static gboolean parse_picture_frame (ID3TagsWorking * work); - -#define ID3V2_ENCODING_ISO8859 0x00 -#define ID3V2_ENCODING_UTF16 0x01 -#define ID3V2_ENCODING_UTF16BE 0x02 -#define ID3V2_ENCODING_UTF8 0x03 - -gboolean -id3demux_id3v2_parse_frame (ID3TagsWorking * work) -{ - const gchar *tag_name; - gboolean result = FALSE; - gint i; - guint8 *frame_data = work->hdr.frame_data; - guint frame_data_size = work->cur_frame_size; - gchar *tag_str = NULL; - GArray *tag_fields = NULL; - guint8 *uu_data = NULL; - -#ifdef HAVE_ZLIB - guint8 *uncompressed_data = NULL; -#endif - - /* Check that the frame id is valid */ - for (i = 0; i < 5 && work->frame_id[i] != '\0'; i++) { - if (!g_ascii_isalnum (work->frame_id[i])) { - GST_DEBUG ("Encountered invalid frame_id"); - return FALSE; - } - } - - /* Can't handle encrypted frames right now (in case we ever do, we'll have - * to do the decryption after the un-unsynchronisation and decompression, - * not here) */ - if (work->frame_flags & ID3V2_FRAME_FORMAT_ENCRYPTION) { - GST_WARNING ("Encrypted frames are not supported"); - return FALSE; - } - - tag_name = gst_tag_from_id3_tag (work->frame_id); - if (tag_name == NULL && - strncmp (work->frame_id, "RVA2", 4) != 0 && - strncmp (work->frame_id, "TXXX", 4) != 0 && - strncmp (work->frame_id, "TDAT", 4) != 0 && - strncmp (work->frame_id, "UFID", 4) != 0) { - return FALSE; - } - - if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION | - ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) { - if (work->hdr.frame_data_size <= 4) - return FALSE; - if (ID3V2_VER_MAJOR (work->hdr.version) == 3) { - work->parse_size = GST_READ_UINT32_BE (frame_data); - } else { - work->parse_size = read_synch_uint (frame_data, 4); - } - frame_data += 4; - frame_data_size -= 4; - GST_LOG ("Un-unsynced data size %d (of %d)", work->parse_size, - frame_data_size); - if (work->parse_size > frame_data_size) { - GST_WARNING ("ID3v2 frame %s data has invalid size %d (>%d)", - work->frame_id, work->parse_size, frame_data_size); - return FALSE; - } - } - - /* in v2.3 the frame sizes are not syncsafe, so the entire tag had to be - * unsynced. In v2.4 the frame sizes are syncsafe so it's just the frame - * data that needs un-unsyncing, but not the frame headers. */ - if (ID3V2_VER_MAJOR (work->hdr.version) == 4) { - if ((work->hdr.flags & ID3V2_HDR_FLAG_UNSYNC) != 0 || - ((work->frame_flags & ID3V2_FRAME_FORMAT_UNSYNCHRONISATION) != 0)) { - GST_DEBUG ("Un-unsyncing frame %s", work->frame_id); - uu_data = id3demux_ununsync_data (frame_data, &frame_data_size); - frame_data = uu_data; - GST_MEMDUMP ("ID3v2 frame (un-unsyced)", frame_data, frame_data_size); - } - } - - work->parse_size = frame_data_size; - - if (work->frame_flags & ID3V2_FRAME_FORMAT_COMPRESSION) { -#ifdef HAVE_ZLIB - uLongf destSize = work->parse_size; - Bytef *dest, *src; - - uncompressed_data = g_malloc (work->parse_size); - - dest = (Bytef *) uncompressed_data; - src = (Bytef *) frame_data; - - if (uncompress (dest, &destSize, src, frame_data_size) != Z_OK) { - g_free (uncompressed_data); - g_free (uu_data); - return FALSE; - } - if (destSize != work->parse_size) { - GST_WARNING - ("Decompressing ID3v2 frame %s did not produce expected size %d bytes (got %lu)", - tag_name, work->parse_size, destSize); - g_free (uncompressed_data); - g_free (uu_data); - return FALSE; - } - work->parse_data = uncompressed_data; -#else - GST_WARNING ("Compressed ID3v2 tag frame could not be decompressed" - " because gstid3demux was compiled without zlib support"); - g_free (uu_data); - return FALSE; -#endif - } else { - work->parse_data = frame_data; - } - - if (work->frame_id[0] == 'T') { - if (strcmp (work->frame_id, "TDAT") == 0) { - parse_obsolete_tdat_frame (work); - result = TRUE; - } else if (strcmp (work->frame_id, "TXXX") == 0) { - /* Handle user text frame */ - tag_str = parse_user_text_identification_frame (work, &tag_name); - } else { - /* Text identification frame */ - tag_fields = parse_text_identification_frame (work); - } - } else if (work->frame_id[0] == 'W' && strcmp (work->frame_id, "WXXX") != 0) { - /* URL link frame: ISO-8859-1 encoded, one frame per tag */ - tag_str = parse_url_link_frame (work, &tag_name); - } else if (!strcmp (work->frame_id, "COMM")) { - /* Comment */ - result = parse_comment_frame (work); - } else if (!strcmp (work->frame_id, "APIC")) { - /* Attached picture */ - result = parse_picture_frame (work); - } else if (!strcmp (work->frame_id, "RVA2")) { - /* Relative volume */ - result = parse_relative_volume_adjustment_two (work); - } else if (!strcmp (work->frame_id, "UFID")) { - /* Unique file identifier */ - tag_str = parse_unique_file_identifier (work, &tag_name); - } -#ifdef HAVE_ZLIB - if (work->frame_flags & ID3V2_FRAME_FORMAT_COMPRESSION) { - g_free (uncompressed_data); - uncompressed_data = NULL; - work->parse_data = frame_data; - } -#endif - - if (tag_str != NULL) { - /* g_print ("Tag %s value %s\n", tag_name, tag_str); */ - result = id3v2_tag_to_taglist (work, tag_name, tag_str); - g_free (tag_str); - } - if (tag_fields != NULL) { - if (strcmp (work->frame_id, "TCON") == 0) { - /* Genre strings need special treatment */ - result |= id3v2_genre_fields_to_taglist (work, tag_name, tag_fields); - } else { - gint t; - - for (t = 0; t < tag_fields->len; t++) { - tag_str = g_array_index (tag_fields, gchar *, t); - if (tag_str != NULL && tag_str[0] != '\0') - result |= id3v2_tag_to_taglist (work, tag_name, tag_str); - } - } - free_tag_strings (tag_fields); - } - - g_free (uu_data); - - return result; -} - -static gboolean -parse_comment_frame (ID3TagsWorking * work) -{ - guint dummy; - guint8 encoding; - gchar language[4]; - GArray *fields = NULL; - gchar *description, *text; - - if (work->parse_size < 6) - return FALSE; - - encoding = work->parse_data[0]; - language[0] = g_ascii_tolower (work->parse_data[1]); - language[1] = g_ascii_tolower (work->parse_data[2]); - language[2] = g_ascii_tolower (work->parse_data[3]); - language[3] = '\0'; - - parse_split_strings (encoding, (gchar *) work->parse_data + 4, - work->parse_size - 4, &fields); - - if (fields == NULL || fields->len < 2) { - GST_WARNING ("Failed to decode comment frame"); - goto fail; - } - description = g_array_index (fields, gchar *, 0); - text = g_array_index (fields, gchar *, 1); - - if (!g_utf8_validate (text, -1, NULL)) { - GST_WARNING ("Converted string is not valid utf-8"); - goto fail; - } - - /* skip our own dummy descriptions (from id3v2mux) */ - if (strlen (description) > 0 && g_utf8_validate (description, -1, NULL) && - sscanf (description, "c%u", &dummy) != 1) { - gchar *s; - - /* must be either an ISO-639-1 or ISO-639-2 language code */ - if (language[0] != '\0' && - g_ascii_isalpha (language[0]) && - g_ascii_isalpha (language[1]) && - (g_ascii_isalpha (language[2]) || language[2] == '\0')) { - const gchar *lang_code; - - /* prefer two-letter ISO 639-1 code if we have a mapping */ - lang_code = gst_tag_get_language_code (language); - s = g_strdup_printf ("%s[%s]=%s", description, - (lang_code) ? lang_code : language, text); - } else { - s = g_strdup_printf ("%s=%s", description, text); - } - gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, - GST_TAG_EXTENDED_COMMENT, s, NULL); - g_free (s); - } else if (text != NULL && *text != '\0') { - gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, - GST_TAG_COMMENT, text, NULL); - } else { - goto fail; - } - - free_tag_strings (fields); - return TRUE; - -fail: - { - GST_WARNING ("failed to parse COMM frame"); - free_tag_strings (fields); - return FALSE; - } -} - -static GArray * -parse_text_identification_frame (ID3TagsWorking * work) -{ - guchar encoding; - GArray *fields = NULL; - - if (work->parse_size < 2) - return NULL; - - encoding = work->parse_data[0]; - parse_split_strings (encoding, (gchar *) work->parse_data + 1, - work->parse_size - 1, &fields); - if (fields) { - if (fields->len > 0) { - GST_LOG ("Read %d fields from Text ID frame of size %d with encoding %d" - ". First is '%s'", fields->len, work->parse_size - 1, encoding, - g_array_index (fields, gchar *, 0)); - } else { - GST_LOG ("Read 0 fields from Text ID frame of size %d with encoding %d", - work->parse_size - 1, encoding); - } - } - - return fields; -} - -static gboolean -link_is_known_license (const gchar * url) -{ - return g_str_has_prefix (url, "http://creativecommons.org/licenses/"); -} - -static gchar * -parse_url_link_frame (ID3TagsWorking * work, const gchar ** tag_name) -{ - gsize len; - gchar *nul, *data, *link; - - *tag_name = NULL; - - if (work->parse_size == 0) - return NULL; - - data = (gchar *) work->parse_data; - /* if there's more data then the string is long, we only want to parse the - * data up to the terminating zero to g_convert and ignore the rest, as - * per spec */ - nul = memchr (data, '\0', work->parse_size); - if (nul != NULL) { - len = (gsize) (nul - data); - } else { - len = work->parse_size; - } - - link = g_convert (data, len, "UTF-8", "ISO-8859-1", NULL, NULL, NULL); - - if (link == NULL || !gst_uri_is_valid (link)) { - GST_DEBUG ("Invalid URI in %s frame: %s", work->frame_id, - GST_STR_NULL (link)); - g_free (link); - return NULL; - } - - /* we don't know if it's a link to a page that explains the copyright - * situation, or a link that points to/represents a license, the ID3 spec - * does not separate those two things; for now only put known license URIs - * into GST_TAG_LICENSE_URI and everything else into GST_TAG_COPYRIGHT_URI */ - if (strcmp (work->frame_id, "WCOP") == 0) { - if (link_is_known_license (link)) - *tag_name = GST_TAG_LICENSE_URI; - else - *tag_name = GST_TAG_COPYRIGHT_URI; - } else if (strcmp (work->frame_id, "WOAF") == 0) { - /* can't be bothered to create a CONTACT_URI tag for this, so let's just - * put into into GST_TAG_CONTACT, which is where it ends up when reading - * the info from vorbis comments as well */ - *tag_name = GST_TAG_CONTACT; - } - - return link; -} - - -static gchar * -parse_user_text_identification_frame (ID3TagsWorking * work, - const gchar ** tag_name) -{ - gchar *ret; - guchar encoding; - GArray *fields = NULL; - - *tag_name = NULL; - - if (work->parse_size < 2) - return NULL; - - encoding = work->parse_data[0]; - - parse_split_strings (encoding, (gchar *) work->parse_data + 1, - work->parse_size - 1, &fields); - - if (fields == NULL) - return NULL; - - if (fields->len != 2) { - GST_WARNING ("Expected 2 fields in TXXX frame, but got %d", fields->len); - free_tag_strings (fields); - return NULL; - } - - *tag_name = - gst_tag_from_id3_user_tag ("TXXX", g_array_index (fields, gchar *, 0)); - - GST_LOG ("TXXX frame of size %d. Mapped descriptor '%s' to GStreamer tag %s", - work->parse_size - 1, g_array_index (fields, gchar *, 0), - GST_STR_NULL (*tag_name)); - - if (*tag_name) { - ret = g_strdup (g_array_index (fields, gchar *, 1)); - /* GST_LOG ("%s = %s", *tag_name, GST_STR_NULL (ret)); */ - } else { - ret = NULL; - } - - free_tag_strings (fields); - return ret; -} - -static gboolean -parse_id_string (ID3TagsWorking * work, gchar ** p_str, gint * p_len, - gint * p_datalen) -{ - gint len, datalen; - - if (work->parse_size < 2) - return FALSE; - - for (len = 0; len < work->parse_size - 1; ++len) { - if (work->parse_data[len] == '\0') - break; - } - - datalen = work->parse_size - (len + 1); - if (len == 0 || datalen <= 0) - return FALSE; - - *p_str = g_strndup ((gchar *) work->parse_data, len); - *p_len = len; - *p_datalen = datalen; - - return TRUE; -} - -static gchar * -parse_unique_file_identifier (ID3TagsWorking * work, const gchar ** tag_name) -{ - gint len, datalen; - gchar *owner_id, *data, *ret = NULL; - - GST_LOG ("parsing UFID frame of size %d", work->parse_size); - - if (!parse_id_string (work, &owner_id, &len, &datalen)) - return NULL; - - data = (gchar *) work->parse_data + len + 1; - GST_LOG ("UFID owner ID: %s (+ %d bytes of data)", owner_id, datalen); - - if (strcmp (owner_id, "http://musicbrainz.org") == 0 && - g_utf8_validate (data, datalen, NULL)) { - *tag_name = GST_TAG_MUSICBRAINZ_TRACKID; - ret = g_strndup (data, datalen); - } else { - GST_INFO ("Unknown UFID owner ID: %s", owner_id); - } - g_free (owner_id); - - return ret; -} - -/* parse data and return length of the next string in the given encoding, - * including the NUL terminator */ -static gint -scan_encoded_string (guint8 encoding, gchar * data, gint data_size) -{ - gint i; - - switch (encoding) { - case ID3V2_ENCODING_ISO8859: - case ID3V2_ENCODING_UTF8: - for (i = 0; i < data_size; ++i) { - if (data[i] == '\0') - return i + 1; - } - break; - case ID3V2_ENCODING_UTF16: - case ID3V2_ENCODING_UTF16BE: - /* we don't care about BOMs here and treat them as part of the string */ - /* Find '\0\0' terminator */ - for (i = 0; i < data_size - 1; i += 2) { - if (data[i] == '\0' && data[i + 1] == '\0') - return i + 2; - } - break; - default: - break; - } - - return 0; -} - -static gboolean -parse_picture_frame (ID3TagsWorking * work) -{ - guint8 txt_encoding, pic_type; - gchar *mime_str = NULL; - gint len, datalen; - - GST_LOG ("APIC frame (ID3v2.%u)", ID3V2_VER_MAJOR (work->hdr.version)); - - if (work->parse_size < 1 + 1 + 1 + 1 + 1) - goto not_enough_data; - - txt_encoding = work->parse_data[0]; - ++work->parse_data; - --work->parse_size; - - /* Read image format; in early ID3v2 versions this is a fixed-length - * 3-character string without terminator; in later versions (>= 2.3.0) - * this is a NUL-terminated string of variable length */ - if (ID3V2_VER_MAJOR (work->hdr.version) < 3) { - if (work->parse_size < 3) - goto not_enough_data; - - mime_str = g_strndup ((gchar *) work->parse_data, 3); - len = 3; - } else { - if (!parse_id_string (work, &mime_str, &len, &datalen)) - return FALSE; - ++len; /* for string terminator */ - } - - if (work->parse_size < len + 1 + 1 + 1) - goto not_enough_data; - - work->parse_data += len; - work->parse_size -= len; - - /* Read image type */ - pic_type = work->parse_data[0]; - ++work->parse_data; - --work->parse_size; - - GST_LOG ("APIC frame mime type : %s", GST_STR_NULL (mime_str)); - GST_LOG ("APIC frame picture type : 0x%02x", (guint) pic_type); - - if (work->parse_size < 1 + 1) - goto not_enough_data; - - len = scan_encoded_string (txt_encoding, (gchar *) work->parse_data, - work->parse_size); - - if (len < 1) - goto error; - - /* just skip the description string ... */ - GST_LOG ("Skipping description string (%d bytes in original coding)", len); - - if (work->parse_size < len + 1) - goto not_enough_data; - - work->parse_data += len; - work->parse_size -= len; - - GST_DEBUG ("image data is %u bytes", work->parse_size); - - if (work->parse_size <= 0) - goto not_enough_data; - - if (!gst_tag_list_add_id3_image (work->tags, (guint8 *) work->parse_data, - work->parse_size, pic_type)) { - goto error; - } - - g_free (mime_str); - return TRUE; - -not_enough_data: - { - GST_DEBUG ("not enough data, skipping APIC frame"); - /* fall through to error */ - } -error: - { - GST_DEBUG ("problem parsing APIC frame, skipping"); - g_free (mime_str); - return FALSE; - } -} - -#define ID3V2_RVA2_CHANNEL_MASTER 1 - -static gboolean -parse_relative_volume_adjustment_two (ID3TagsWorking * work) -{ - const gchar *gain_tag_name = NULL; - const gchar *peak_tag_name = NULL; - gdouble gain_dB, peak_val; - guint64 peak; - guint8 *data, chan, peak_bits; - gchar *id; - gint len, datalen, i; - - if (!parse_id_string (work, &id, &len, &datalen)) - return FALSE; - - if (datalen < (1 + 2 + 1)) { - GST_WARNING ("broken RVA2 frame, data size only %d bytes", datalen); - g_free (id); - return FALSE; - } - - data = work->parse_data + len + 1; - chan = GST_READ_UINT8 (data); - gain_dB = (gdouble) ((gint16) GST_READ_UINT16_BE (data + 1)) / 512.0; - /* The meaning of the peak value is not defined in the ID3v2 spec. However, - * the first/only implementation of this seems to have been in XMMS, and - * other libs (like mutagen) seem to follow that implementation as well: - * see http://bugs.xmms.org/attachment.cgi?id=113&action=view */ - peak_bits = GST_READ_UINT8 (data + 1 + 2); - if (peak_bits > 64) { - GST_WARNING ("silly peak precision of %d bits, ignoring", (gint) peak_bits); - peak_bits = 0; - } - data += 1 + 2 + 1; - datalen -= 1 + 2 + 1; - if (peak_bits == 16) { - peak = GST_READ_UINT16_BE (data); - } else { - peak = 0; - for (i = 0; i < (GST_ROUND_UP_8 (peak_bits) / 8) && datalen > 0; ++i) { - peak = peak << 8; - peak |= GST_READ_UINT8 (data); - ++data; - --datalen; - } - } - - peak = peak << (64 - GST_ROUND_UP_8 (peak_bits)); - peak_val = - gst_guint64_to_gdouble (peak) / gst_util_guint64_to_gdouble (G_MAXINT64); - GST_LOG ("RVA2 frame: id=%s, chan=%u, adj=%.2fdB, peak_bits=%u, peak=%.2f", - id, chan, gain_dB, (guint) peak_bits, peak_val); - - if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "track") == 0) { - gain_tag_name = GST_TAG_TRACK_GAIN; - peak_tag_name = GST_TAG_TRACK_PEAK; - } else if (chan == ID3V2_RVA2_CHANNEL_MASTER && strcmp (id, "album") == 0) { - gain_tag_name = GST_TAG_ALBUM_GAIN; - peak_tag_name = GST_TAG_ALBUM_PEAK; - } else { - GST_INFO ("Unhandled RVA2 frame id '%s' for channel %d", id, chan); - } - - if (gain_tag_name) { - gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, - gain_tag_name, gain_dB, NULL); - } - if (peak_tag_name && peak_bits > 0) { - gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, - peak_tag_name, peak_val, NULL); - } - - g_free (id); - - return (gain_tag_name != NULL || peak_tag_name != NULL); -} - -static void -parse_obsolete_tdat_frame (ID3TagsWorking * work) -{ - if (work->parse_size >= 5 && - work->parse_data[0] == ID3V2_ENCODING_ISO8859 && - g_ascii_isdigit (work->parse_data[1]) && - g_ascii_isdigit (work->parse_data[2]) && - g_ascii_isdigit (work->parse_data[3]) && - g_ascii_isdigit (work->parse_data[4])) { - work->pending_day = (10 * g_ascii_digit_value (work->parse_data[1])) + - g_ascii_digit_value (work->parse_data[2]); - work->pending_month = (10 * g_ascii_digit_value (work->parse_data[3])) + - g_ascii_digit_value (work->parse_data[4]); - GST_LOG ("date (dd/mm) %02u/%02u", work->pending_day, work->pending_month); - } -} - -static gboolean -id3v2_tag_to_taglist (ID3TagsWorking * work, const gchar * tag_name, - const gchar * tag_str) -{ - GType tag_type = gst_tag_get_type (tag_name); - GstTagList *tag_list = work->tags; - - if (tag_str == NULL) - return FALSE; - - switch (tag_type) { - case G_TYPE_UINT: - { - gint current, total; - - if (sscanf (tag_str, "%d/%d", ¤t, &total) == 2) { - if (total <= 0) { - GST_WARNING ("Ignoring invalid value for total %d in tag %s", - total, tag_name); - } else { - if (strcmp (tag_name, GST_TAG_TRACK_NUMBER) == 0) { - gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, - GST_TAG_TRACK_COUNT, total, NULL); - } else if (strcmp (tag_name, GST_TAG_ALBUM_VOLUME_NUMBER) == 0) { - gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, - GST_TAG_ALBUM_VOLUME_COUNT, total, NULL); - } - } - } else if (sscanf (tag_str, "%d", ¤t) != 1) { - /* Not an integer in the string */ - GST_WARNING ("Tag string for tag %s does not contain an integer - " - "ignoring", tag_name); - break; - } - - if (current <= 0) { - GST_WARNING ("Ignoring invalid value %d in tag %s", current, tag_name); - } else { - gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, tag_name, current, - NULL); - } - break; - } - case G_TYPE_UINT64: - { - guint64 tmp; - - g_assert (strcmp (tag_name, GST_TAG_DURATION) == 0); - tmp = strtoul (tag_str, NULL, 10); - if (tmp == 0) { - break; - } - gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, - GST_TAG_DURATION, tmp * 1000 * 1000, NULL); - break; - } - case G_TYPE_STRING:{ - const GValue *val; - guint i, num; - - /* make sure we add each unique string only once per tag, we don't want - * to have the same genre in the genre list multiple times, for example, - * or the same DiscID in there twice just because it's contained in the - * tag multiple times under different TXXX user tags */ - num = gst_tag_list_get_tag_size (tag_list, tag_name); - for (i = 0; i < num; ++i) { - val = gst_tag_list_get_value_index (tag_list, tag_name, i); - if (val != NULL && strcmp (g_value_get_string (val), tag_str) == 0) - break; - } - if (i == num) { - gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, - tag_name, tag_str, NULL); - } - break; - } - - default:{ - gchar *tmp = NULL; - GValue src = { 0, }; - GValue dest = { 0, }; - - /* Ensure that any date string is complete */ - if (tag_type == GST_TYPE_DATE) { - guint year = 1901, month = 1, day = 1; - - /* Dates can be yyyy-MM-dd, yyyy-MM or yyyy, but we need - * the first type */ - if (sscanf (tag_str, "%04u-%02u-%02u", &year, &month, &day) == 0) - break; - - tmp = g_strdup_printf ("%04u-%02u-%02u", year, month, day); - tag_str = tmp; - } - - /* handles anything else */ - g_value_init (&src, G_TYPE_STRING); - g_value_set_string (&src, (const gchar *) tag_str); - g_value_init (&dest, tag_type); - - if (g_value_transform (&src, &dest)) { - gst_tag_list_add_values (tag_list, GST_TAG_MERGE_APPEND, - tag_name, &dest, NULL); - } else if (tag_type == G_TYPE_DOUBLE) { - /* replaygain tags in TXXX frames ... */ - g_value_set_double (&dest, g_strtod (tag_str, NULL)); - gst_tag_list_add_values (tag_list, GST_TAG_MERGE_KEEP, - tag_name, &dest, NULL); - GST_LOG ("Converted string '%s' to double %f", tag_str, - g_value_get_double (&dest)); - } else { - GST_WARNING ("Failed to transform tag from string to type '%s'", - g_type_name (tag_type)); - } - - g_value_unset (&src); - g_value_unset (&dest); - g_free (tmp); - break; - } - } - - return TRUE; -} - -/* Check that an array of characters contains only digits */ -static gboolean -id3v2_are_digits (const gchar * chars, gint size) -{ - gint i; - - for (i = 0; i < size; i++) { - if (!g_ascii_isdigit (chars[i])) - return FALSE; - } - return TRUE; -} - -static gboolean -id3v2_genre_string_to_taglist (ID3TagsWorking * work, const gchar * tag_name, - const gchar * tag_str, gint len) -{ - g_return_val_if_fail (tag_str != NULL, FALSE); - - /* If it's a number, it might be a defined genre */ - if (id3v2_are_digits (tag_str, len)) { - tag_str = gst_tag_id3_genre_get (strtol (tag_str, NULL, 10)); - return id3v2_tag_to_taglist (work, tag_name, tag_str); - } - /* Otherwise it might be "RX" or "CR" */ - if (len == 2) { - if (g_ascii_strncasecmp ("rx", tag_str, len) == 0) - return id3v2_tag_to_taglist (work, tag_name, "Remix"); - - if (g_ascii_strncasecmp ("cr", tag_str, len) == 0) - return id3v2_tag_to_taglist (work, tag_name, "Cover"); - } - - /* Otherwise it's a string */ - return id3v2_tag_to_taglist (work, tag_name, tag_str); -} - -static gboolean -id3v2_genre_fields_to_taglist (ID3TagsWorking * work, const gchar * tag_name, - GArray * tag_fields) -{ - gchar *tag_str = NULL; - gboolean result = FALSE; - gint i; - - for (i = 0; i < tag_fields->len; i++) { - gint len; - - tag_str = g_array_index (tag_fields, gchar *, i); - if (tag_str == NULL) - continue; - - len = strlen (tag_str); - /* Only supposed to see '(n)' type numeric genre strings in ID3 <= 2.3.0 - * but apparently we see them in 2.4.0 sometimes too */ - if (TRUE || work->hdr.version <= 0x300) { /* <= 2.3.0 */ - /* Check for genre numbers wrapped in parentheses, possibly - * followed by a string */ - while (len >= 2) { - gint pos; - gboolean found = FALSE; - - /* Double parenthesis ends the numeric genres, but we need - * to swallow the first one so we actually output '(' */ - if (tag_str[0] == '(' && tag_str[1] == '(') { - tag_str++; - len--; - break; - } - - /* If the first char is not a parenthesis, then stop - * looking for parenthesised genre strings */ - if (tag_str[0] != '(') - break; - - for (pos = 1; pos < len; pos++) { - if (tag_str[pos] == ')') { - gchar *tmp_str; - - tmp_str = g_strndup (tag_str + 1, pos - 1); - result |= - id3v2_genre_string_to_taglist (work, tag_name, tmp_str, - pos - 1); - g_free (tmp_str); - tag_str += pos + 1; - len -= pos + 1; - found = TRUE; - break; - } - - /* If we encounter a non-digit while searching for a closing - * parenthesis, we should not try and interpret this as a - * numeric genre string */ - if (!g_ascii_isdigit (tag_str[pos])) - break; - } - if (!found) - break; /* There was no closing parenthesis */ - } - } - - if (len > 0 && tag_str != NULL) - result |= id3v2_genre_string_to_taglist (work, tag_name, tag_str, len); - } - return result; -} - -static const gchar utf16enc[] = "UTF-16"; -static const gchar utf16leenc[] = "UTF-16LE"; -static const gchar utf16beenc[] = "UTF-16BE"; - -static gboolean -find_utf16_bom (gchar * data, const gchar ** p_in_encoding) -{ - guint16 marker = (GST_READ_UINT8 (data) << 8) | GST_READ_UINT8 (data + 1); - - switch (marker) { - case 0xFFFE: - *p_in_encoding = utf16leenc; - return TRUE; - case 0xFEFF: - *p_in_encoding = utf16beenc; - return TRUE; - default: - break; - } - return FALSE; -} - -static void * -string_utf8_dup (const gchar * start, const guint size) -{ - const gchar *env; - gsize bytes_read; - gchar *utf8; - - /* Should we try the charsets specified - * via environment variables FIRST ? */ - if (g_utf8_validate (start, size, NULL)) { - utf8 = g_strndup (start, size); - goto beach; - } - - env = g_getenv ("GST_ID3V1_TAG_ENCODING"); - if (!env || *env == '\0') - env = g_getenv ("GST_ID3_TAG_ENCODING"); - if (!env || *env == '\0') - env = g_getenv ("GST_TAG_ENCODING"); - - /* Try charsets specified via the environment */ - if (env && *env != '\0') { - gchar **c, **csets; - - csets = g_strsplit (env, G_SEARCHPATH_SEPARATOR_S, -1); - - for (c = csets; c && *c; ++c) { - if ((utf8 = - g_convert (start, size, "UTF-8", *c, &bytes_read, NULL, NULL))) { - if (bytes_read == size) { - GST_DEBUG ("Using charset %s to interperate id3 tags\n", *c); - g_strfreev (csets); - goto beach; - } - g_free (utf8); - utf8 = NULL; - } - } - } - /* Try current locale (if not UTF-8) */ - if (!g_get_charset (&env)) { - if ((utf8 = g_locale_to_utf8 (start, size, &bytes_read, NULL, NULL))) { - if (bytes_read == size) { - goto beach; - } - g_free (utf8); - utf8 = NULL; - } - } - - /* Try ISO-8859-1 */ - utf8 = - g_convert (start, size, "UTF-8", "ISO-8859-1", &bytes_read, NULL, NULL); - if (utf8 != NULL && bytes_read == size) { - goto beach; - } - - g_free (utf8); - return NULL; - -beach: - - g_strchomp (utf8); - - return (utf8); -} - -static void -parse_insert_string_field (guint8 encoding, gchar * data, gint data_size, - GArray * fields) -{ - gchar *field = NULL; - - switch (encoding) { - case ID3V2_ENCODING_UTF16: - case ID3V2_ENCODING_UTF16BE: - { - const gchar *in_encode; - - if (encoding == ID3V2_ENCODING_UTF16) - in_encode = utf16enc; - else - in_encode = utf16beenc; - - /* Sometimes we see strings with multiple BOM markers at the start. - * In that case, we assume the innermost one is correct. If that fails - * to produce valid UTF-8, we try the other endianness anyway */ - while (data_size > 2 && find_utf16_bom (data, &in_encode)) { - data += 2; /* skip BOM */ - data_size -= 2; - } - - field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL); - - if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) { - /* As a fallback, try interpreting UTF-16 in the other endianness */ - if (in_encode == utf16beenc) - field = g_convert (data, data_size, "UTF-8", utf16leenc, - NULL, NULL, NULL); - } - } - - break; - case ID3V2_ENCODING_ISO8859: - if (g_utf8_validate (data, data_size, NULL)) - field = g_strndup (data, data_size); - else - /* field = g_convert (data, data_size, "UTF-8", "ISO-8859-1", - NULL, NULL, NULL); */ - field = string_utf8_dup (data, data_size); - break; - default: - field = g_strndup (data, data_size); - break; - } - - if (field) { - if (g_utf8_validate (field, -1, NULL)) { - g_array_append_val (fields, field); - return; - } - - GST_DEBUG ("%s was bad UTF-8 after conversion from encoding %d. Ignoring", - field, encoding); - g_free (field); - } -} - -static void -parse_split_strings (guint8 encoding, gchar * data, gint data_size, - GArray ** out_fields) -{ - GArray *fields = g_array_new (FALSE, TRUE, sizeof (gchar *)); - gint text_pos; - gint prev = 0; - - g_return_if_fail (out_fields != NULL); - - switch (encoding) { - case ID3V2_ENCODING_ISO8859: - for (text_pos = 0; text_pos < data_size; text_pos++) { - if (data[text_pos] == 0) { - parse_insert_string_field (encoding, data + prev, - text_pos - prev + 1, fields); - prev = text_pos + 1; - } - } - if (data_size - prev > 0 && data[prev] != 0x00) { - parse_insert_string_field (encoding, data + prev, - data_size - prev, fields); - } - - break; - case ID3V2_ENCODING_UTF8: - for (prev = 0, text_pos = 0; text_pos < data_size; text_pos++) { - if (data[text_pos] == '\0') { - parse_insert_string_field (encoding, data + prev, - text_pos - prev + 1, fields); - prev = text_pos + 1; - } - } - if (data_size - prev > 0 && data[prev] != 0x00) { - parse_insert_string_field (encoding, data + prev, - data_size - prev, fields); - } - break; - case ID3V2_ENCODING_UTF16: - case ID3V2_ENCODING_UTF16BE: - { - /* Find '\0\0' terminator */ - for (text_pos = 0; text_pos < data_size - 1; text_pos += 2) { - if (data[text_pos] == '\0' && data[text_pos + 1] == '\0') { - /* found a delimiter */ - parse_insert_string_field (encoding, data + prev, - text_pos - prev + 2, fields); - text_pos++; /* Advance to the 2nd NULL terminator */ - prev = text_pos + 1; - break; - } - } - if (data_size - prev > 1 && - (data[prev] != 0x00 || data[prev + 1] != 0x00)) { - /* There were 2 or more non-null chars left, convert those too */ - parse_insert_string_field (encoding, data + prev, - data_size - prev, fields); - } - break; - } - } - if (fields->len > 0) - *out_fields = fields; - else - g_array_free (fields, TRUE); -} - -static void -free_tag_strings (GArray * fields) -{ - if (fields) { - gint i; - gchar *c; - - for (i = 0; i < fields->len; i++) { - c = g_array_index (fields, gchar *, i); - g_free (c); - } - g_array_free (fields, TRUE); - } -} diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in index c6c0327..4c8a06d 100644 --- a/gst/imagefreeze/Makefile.in +++ b/gst/imagefreeze/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstimagefreeze_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgstimagefreeze_la_OBJECTS = \ libgstimagefreeze_la-gstimagefreeze.lo libgstimagefreeze_la_OBJECTS = $(am_libgstimagefreeze_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstimagefreeze_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstimagefreeze_la_SOURCES) DIST_SOURCES = $(libgstimagefreeze_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +548,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstimagefreeze.la: $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_DEPENDENCIES) +libgstimagefreeze.la: $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_DEPENDENCIES) $(EXTRA_libgstimagefreeze_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstimagefreeze_la_LINK) -rpath $(plugindir) $(libgstimagefreeze_la_OBJECTS) $(libgstimagefreeze_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +562,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstimagefreeze_la-gstimagefreeze.lo: gstimagefreeze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -MT libgstimagefreeze_la-gstimagefreeze.lo -MD -MP -MF $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Tpo -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Tpo $(DEPDIR)/libgstimagefreeze_la-gstimagefreeze.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstimagefreeze.c' object='libgstimagefreeze_la-gstimagefreeze.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstimagefreeze.c' object='libgstimagefreeze_la-gstimagefreeze.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstimagefreeze_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstimagefreeze_la_CFLAGS) $(CFLAGS) -c -o libgstimagefreeze_la-gstimagefreeze.lo `test -f 'gstimagefreeze.c' || echo '$(srcdir)/'`gstimagefreeze.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +692,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index 080d275..f5f05dd 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -41,6 +41,12 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + +#include + #include "gstimagefreeze.h" static void gst_image_freeze_finalize (GObject * object); @@ -89,10 +95,10 @@ gst_image_freeze_base_init (gpointer g_class) "Generates a still frame stream from an image", "Sebastian Dröge "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sink_pad_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &sink_pad_template); + gst_element_class_add_static_pad_template (gstelement_class, + &src_pad_template); } static void @@ -393,6 +399,7 @@ gst_image_freeze_convert (GstImageFreeze * self, default: break; } + break; } case GST_FORMAT_TIME:{ switch (*dest_format) { @@ -407,7 +414,7 @@ gst_image_freeze_convert (GstImageFreeze * self, default: break; } - + break; } default: break; @@ -465,12 +472,14 @@ gst_image_freeze_src_query (GstPad * pad, GstQuery * query) position = self->offset; g_mutex_unlock (self->lock); ret = TRUE; + break; } case GST_FORMAT_TIME:{ g_mutex_lock (self->lock); position = self->segment.last_stop; g_mutex_unlock (self->lock); ret = TRUE; + break; } default: break; @@ -497,6 +506,7 @@ gst_image_freeze_src_query (GstPad * pad, GstQuery * query) duration = self->segment.stop; g_mutex_unlock (self->lock); ret = TRUE; + break; } case GST_FORMAT_DEFAULT:{ g_mutex_lock (self->lock); @@ -507,6 +517,7 @@ gst_image_freeze_src_query (GstPad * pad, GstQuery * query) GST_SECOND * self->fps_d); g_mutex_unlock (self->lock); ret = TRUE; + break; } default: break; diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in index a986c84..fcd6846 100644 --- a/gst/interleave/Makefile.in +++ b/gst/interleave/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +117,8 @@ am_libgstinterleave_la_OBJECTS = libgstinterleave_la-plugin.lo \ libgstinterleave_la-interleave.lo \ libgstinterleave_la-deinterleave.lo libgstinterleave_la_OBJECTS = $(am_libgstinterleave_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstinterleave_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -129,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstinterleave_la_SOURCES) DIST_SOURCES = $(libgstinterleave_la_SOURCES) @@ -226,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -301,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -325,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -359,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -423,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -457,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -550,7 +550,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstinterleave.la: $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_DEPENDENCIES) +libgstinterleave.la: $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_DEPENDENCIES) $(EXTRA_libgstinterleave_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstinterleave_la_LINK) -rpath $(plugindir) $(libgstinterleave_la_OBJECTS) $(libgstinterleave_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -566,50 +566,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstinterleave_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-plugin.Tpo -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-plugin.Tpo $(DEPDIR)/libgstinterleave_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstinterleave_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstinterleave_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libgstinterleave_la-interleave.lo: interleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-interleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-interleave.Tpo -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-interleave.Tpo $(DEPDIR)/libgstinterleave_la-interleave.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='interleave.c' object='libgstinterleave_la-interleave.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interleave.c' object='libgstinterleave_la-interleave.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-interleave.lo `test -f 'interleave.c' || echo '$(srcdir)/'`interleave.c libgstinterleave_la-deinterleave.lo: deinterleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -MT libgstinterleave_la-deinterleave.lo -MD -MP -MF $(DEPDIR)/libgstinterleave_la-deinterleave.Tpo -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterleave_la-deinterleave.Tpo $(DEPDIR)/libgstinterleave_la-deinterleave.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='deinterleave.c' object='libgstinterleave_la-deinterleave.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='deinterleave.c' object='libgstinterleave_la-deinterleave.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstinterleave_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterleave_la_CFLAGS) $(CFLAGS) -c -o libgstinterleave_la-deinterleave.lo `test -f 'deinterleave.c' || echo '$(srcdir)/'`deinterleave.c mostlyclean-libtool: -rm -f *.lo @@ -716,10 +710,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/interleave/deinterleave.c b/gst/interleave/deinterleave.c index 84a8f45..ad88c4e 100644 --- a/gst/interleave/deinterleave.c +++ b/gst/interleave/deinterleave.c @@ -190,10 +190,10 @@ gst_deinterleave_base_init (gpointer g_class) "Iain , " "Sebastian Dröge "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &sink_template); + gst_element_class_add_static_pad_template (gstelement_class, + &src_template); } static void diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c index 96a43c8..bc672d1 100644 --- a/gst/interleave/interleave.c +++ b/gst/interleave/interleave.c @@ -320,10 +320,8 @@ gst_interleave_base_init (gpointer g_class) "Andy Wingo , " "Sebastian Dröge "); - gst_element_class_add_pad_template (g_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (g_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (g_class, &sink_template); + gst_element_class_add_static_pad_template (g_class, &src_template); } static void @@ -479,8 +477,13 @@ gst_interleave_request_new_pad (GstElement * element, GstPadTemplate * templ, if (templ->direction != GST_PAD_SINK) goto not_sink_pad; +#if GLIB_CHECK_VERSION(2,29,5) + channels = g_atomic_int_add (&self->channels, 1); + padnumber = g_atomic_int_add (&self->padcounter, 1); +#else channels = g_atomic_int_exchange_and_add (&self->channels, 1); padnumber = g_atomic_int_exchange_and_add (&self->padcounter, 1); +#endif pad_name = g_strdup_printf ("sink%d", padnumber); new_pad = GST_PAD_CAST (g_object_new (GST_TYPE_INTERLEAVE_PAD, diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in index bd7d121..d34d265 100644 --- a/gst/isomp4/Makefile.in +++ b/gst/isomp4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -119,8 +124,8 @@ am_libgstisomp4_la_OBJECTS = libgstisomp4_la-isomp4-plugin.lo \ libgstisomp4_la-descriptors.lo libgstisomp4_la-properties.lo \ libgstisomp4_la-gstqtmuxmap.lo libgstisomp4_la_OBJECTS = $(am_libgstisomp4_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstisomp4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -136,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstisomp4_la_SOURCES) DIST_SOURCES = $(libgstisomp4_la_SOURCES) @@ -233,7 +238,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -308,7 +316,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -332,6 +339,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -366,18 +374,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -430,6 +430,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -464,7 +465,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -591,7 +591,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstisomp4.la: $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_DEPENDENCIES) +libgstisomp4.la: $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_DEPENDENCIES) $(EXTRA_libgstisomp4_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstisomp4_la_LINK) -rpath $(plugindir) $(libgstisomp4_la_OBJECTS) $(libgstisomp4_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -617,130 +617,114 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstisomp4_la-isomp4-plugin.lo: isomp4-plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-isomp4-plugin.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Tpo -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Tpo $(DEPDIR)/libgstisomp4_la-isomp4-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='isomp4-plugin.c' object='libgstisomp4_la-isomp4-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='isomp4-plugin.c' object='libgstisomp4_la-isomp4-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-isomp4-plugin.lo `test -f 'isomp4-plugin.c' || echo '$(srcdir)/'`isomp4-plugin.c libgstisomp4_la-gstrtpxqtdepay.lo: gstrtpxqtdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstrtpxqtdepay.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Tpo -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Tpo $(DEPDIR)/libgstisomp4_la-gstrtpxqtdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpxqtdepay.c' object='libgstisomp4_la-gstrtpxqtdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpxqtdepay.c' object='libgstisomp4_la-gstrtpxqtdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstrtpxqtdepay.lo `test -f 'gstrtpxqtdepay.c' || echo '$(srcdir)/'`gstrtpxqtdepay.c libgstisomp4_la-qtdemux.lo: qtdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux.Tpo -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtdemux.c' object='libgstisomp4_la-qtdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtdemux.c' object='libgstisomp4_la-qtdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux.lo `test -f 'qtdemux.c' || echo '$(srcdir)/'`qtdemux.c libgstisomp4_la-qtdemux_types.lo: qtdemux_types.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_types.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_types.Tpo -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_types.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_types.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtdemux_types.c' object='libgstisomp4_la-qtdemux_types.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtdemux_types.c' object='libgstisomp4_la-qtdemux_types.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_types.lo `test -f 'qtdemux_types.c' || echo '$(srcdir)/'`qtdemux_types.c libgstisomp4_la-qtdemux_dump.lo: qtdemux_dump.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_dump.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Tpo -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_dump.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtdemux_dump.c' object='libgstisomp4_la-qtdemux_dump.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtdemux_dump.c' object='libgstisomp4_la-qtdemux_dump.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_dump.lo `test -f 'qtdemux_dump.c' || echo '$(srcdir)/'`qtdemux_dump.c libgstisomp4_la-qtdemux_lang.lo: qtdemux_lang.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-qtdemux_lang.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Tpo -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Tpo $(DEPDIR)/libgstisomp4_la-qtdemux_lang.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qtdemux_lang.c' object='libgstisomp4_la-qtdemux_lang.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtdemux_lang.c' object='libgstisomp4_la-qtdemux_lang.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-qtdemux_lang.lo `test -f 'qtdemux_lang.c' || echo '$(srcdir)/'`qtdemux_lang.c libgstisomp4_la-gstqtmux.lo: gstqtmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmux.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmux.Tpo -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmux.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstqtmux.c' object='libgstisomp4_la-gstqtmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstqtmux.c' object='libgstisomp4_la-gstqtmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmux.lo `test -f 'gstqtmux.c' || echo '$(srcdir)/'`gstqtmux.c libgstisomp4_la-gstqtmoovrecover.lo: gstqtmoovrecover.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmoovrecover.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Tpo -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmoovrecover.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstqtmoovrecover.c' object='libgstisomp4_la-gstqtmoovrecover.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstqtmoovrecover.c' object='libgstisomp4_la-gstqtmoovrecover.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmoovrecover.lo `test -f 'gstqtmoovrecover.c' || echo '$(srcdir)/'`gstqtmoovrecover.c libgstisomp4_la-atoms.lo: atoms.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atoms.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atoms.Tpo -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-atoms.Tpo $(DEPDIR)/libgstisomp4_la-atoms.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='atoms.c' object='libgstisomp4_la-atoms.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atoms.c' object='libgstisomp4_la-atoms.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atoms.lo `test -f 'atoms.c' || echo '$(srcdir)/'`atoms.c libgstisomp4_la-atomsrecovery.lo: atomsrecovery.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-atomsrecovery.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-atomsrecovery.Tpo -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-atomsrecovery.Tpo $(DEPDIR)/libgstisomp4_la-atomsrecovery.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='atomsrecovery.c' object='libgstisomp4_la-atomsrecovery.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atomsrecovery.c' object='libgstisomp4_la-atomsrecovery.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-atomsrecovery.lo `test -f 'atomsrecovery.c' || echo '$(srcdir)/'`atomsrecovery.c libgstisomp4_la-descriptors.lo: descriptors.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-descriptors.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-descriptors.Tpo -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-descriptors.Tpo $(DEPDIR)/libgstisomp4_la-descriptors.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='descriptors.c' object='libgstisomp4_la-descriptors.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='descriptors.c' object='libgstisomp4_la-descriptors.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-descriptors.lo `test -f 'descriptors.c' || echo '$(srcdir)/'`descriptors.c libgstisomp4_la-properties.lo: properties.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-properties.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-properties.Tpo -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-properties.Tpo $(DEPDIR)/libgstisomp4_la-properties.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='properties.c' object='libgstisomp4_la-properties.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='properties.c' object='libgstisomp4_la-properties.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-properties.lo `test -f 'properties.c' || echo '$(srcdir)/'`properties.c libgstisomp4_la-gstqtmuxmap.lo: gstqtmuxmap.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -MT libgstisomp4_la-gstqtmuxmap.lo -MD -MP -MF $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Tpo -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Tpo $(DEPDIR)/libgstisomp4_la-gstqtmuxmap.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstqtmuxmap.c' object='libgstisomp4_la-gstqtmuxmap.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstqtmuxmap.c' object='libgstisomp4_la-gstqtmuxmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstisomp4_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstisomp4_la_CFLAGS) $(CFLAGS) -c -o libgstisomp4_la-gstqtmuxmap.lo `test -f 'gstqtmuxmap.c' || echo '$(srcdir)/'`gstqtmuxmap.c mostlyclean-libtool: -rm -f *.lo @@ -847,10 +831,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c index 5aebd6b..5bd6cb7 100644 --- a/gst/isomp4/atoms.c +++ b/gst/isomp4/atoms.c @@ -2742,6 +2742,81 @@ atom_moov_chunks_add_offset (AtomMOOV * moov, guint32 offset) } } +void +atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate, + guint32 max_bitrate) +{ + AtomESDS *esds = NULL; + AtomData *btrt = NULL; + AtomWAVE *wave = NULL; + AtomSTSD *stsd; + GList *iter; + GList *extensioniter = NULL; + + g_return_if_fail (trak != NULL); + + if (avg_bitrate == 0 && max_bitrate == 0) + return; + + stsd = &trak->mdia.minf.stbl.stsd; + for (iter = stsd->entries; iter; iter = g_list_next (iter)) { + SampleTableEntry *entry = iter->data; + + switch (entry->kind) { + case AUDIO:{ + SampleTableEntryMP4A *audioentry = (SampleTableEntryMP4A *) entry; + extensioniter = audioentry->extension_atoms; + break; + } + case VIDEO:{ + SampleTableEntryMP4V *videoentry = (SampleTableEntryMP4V *) entry; + extensioniter = videoentry->extension_atoms; + break; + } + default: + break; + } + } + + for (; extensioniter; extensioniter = g_list_next (extensioniter)) { + AtomInfo *atominfo = extensioniter->data; + if (atominfo->atom->type == FOURCC_esds) { + esds = (AtomESDS *) atominfo->atom; + } else if (atominfo->atom->type == FOURCC_btrt) { + btrt = (AtomData *) atominfo->atom; + } else if (atominfo->atom->type == FOURCC_wave) { + wave = (AtomWAVE *) atominfo->atom; + } + } + + /* wave might have an esds internally */ + if (wave) { + for (extensioniter = wave->extension_atoms; extensioniter; + extensioniter = g_list_next (extensioniter)) { + AtomInfo *atominfo = extensioniter->data; + if (atominfo->atom->type == FOURCC_esds) { + esds = (AtomESDS *) atominfo->atom; + break; + } + } + } + + if (esds) { + if (avg_bitrate && esds->es.dec_conf_desc.avg_bitrate == 0) + esds->es.dec_conf_desc.avg_bitrate = avg_bitrate; + if (max_bitrate && esds->es.dec_conf_desc.max_bitrate == 0) + esds->es.dec_conf_desc.max_bitrate = max_bitrate; + } + if (btrt) { + /* type(4bytes) + size(4bytes) + buffersize(4bytes) + + * maxbitrate(bytes) + avgbitrate(bytes) */ + if (max_bitrate && GST_READ_UINT32_BE (btrt->data + 4) == 0) + GST_WRITE_UINT32_BE (btrt->data + 4, max_bitrate); + if (avg_bitrate && GST_READ_UINT32_BE (btrt->data + 8) == 0) + GST_WRITE_UINT32_BE (btrt->data + 8, avg_bitrate); + } +} + /* * Meta tags functions */ @@ -3962,17 +4037,13 @@ build_btrt_extension (guint32 buffer_size_db, guint32 avg_bitrate, AtomData *atom_data; GstBuffer *buf; - if (buffer_size_db == 0 && avg_bitrate == 0 && max_bitrate == 0) - return 0; - buf = gst_buffer_new_and_alloc (12); GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), buffer_size_db); GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + 4, max_bitrate); GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + 8, avg_bitrate); - atom_data = - atom_data_new_from_gst_buffer (GST_MAKE_FOURCC ('b', 't', 'r', 't'), buf); + atom_data = atom_data_new_from_gst_buffer (FOURCC_btrt, buf); gst_buffer_unref (buf); return build_atom_info_wrapper ((Atom *) atom_data, atom_data_copy_data, diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h index 5aeb5f8..20ea141 100644 --- a/gst/isomp4/atoms.h +++ b/gst/isomp4/atoms.h @@ -906,6 +906,9 @@ void atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context, VisualSampleEntry * entry, guint32 rate, GList * ext_atoms_list); +void atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate, + guint32 max_bitrate); + AtomInfo * build_codec_data_extension (guint32 fourcc, const GstBuffer * codec_data); AtomInfo * build_mov_aac_extension (AtomTRAK * trak, const GstBuffer * codec_data, guint32 avg_bitrate, guint32 max_bitrate); diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c index 1f5a287..1d53ed8 100644 --- a/gst/isomp4/atomsrecovery.c +++ b/gst/isomp4/atomsrecovery.c @@ -117,8 +117,10 @@ atoms_recov_write_ftyp_info (FILE * f, AtomFTYP * ftyp, GstBuffer * prefix) return FALSE; } if (fwrite (data, 1, offset, f) != offset) { + g_free (data); return FALSE; } + g_free (data); return TRUE; } @@ -679,6 +681,13 @@ moov_recov_file_create (FILE * file, GError ** err) goto fail; } + /* sanity check */ + if (moovrf->num_traks > 1024) { + g_set_error (err, ATOMS_RECOV_QUARK, ATOMS_RECOV_ERR_PARSING, + "Unsupported number of traks"); + goto fail; + } + /* init the traks */ moovrf->traks_rd = g_new0 (TrakRecovData, moovrf->num_traks); for (i = 0; i < moovrf->num_traks; i++) { diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h index 188e202..295d17e 100644 --- a/gst/isomp4/fourcc.h +++ b/gst/isomp4/fourcc.h @@ -208,6 +208,7 @@ G_BEGIN_DECLS #define FOURCC_mfhd GST_MAKE_FOURCC('m','f','h','d') #define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d') #define FOURCC_traf GST_MAKE_FOURCC('t','r','a','f') +#define FOURCC_btrt GST_MAKE_FOURCC('b','t','r','t') /* Xiph fourcc */ #define FOURCC_XiTh GST_MAKE_FOURCC('X','i','T','h') diff --git a/gst/isomp4/gstqtmoovrecover.c b/gst/isomp4/gstqtmoovrecover.c index 8079972..0b832d3 100644 --- a/gst/isomp4/gstqtmoovrecover.c +++ b/gst/isomp4/gstqtmoovrecover.c @@ -65,6 +65,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 530c611..5e9fcdd 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -262,17 +262,20 @@ gst_qt_mux_base_init (gpointer g_class) srctempl = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, params->src_caps); gst_element_class_add_pad_template (element_class, srctempl); + gst_object_unref (srctempl); if (params->audio_sink_caps) { audiosinktempl = gst_pad_template_new ("audio_%d", GST_PAD_SINK, GST_PAD_REQUEST, params->audio_sink_caps); gst_element_class_add_pad_template (element_class, audiosinktempl); + gst_object_unref (audiosinktempl); } if (params->video_sink_caps) { videosinktempl = gst_pad_template_new ("video_%d", GST_PAD_SINK, GST_PAD_REQUEST, params->video_sink_caps); gst_element_class_add_pad_template (element_class, videosinktempl); + gst_object_unref (videosinktempl); } klass->format = params->prop->format; @@ -367,6 +370,8 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad) qtpad->avg_bitrate = 0; qtpad->max_bitrate = 0; qtpad->ts_n_entries = 0; + qtpad->total_duration = 0; + qtpad->total_bytes = 0; qtpad->buf_head = 0; qtpad->buf_tail = 0; @@ -570,9 +575,11 @@ gst_qt_mux_add_mp4_tag (GstQTMux * qtmux, const GstTagList * list, if (tag2) { /* paired unsigned integers */ guint count = 0; + gboolean got_tag; - if (!(gst_tag_list_get_uint (list, tag, &value) || - gst_tag_list_get_uint (list, tag2, &count))) + got_tag = gst_tag_list_get_uint (list, tag, &value); + got_tag = gst_tag_list_get_uint (list, tag2, &count) || got_tag; + if (!got_tag) break; GST_DEBUG_OBJECT (qtmux, "Adding tag %" GST_FOURCC_FORMAT " -> %u/%u", GST_FOURCC_ARGS (fourcc), value, count); @@ -613,6 +620,8 @@ gst_qt_mux_add_mp4_date (GstQTMux * qtmux, const GstTagList * list, month = g_date_get_month (date); day = g_date_get_day (date); + g_date_free (date); + if (year == G_DATE_BAD_YEAR && month == G_DATE_BAD_MONTH && day == G_DATE_BAD_DAY) { GST_WARNING_OBJECT (qtmux, "invalid date in tag"); @@ -991,6 +1000,7 @@ static const GstTagToFourcc tag_matches_mp4[] = { {FOURCC_disk, GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_ALBUM_VOLUME_COUNT, gst_qt_mux_add_mp4_tag}, {FOURCC_covr, GST_TAG_PREVIEW_IMAGE, NULL, gst_qt_mux_add_mp4_cover}, + {FOURCC_covr, GST_TAG_IMAGE, NULL, gst_qt_mux_add_mp4_cover}, {0, NULL,} }; @@ -1466,7 +1476,7 @@ gst_qt_mux_set_header_on_caps (GstQTMux * mux, GstBuffer * buf) GstStructure *structure; GValue array = { 0 }; GValue value = { 0 }; - GstCaps *caps = GST_PAD_CAPS (mux->srcpad); + GstCaps *caps; caps = gst_caps_copy (GST_PAD_CAPS (mux->srcpad)); structure = gst_caps_get_structure (caps, 0); @@ -1735,15 +1745,25 @@ gst_qt_mux_stop_file (GstQTMux * qtmux) GstCollectData *cdata = (GstCollectData *) walk->data; GstQTPad *qtpad = (GstQTPad *) cdata; - /* send last buffer */ + /* avoid add_buffer complaining if not negotiated + * in which case no buffers either, so skipping */ + if (!qtpad->fourcc) { + GST_DEBUG_OBJECT (qtmux, "Pad %s has never had buffers", + GST_PAD_NAME (qtpad->collect.pad)); + continue; + } + + /* send last buffer; also flushes possibly queued buffers/ts */ GST_DEBUG_OBJECT (qtmux, "Sending the last buffer for pad %s", GST_PAD_NAME (qtpad->collect.pad)); ret = gst_qt_mux_add_buffer (qtmux, qtpad, NULL); - if (ret != GST_FLOW_OK) + if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (qtmux, "Failed to send last buffer for %s, " "flow return: %s", GST_PAD_NAME (qtpad->collect.pad), gst_flow_get_name (ret)); + } + /* having flushed above, can check for buffers now */ if (!GST_CLOCK_TIME_IS_VALID (qtpad->first_ts)) { GST_DEBUG_OBJECT (qtmux, "Pad %s has no buffers", GST_PAD_NAME (qtpad->collect.pad)); @@ -1756,6 +1776,20 @@ gst_qt_mux_stop_file (GstQTMux * qtmux) qtpad->last_dts > first_ts)) { first_ts = qtpad->last_dts; } + + /* update average bitrate of streams if needed */ + { + guint32 avgbitrate = 0; + guint32 maxbitrate = qtpad->max_bitrate; + + if (qtpad->avg_bitrate) + avgbitrate = qtpad->avg_bitrate; + else if (qtpad->total_duration > 0) + avgbitrate = (guint32) gst_util_uint64_scale_round (qtpad->total_bytes, + 8 * GST_SECOND, qtpad->total_duration); + + atom_trak_update_bitrates (qtpad->trak, avgbitrate, maxbitrate); + } } if (qtmux->fragment_sequence) { @@ -2026,6 +2060,39 @@ gst_qt_mux_push_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts) pad->ts_n_entries++; } +static void +check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b) +{ + if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (*ts_a))) { + if (G_LIKELY (*ts_a > ts_b)) { + *ts_a -= ts_b; + } else { + *ts_a = 0; + GST_WARNING_OBJECT (qtmux, "Subtraction would result in negative value, " + "using 0 as result"); + } + } +} + +/* subtract ts from all buffers enqueued on the pad */ +static void +gst_qt_mux_subtract_ts (GstQTMux * qtmux, GstQTPad * pad, GstClockTime ts) +{ + gint i; + + for (i = 0; (i < QTMUX_NO_OF_TS) && (i < pad->ts_n_entries); i++) { + check_and_subtract_ts (qtmux, &pad->ts_entries[i], ts); + } + for (i = 0; i < G_N_ELEMENTS (pad->buf_entries); i++) { + if (pad->buf_entries[i]) { + check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (pad->buf_entries[i]), + ts); + check_and_subtract_ts (qtmux, + &GST_BUFFER_OFFSET_END (pad->buf_entries[i]), ts); + } + } +} + /* takes ownership of @buf */ static GstBuffer * gst_qt_mux_get_asc_buffer_ts (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) @@ -2082,9 +2149,17 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) buf = pad->prepare_buf_func (pad, buf, qtmux); } + if (G_LIKELY (buf != NULL && GST_CLOCK_TIME_IS_VALID (pad->first_ts) && + pad->first_ts != 0)) { + buf = gst_buffer_make_metadata_writable (buf); + check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts); + } + /* when we obtain the first_ts we subtract from all stored buffers we have, + * after that we can subtract on input */ + again: last_buf = pad->last_buf; - if (G_UNLIKELY (qtmux->dts_method == DTS_METHOD_REORDER)) { + if (qtmux->dts_method == DTS_METHOD_REORDER) { buf = gst_qt_mux_get_asc_buffer_ts (qtmux, pad, buf); if (!buf && !last_buf) { GST_DEBUG_OBJECT (qtmux, "no reordered buffer"); @@ -2155,6 +2230,31 @@ again: goto no_order; } + /* if this is the first buffer, store the timestamp */ + if (G_UNLIKELY (pad->first_ts == GST_CLOCK_TIME_NONE) && last_buf) { + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (last_buf))) { + pad->first_ts = GST_BUFFER_TIMESTAMP (last_buf); + } else { + GST_DEBUG_OBJECT (qtmux, "First buffer for pad %s has no timestamp, " + "using 0 as first timestamp", GST_PAD_NAME (pad->collect.pad)); + pad->first_ts = 0; + } + GST_DEBUG_OBJECT (qtmux, "Stored first timestamp for pad %s %" + GST_TIME_FORMAT, GST_PAD_NAME (pad->collect.pad), + GST_TIME_ARGS (pad->first_ts)); + + gst_qt_mux_subtract_ts (qtmux, pad, pad->first_ts); + + GST_BUFFER_TIMESTAMP (last_buf) = 0; + check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (last_buf), + pad->first_ts); + if (buf) { + check_and_subtract_ts (qtmux, &GST_BUFFER_TIMESTAMP (buf), pad->first_ts); + check_and_subtract_ts (qtmux, &GST_BUFFER_OFFSET_END (buf), + pad->first_ts); + } + } + /* fall back to duration if last buffer or * out-of-order (determined previously), otherwise use input ts */ if (buf == NULL || @@ -2212,6 +2312,12 @@ again: duration = MAX (duration, ts); } + /* for computing the avg bitrate */ + if (G_LIKELY (last_buf)) { + pad->total_bytes += GST_BUFFER_SIZE (last_buf); + pad->total_duration += duration; + } + gst_buffer_replace (&pad->last_buf, buf); last_dts = gst_util_uint64_scale_round (pad->last_dts, @@ -2314,20 +2420,6 @@ again: qtmux->longest_chunk = duration; } - /* if this is the first buffer, store the timestamp */ - if (G_UNLIKELY (pad->first_ts == GST_CLOCK_TIME_NONE) && last_buf) { - if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (last_buf))) { - pad->first_ts = GST_BUFFER_TIMESTAMP (last_buf); - } else { - GST_DEBUG_OBJECT (qtmux, "First buffer for pad %s has no timestamp, " - "using 0 as first timestamp", GST_PAD_NAME (pad->collect.pad)); - pad->first_ts = 0; - } - GST_DEBUG_OBJECT (qtmux, "Stored first timestamp for pad %s %" - GST_TIME_FORMAT, GST_PAD_NAME (pad->collect.pad), - GST_TIME_ARGS (pad->first_ts)); - } - /* now we go and register this buffer/sample all over */ /* note that a new chunk is started each time (not fancy but works) */ if (qtmux->moov_recov_file) { @@ -2527,7 +2619,6 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) AtomInfo *ext_atom = NULL; gint constant_size = 0; const gchar *stream_format; - GstCaps *current_caps = NULL; /* find stream data */ qtpad = (GstQTPad *) gst_pad_get_element_private (pad); @@ -2539,10 +2630,14 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) * the old caps are a subset of the new one (this means upstream * added more info to the caps, as both should be 'fixed' caps) */ if (qtpad->fourcc) { + GstCaps *current_caps = NULL; + gboolean is_subset; g_object_get (pad, "caps", ¤t_caps, NULL); g_assert (caps != NULL); - if (!gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps)) { + is_subset = gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps); + gst_caps_unref (current_caps); + if (!is_subset) { goto refuse_renegotiation; } GST_DEBUG_OBJECT (qtmux, @@ -2849,7 +2944,6 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) GList *ext_atom_list = NULL; gboolean sync = FALSE; int par_num, par_den; - GstCaps *current_caps = NULL; /* find stream data */ qtpad = (GstQTPad *) gst_pad_get_element_private (pad); @@ -2861,10 +2955,14 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) * the old caps are a subset of the new one (this means upstream * added more info to the caps, as both should be 'fixed' caps) */ if (qtpad->fourcc) { + GstCaps *current_caps = NULL; + gboolean is_subset; g_object_get (pad, "caps", ¤t_caps, NULL); g_assert (caps != NULL); - if (!gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps)) { + is_subset = gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps); + gst_caps_unref (current_caps); + if (!is_subset) { goto refuse_renegotiation; } GST_DEBUG_OBJECT (qtmux, @@ -3117,6 +3215,9 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) } else if (strcmp (mimetype, "video/x-vp8") == 0) { entry.fourcc = FOURCC_VP80; sync = FALSE; + } else if (strcmp (mimetype, "video/x-dirac") == 0) { + entry.fourcc = FOURCC_drac; + qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-qt-part") == 0) { guint32 fourcc; diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h index 3a2cb49..1851973 100644 --- a/gst/isomp4/gstqtmux.h +++ b/gst/isomp4/gstqtmux.h @@ -97,6 +97,10 @@ struct _GstQTPad /* bitrates */ guint32 avg_bitrate, max_bitrate; + /* for avg bitrate calculation */ + guint64 total_bytes; + guint64 total_duration; + GstBuffer *last_buf; /* dts of last_buf */ GstClockTime last_dts; diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index c3a0295..e0fb78b 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -168,6 +168,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "image/jpeg, " COMMON_VIDEO_CAPS_NO_FRAMERATE "; " "video/x-vp8, " + COMMON_VIDEO_CAPS "; " + "video/x-dirac, " COMMON_VIDEO_CAPS "; " "video/x-qt-part, " COMMON_VIDEO_CAPS), GST_STATIC_CAPS (PCM_CAPS_FULL "; " MP3_CAPS " ; " @@ -199,7 +201,7 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "ismlmux", "ISML", "GstISMLMux", - GST_STATIC_CAPS ("video/quicktime, variant = (string) iso"), + GST_STATIC_CAPS ("video/quicktime, variant = (string) iso-fragmented"), GST_STATIC_CAPS (MPEG4V_CAPS "; " H264_CAPS), GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS) } diff --git a/gst/isomp4/gstrtpxqtdepay.c b/gst/isomp4/gstrtpxqtdepay.c index 66a9219..ce0778b 100644 --- a/gst/isomp4/gstrtpxqtdepay.c +++ b/gst/isomp4/gstrtpxqtdepay.c @@ -109,10 +109,10 @@ gst_rtp_xqt_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_xqt_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_xqt_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_xqt_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_xqt_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP packet depayloader", "Codec/Depayloader/Network", diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 45748db..29d7ef5 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -47,6 +47,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include "gst/gst-i18n-plugin.h" #include @@ -86,17 +90,17 @@ QTDEMUX_LEAP_YEARS_FROM_1904_TO_1970) * QTDEMUX_SECONDS_PER_DAY) #ifdef QTDEMUX_MODIFICATION -/*Modification: Added macro for default value of buffer-size property */ +/* default value of buffer-size property */ #define QTDEMUX_MAX_BUFFER_SIZE (100*1024*1024) -#endif -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added new properties considering different cases of file formats */ +#define QTDEMUX_DEFAULT_FWD_TRICKPLAY_MODE 0 /* 0: sending P-frames also, 1: only key frames */ +/* properties considering different cases of file formats */ enum { PROP_0, PROP_MAX_BUFFER_SIZE, - PROP_TEMP_LOCATION + PROP_TEMP_LOCATION, + PROP_FWDTRICK_MODE, }; #endif @@ -106,6 +110,20 @@ GST_DEBUG_CATEGORY (qtdemux_debug); typedef struct _QtDemuxSegment QtDemuxSegment; typedef struct _QtDemuxSample QtDemuxSample; +#ifdef QTDEMUX_MODIFICATION +typedef struct _TrickPlayInfo TrickPlayInfo; + +struct _TrickPlayInfo +{ + gint32 next_kidx; + gint32 prev_kidx; + guint64 kidxs_dur_diff; /* duration between two consecutive key frames */ + gint32 show_samples; /* samples to show between two consecutive key frames */ + guint64 start_pos; /* trickplay start position */ +}; +#endif + + /*struct _QtNode { guint32 type; @@ -170,14 +188,14 @@ struct _QtDemuxSample * .-----------------------------------------------------------. * track: | K.....K.........K........K.......K.......K...........K... | * '-----------------------------------------------------------' - * 0 1 2 3 4 + * 0 1 2 3 4 * .------------^ ^ .----------^ ^ * / .-------------' / .------------------' * / / .-----' / * .--------------. .--------------. * | segment 1 | | segment 2 | * '--------------' '--------------' - * + * * The challenge here is to cut out the right pieces of the track for each of * the playback segments. This fortunatly can easily be done with the SEGMENT * events of gstreamer. @@ -189,7 +207,7 @@ struct _QtDemuxSample * * We then proceed to push data from keyframe (a) to frame (b). The decoder * decodes but clips all before media_time 1. - * + * * After finishing a segment, we push out a new SEGMENT event with the clipping * boundaries of the new data. * @@ -211,15 +229,7 @@ struct _QtDemuxSegment struct _QtDemuxStream { GstPad *pad; -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added new variables for trickplay index table generation */ - /* for 0dispose = gst_qtdemux_dispose; - + #ifdef QTDEMUX_MODIFICATION gobject_class->set_property = gst_qtdemux_set_property; gobject_class->get_property = gst_qtdemux_get_property; @@ -505,7 +520,7 @@ gst_qtdemux_class_init (GstQTDemuxClass * klass) #ifdef QTDEMUX_MODIFICATION g_object_class_install_property (gobject_class, PROP_MAX_BUFFER_SIZE, g_param_spec_uint ("buffer-size", "buffer-size", - "Maximum buffer size for mdat atom buffering incase it comes before the moov atom", + "Maximum buffer size for mdat atom buffering in case it comes before the moov atom", 1, G_MAXUINT, QTDEMUX_MAX_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); @@ -514,7 +529,17 @@ gst_qtdemux_class_init (GstQTDemuxClass * klass) "Location for the mdat atom buffering incase it comes before the moov atom", "/tmp/qtdemux", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_FWDTRICK_MODE, + g_param_spec_boolean ("fwd-trick-mode", + "Forward trickplay mode to use", + "(0) Sending Non-Keyframes also in forward trickplay (1) Sending only keyframes in forward trickplay", + QTDEMUX_DEFAULT_FWD_TRICKPLAY_MODE, + G_PARAM_READWRITE)); #endif + + + gst_tag_register_musicbrainz_tags (); } static void @@ -544,12 +569,13 @@ gst_qtdemux_init (GstQTDemux * qtdemux, GstQTDemuxClass * klass) qtdemux->mdatbuffer = NULL; gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); #ifdef QTDEMUX_MODIFICATION -/* Modification: Initialization of new properties with default values*/ - qtdemux->filename = g_strdup("/tmp/qtdemux"); - qtdemux->file = NULL; - qtdemux->ofile = NULL; - qtdemux->filesize = 0; - qtdemux->maxbuffersize = QTDEMUX_MAX_BUFFER_SIZE; + /* Initialization of properties with default values*/ + qtdemux->filename = g_strdup("/tmp/qtdemux"); + qtdemux->file = NULL; + qtdemux->ofile = NULL; + qtdemux->filesize = 0; + qtdemux->maxbuffersize = QTDEMUX_MAX_BUFFER_SIZE; + qtdemux->fwdtrick_mode = QTDEMUX_DEFAULT_FWD_TRICKPLAY_MODE; #endif } @@ -564,68 +590,64 @@ gst_qtdemux_dispose (GObject * object) } #ifdef QTDEMUX_MODIFICATION - if (qtdemux->filename) + if (qtdemux->filename) g_free (qtdemux->filename); #endif - + G_OBJECT_CLASS (parent_class)->dispose (object); } #ifdef QTDEMUX_MODIFICATION -/*Modification: Added method implementations for new properties added */ static void gst_qtdemux_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { GstQTDemux *demux; - demux = GST_QTDEMUX (object); switch (prop_id) { case PROP_MAX_BUFFER_SIZE: demux->maxbuffersize = g_value_get_uint (value); break; - case PROP_TEMP_LOCATION: if (demux->filename) g_free (demux->filename); demux->filename = g_strdup (g_value_get_string (value)); break; - + case PROP_FWDTRICK_MODE: + demux->fwdtrick_mode = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } -#endif -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added method implementations for new properties added */ static void gst_qtdemux_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { GstQTDemux *demux; - demux = GST_QTDEMUX (object); - + switch (prop_id) { case PROP_MAX_BUFFER_SIZE: g_value_set_uint (value, demux->maxbuffersize); break; - case PROP_TEMP_LOCATION: g_value_set_string (value, demux->filename); break; - + case PROP_FWDTRICK_MODE: + g_value_set_boolean(value, demux->fwdtrick_mode); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; - } } #endif + static void gst_qtdemux_post_no_playable_stream_error (GstQTDemux * qtdemux) { @@ -646,7 +668,6 @@ gst_qtdemux_pull_atom (GstQTDemux * qtdemux, guint64 offset, guint64 size, { GstFlowReturn flow; - if (G_UNLIKELY (size == 0)) { GstFlowReturn ret; GstBuffer *tmp = NULL; @@ -661,8 +682,6 @@ gst_qtdemux_pull_atom (GstQTDemux * qtdemux, guint64 offset, guint64 size, gst_buffer_unref (tmp); } - - /* Sanity check: catch bogus sizes (fuzzed/broken files) */ if (G_UNLIKELY (size > QTDEMUX_MAX_ATOM_SIZE)) { if (qtdemux->state != QTDEMUX_STATE_MOVIE && qtdemux->got_moov) { @@ -981,7 +1000,8 @@ gst_qtdemux_find_index (GstQTDemux * qtdemux, QtDemuxStream * str, guint32 index; /* convert media_time to mov format */ - media_time = gst_util_uint64_scale (media_time, str->timescale, GST_SECOND); + media_time = + gst_util_uint64_scale_ceil (media_time, str->timescale, GST_SECOND); result = gst_util_array_binary_search (str->samples, str->stbl_index + 1, sizeof (QtDemuxSample), (GCompareDataFunc) find_func, @@ -992,82 +1012,10 @@ gst_qtdemux_find_index (GstQTDemux * qtdemux, QtDemuxStream * str, else index = 0; -#ifdef QTDEMUX_MODIFICATION -/*Modification: check duplicated timestamp */ -#if 1 - - while (index>0) { - if (str->samples[index-1].timestamp == media_time) - index--; - else - break; - } - -#endif -#endif - return index; } -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added function to find next key frame in support of index-table generation*/ - -// added by Kishore -/* find the index of the keyframe needed to decode the sample at @index - * of stream @str. - * - * Returns the index of the keyframe. - */ -static gint32 -gst_qtdemux_find_next_keyframe (GstQTDemux * qtdemux, QtDemuxStream * str, - guint32 index) -{ - gint32 new_index = index; - - if (index == str->n_samples) { - - if (!str->samples[new_index].keyframe) - new_index = -1; - - goto beach; - } - else if (index > str->n_samples) - { - new_index = -1; - - goto beach; - - } - - - /* all keyframes, return index */ - if (str->all_keyframe) { - new_index = index; - goto beach; - } - - /* else go back until we have a keyframe */ - while (TRUE) { - if (str->samples[new_index].keyframe) - break; - - if (new_index >= str->n_samples) { - new_index = -1; - goto beach; - } - - new_index++; - } - -beach: - GST_DEBUG_OBJECT (qtdemux, "searching for keyframe index before index %u " - "gave %d", index, new_index); - - return new_index; - -} -#endif /* find the index of the sample that includes the data for @media_offset using a * linear search @@ -1171,9 +1119,21 @@ gst_qtdemux_find_keyframe (GstQTDemux * qtdemux, QtDemuxStream * str, /* all keyframes, return index */ if (str->all_keyframe) { new_index = index; +#ifdef QTDEMUX_MODIFICATION + if(qtdemux->segment.rate < 0.0 && new_index && (FOURCC_vide == str->subtype)) + new_index--; +#endif goto beach; } +#ifdef QTDEMUX_MODIFICATION + if(qtdemux->segment.rate < 0.0 && new_index && (FOURCC_vide == str->subtype)) { + /* If index is keyframe, reduce index by 1, so that we could fetch prev keyframe for video + * This change is done to fix the out of segment issue when seek position is a keyframe position */ + new_index--; + } +#endif + /* else go back until we have a keyframe */ while (TRUE) { if (str->samples[new_index].keyframe) @@ -1251,7 +1211,7 @@ gst_qtdemux_move_stream (GstQTDemux * qtdemux, QtDemuxStream * str, /* position changed, we have a discont */ str->sample_index = index; - /* Each time we move in the stream we store the position where we are + /* Each time we move in the stream we store the position where we are * starting from */ str->from_sample = index; str->discont = TRUE; @@ -1296,8 +1256,9 @@ gst_qtdemux_adjust_seek (GstQTDemux * qtdemux, gint64 desired_time, /* get the index of the sample with media time */ index = gst_qtdemux_find_index_linear (qtdemux, str, media_start); - GST_DEBUG_OBJECT (qtdemux, "sample for %" GST_TIME_FORMAT " at %u", - GST_TIME_ARGS (media_start), index); + GST_DEBUG_OBJECT (qtdemux, "sample for %" GST_TIME_FORMAT " at %u" + " at offset %" G_GUINT64_FORMAT, + GST_TIME_ARGS (media_start), index, str->samples[index].offset); /* find previous keyframe */ kindex = gst_qtdemux_find_keyframe (qtdemux, str, index); @@ -1311,8 +1272,9 @@ gst_qtdemux_adjust_seek (GstQTDemux * qtdemux, gint64 desired_time, media_time = gst_util_uint64_scale (str->samples[kindex].timestamp, GST_SECOND, str->timescale); - GST_DEBUG_OBJECT (qtdemux, "keyframe at %u with time %" GST_TIME_FORMAT, - kindex, GST_TIME_ARGS (media_time)); + GST_DEBUG_OBJECT (qtdemux, "keyframe at %u with time %" GST_TIME_FORMAT + " at offset %" G_GUINT64_FORMAT, + kindex, GST_TIME_ARGS (media_time), str->samples[kindex].offset); /* keyframes in the segment get a chance to change the * desired_offset. keyframes out of the segment are @@ -1471,7 +1433,10 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment) GST_DEBUG_OBJECT (qtdemux, "seeking to %" GST_TIME_FORMAT, GST_TIME_ARGS (desired_offset)); - if (segment->flags & GST_SEEK_FLAG_KEY_UNIT) { + /* may not have enough fragmented info to do this adjustment, + * and we can't scan (and probably should not) at this time with + * possibly flushing upstream */ + if ((segment->flags & GST_SEEK_FLAG_KEY_UNIT) && !qtdemux->fragmented) { gint64 min_offset; gst_qtdemux_adjust_seek (qtdemux, desired_offset, &min_offset, NULL); @@ -1490,10 +1455,10 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment) stream->last_ret = GST_FLOW_OK; stream->sent_eos = FALSE; #ifdef QTDEMUX_MODIFICATION - /*initialization of rate params */ //Kishore - stream->next_kindex=0; - stream->prev_kindex=0; - stream->total_samples_bet_2_keyframes=0; + stream->trickplay_info->prev_kidx = 0; + stream->trickplay_info->next_kidx = 0; + stream->trickplay_info->kidxs_dur_diff = 0; + stream->trickplay_info->start_pos = segment->last_stop; #endif } segment->last_stop = desired_offset; @@ -1521,10 +1486,13 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event) int i; if (event) { - GST_INFO_OBJECT (qtdemux, "doing pull based seek with event"); + GST_DEBUG_OBJECT (qtdemux, "doing seek with event"); gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); +#ifdef QTDEMUX_MODIFICATION + GST_INFO_OBJECT (qtdemux, "Going to seek to %"GST_TIME_FORMAT", with rate = %f", GST_TIME_ARGS(cur), rate); +#endif /* we have to have a format as the segment format. Try to convert * if not. */ @@ -1565,6 +1533,11 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event) cur_type, cur, stop_type, stop, &update); } +#ifdef QTDEMUX_MODIFICATION + if (cur != GST_CLOCK_TIME_NONE) + gst_segment_set_last_stop (&seeksegment, GST_FORMAT_TIME, cur); +#endif + /* now do the seek, this actually never returns FALSE */ gst_qtdemux_perform_seek (qtdemux, &seeksegment); @@ -1598,6 +1571,12 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event) } } +#ifdef QTDEMUX_MODIFICATION + if (seeksegment.rate < 0.0) { + seeksegment.start = 0.0; + } +#endif + /* commit the new segment */ memcpy (&qtdemux->segment, &seeksegment, sizeof (GstSegment)); @@ -1944,7 +1923,8 @@ gst_qtdemux_set_index (GstElement * element, GstIndex * index) /* object lock might be taken again */ if (index) gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id); - GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT, demux->element_index); + GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT "for writer id %d", + demux->element_index, demux->index_id); } static GstIndex * @@ -2000,6 +1980,10 @@ gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream) g_free (stream->redirect_uri); /* free stbl sub-atoms */ gst_qtdemux_stbl_free (stream); +#ifdef QTDEMUX_MODIFICATION + if (stream->trickplay_info) + g_free (stream->trickplay_info); +#endif g_free (stream); } @@ -2029,6 +2013,7 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) qtdemux->posted_redirect = FALSE; qtdemux->offset = 0; qtdemux->first_mdat = -1; + qtdemux->header_size = 0; qtdemux->got_moov = FALSE; qtdemux->mdatoffset = GST_CLOCK_TIME_NONE; if (qtdemux->mdatbuffer) @@ -2045,12 +2030,17 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) qtdemux->element_index = NULL; gst_adapter_clear (qtdemux->adapter); #ifdef QTDEMUX_MODIFICATION - if (qtdemux->file) { - fclose (qtdemux->file); - fclose (qtdemux->ofile); - if (qtdemux->file) - remove (qtdemux->filename); - } + // TODO: Check new modifications + if (qtdemux->file) { + fclose (qtdemux->file); + if (qtdemux->ofile) + fclose (qtdemux->ofile); + remove (qtdemux->filename); + } + qtdemux->file = NULL; + qtdemux->ofile = NULL; + qtdemux->filesize = 0; + qtdemux->maxbuffersize = QTDEMUX_MAX_BUFFER_SIZE; #endif for (n = 0; n < qtdemux->n_streams; n++) { gst_qtdemux_stream_free (qtdemux, qtdemux->streams[n]); @@ -2064,6 +2054,8 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); qtdemux->requested_seek_time = GST_CLOCK_TIME_NONE; qtdemux->seek_offset = 0; + qtdemux->upstream_seekable = FALSE; + qtdemux->upstream_size = 0; break; } default: @@ -2090,6 +2082,9 @@ qtdemux_post_global_tags (GstQTDemux * qtdemux) static void qtdemux_parse_ftyp (GstQTDemux * qtdemux, const guint8 * buffer, gint length) { + /* counts as header data */ + qtdemux->header_size += length; + /* only consider at least a sufficiently complete ftyp atom */ if (length >= 20) { GstBuffer *buf; @@ -2130,6 +2125,9 @@ qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length) }; guint offset; + /* counts as header data */ + qtdemux->header_size += length; + offset = (QT_UINT32 (buffer) == 0) ? 16 : 8; if (length <= offset + 16) { @@ -2299,6 +2297,14 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun, stream->track_id, d_sample_duration, d_sample_size, d_sample_flags, *base_offset); + /* presence of stss or not can't really tell us much, + * and flags and so on tend to be marginally reliable in these files */ + if (stream->subtype == FOURCC_soun) { + GST_DEBUG_OBJECT (qtdemux, + "sound track in fragmented file; marking all keyframes"); + stream->all_keyframe = TRUE; + } + if (!gst_byte_reader_skip (trun, 1) || !gst_byte_reader_get_uint24_be (trun, &flags)) goto fail; @@ -2380,8 +2386,9 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun, QTDEMUX_MAX_SAMPLE_INDEX_SIZE / sizeof (QtDemuxSample)) goto index_too_big; - GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u (%lu MB)", - stream->n_samples, (stream->n_samples * sizeof (QtDemuxSample)) >> 20); + GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u * %u (%.2f MB)", + stream->n_samples, (guint) sizeof (QtDemuxSample), + stream->n_samples * sizeof (QtDemuxSample) / (1024.0 * 1024.0)); /* create a new array of samples if it's the first sample parsed */ if (stream->n_samples == 0) @@ -2918,6 +2925,7 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux) ("We got less than expected (received %u, wanted %u, offset %" G_GUINT64_FORMAT ")", GST_BUFFER_SIZE (moov), (guint) length, cur_offset)); + gst_buffer_unref (moov); ret = GST_FLOW_ERROR; goto beach; } @@ -2997,8 +3005,8 @@ beach: return ret; } -/* Seeks to the previous keyframe of the indexed stream and - * aligns other streams with respect to the keyframe timestamp +/* Seeks to the previous keyframe of the indexed stream and + * aligns other streams with respect to the keyframe timestamp * of indexed stream. Only called in case of Reverse Playback */ static GstFlowReturn @@ -3011,15 +3019,32 @@ gst_qtdemux_seek_to_previous_keyframe (GstQTDemux * qtdemux) QtDemuxSegment *seg = NULL; QtDemuxStream *ref_str = NULL; guint64 seg_media_start_mov; /* segment media start time in mov format */ +#ifdef QTDEMUX_MODIFICATION + QtDemuxSample *sample; + gdouble minusone = -1; + guint64 time_position; +#endif /* Now we choose an arbitrary stream, get the previous keyframe timestamp - * and finally align all the other streams on that timestamp with their + * and finally align all the other streams on that timestamp with their * respective keyframes */ for (n = 0; n < qtdemux->n_streams; n++) { QtDemuxStream *str = qtdemux->streams[n]; +#ifdef QTDEMUX_MODIFICATION + sample = &str->samples[str->sample_index]; + + if((time_position - (minusone *qtdemux->segment.rate)*sample->duration)>0) + time_position -= (minusone *qtdemux->segment.rate)*sample->duration; + else + time_position = 0; + + seg_idx = gst_qtdemux_find_segment (qtdemux, str, + time_position); +#else seg_idx = gst_qtdemux_find_segment (qtdemux, str, qtdemux->segment.last_stop); +#endif /* segment not found, continue with normal flow */ if (seg_idx == -1) @@ -3221,34 +3246,39 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, /* qtdemux->segment.stop is in outside-time-realm, whereas * segment->media_stop is in track-time-realm. - * + * * In order to compare the two, we need to bring segment.stop * into the track-time-realm */ - if (qtdemux->segment.stop == -1) + stop = qtdemux->segment.stop; + if (stop == -1) + stop = qtdemux->segment.duration; + if (stop == -1) stop = segment->media_stop; else stop = - MIN (segment->media_stop, - qtdemux->segment.stop - segment->time + segment->media_start); - - - + MIN (segment->media_stop, stop - segment->time + segment->media_start); if (qtdemux->segment.rate >= 0) { start = MIN (segment->media_start + seg_time, stop); time = offset; } else { - start = segment->media_start; + if (segment->media_start >= qtdemux->segment.start) { + start = segment->media_start; + time = segment->time; + } else { + start = qtdemux->segment.start; + time = segment->time + (qtdemux->segment.start - segment->media_start); + } + + start = MAX (segment->media_start, qtdemux->segment.start); stop = MIN (segment->media_start + seg_time, stop); - time = segment->time; } GST_DEBUG_OBJECT (qtdemux, "newsegment %d from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, seg_idx, GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time)); - GST_INFO("segment->rate:%f, qtdemux->segment.rate:%f", segment->rate, qtdemux->segment.rate); /* combine global rate with that of the segment */ rate = segment->rate * qtdemux->segment.rate; @@ -3271,22 +3301,19 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, /* and move to the keyframe before the indicated media time of the * segment */ if (qtdemux->segment.rate >= 0) { - index = gst_qtdemux_find_index (qtdemux, stream, start); - stream->to_sample = stream->n_samples; + index = gst_qtdemux_find_index_linear (qtdemux, stream, start); + stream->to_sample = G_MAXUINT32; GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (start), index, - GST_TIME_ARGS (stream->samples[index].timestamp)); + GST_TIME_ARGS (gst_util_uint64_scale (stream->samples[index].timestamp, + GST_SECOND, stream->timescale))); } else { - index = gst_qtdemux_find_index (qtdemux, stream, stop); -#ifdef QTDEMUX_MODIFICATION - stream->to_sample = 0; //changed from index to 0 for the new design -#else + index = gst_qtdemux_find_index_linear (qtdemux, stream, stop); stream->to_sample = index; -#endif - GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (stop), index, - GST_TIME_ARGS (stream->samples[index].timestamp)); + GST_TIME_ARGS (gst_util_uint64_scale (stream->samples[index].timestamp, + GST_SECOND, stream->timescale))); } /* gst_qtdemux_parse_sample () called from gst_qtdemux_find_index_linear () @@ -3300,17 +3327,7 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, return TRUE; } -#ifdef QTDEMUX_MODIFICATION -/* Modification: Added trickplay functionality*/ /* find keyframe of the target index */ - if (qtdemux->segment.rate > 1.0) - { - kf_index = index;//gst_qtdemux_find_next_keyframe (qtdemux, stream, index); - if(stream->subtype != FOURCC_vide) - kf_index++; - } - else -#endif kf_index = gst_qtdemux_find_keyframe (qtdemux, stream, index); /* *INDENT-OFF* */ @@ -3350,101 +3367,6 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, return TRUE; } -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added function to update the sample in support of index-table generation*/ - -// Added by Kishore for rate -/* move to the next sample in @stream. - * - * Moves to the next segment when needed. - */ -static void -gst_qtdemux_update_sample (GstQTDemux * qtdemux, QtDemuxStream * stream, int index) -{ - QtDemuxSample *sample; - QtDemuxSegment *segment; - guint64 last_stop; -if (qtdemux->segment.rate>1.0) -{ - if (G_UNLIKELY (index > stream->to_sample)) { - /* Mark the stream as EOS */ - GST_DEBUG_OBJECT (qtdemux, "reached max allowed sample %u, mark EOS", - stream->to_sample); - stream->time_position = -1; - return; - } -}else if (qtdemux->segment.rate<0) -{ - if (G_UNLIKELY (index < stream->to_sample)) { - /* Mark the stream as EOS */ - GST_DEBUG_OBJECT (qtdemux, "reached max allowed sample %u, mark EOS", - stream->to_sample); - stream->time_position = -1; - return; - } - -} - /* move to next sample */ - stream->sample_index = index; - - - /* get current segment */ - segment = &stream->segments[stream->segment_index]; - - /* reached the last sample, we need the next segment */ - if (G_UNLIKELY (stream->sample_index >= stream->n_samples)) - goto next_segment; - - /* get next sample */ - sample = &stream->samples[stream->sample_index]; - - /* see if we are past the segment */ - if (G_UNLIKELY (sample->timestamp >= segment->media_stop)) - goto next_segment; - - if (sample->timestamp >= segment->media_start) { - /* inside the segment, update time_position, looks very familiar to - * GStreamer segments, doesn't it? */ - stream->time_position = - (sample->timestamp - segment->media_start) + segment->time; - } else { - /* not yet in segment, time does not yet increment. This means - * that we are still prerolling keyframes to the decoder so it can - * decode the first sample of the segment. */ - stream->time_position = segment->time; - } - - - last_stop = QTSAMPLE_DTS (stream,sample); - - - last_stop = (last_stop - segment->media_start) + segment->time; - - /* Set last_stop with the keyframe timestamp we pushed of that stream */ - gst_segment_set_last_stop (&qtdemux->segment, GST_FORMAT_TIME, last_stop); - GST_DEBUG_OBJECT (qtdemux, "last_stop now is %" GST_TIME_FORMAT, - GST_TIME_ARGS (last_stop)); - - return; - - /* move to the next segment */ -next_segment: - { - GST_DEBUG_OBJECT (qtdemux, "segment %d ended ", stream->segment_index); - - if (stream->segment_index == stream->n_segments - 1) { - /* are we at the end of the last segment, we're EOS */ - stream->time_position = -1; - } else { - /* else we're only at the end of the current segment */ - stream->time_position = segment->stop_time; - } - /* make sure we select a new segment */ - stream->segment_index = -1; - } -} -#endif - /* prepare to get the current sample of @stream, getting essential values. * * This function will also prepare and send the segment when needed. @@ -3459,10 +3381,6 @@ gst_qtdemux_prepare_current_sample (GstQTDemux * qtdemux, QtDemuxSample *sample; guint64 time_position; guint32 seg_idx; -#ifdef QTDEMUX_MODIFICATION - guint32 index=0, kindex=0; - *timestamp = 0; -#endif g_return_val_if_fail (stream != NULL, FALSE); @@ -3482,94 +3400,8 @@ gst_qtdemux_prepare_current_sample (GstQTDemux * qtdemux, } /* different segment, activate it, sample_index will be set. */ - if (G_UNLIKELY (stream->segment_index != seg_idx)) - gst_qtdemux_activate_segment (qtdemux, stream, seg_idx, time_position); - -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added Trickplay functionality*/ - - if (qtdemux->segment.rate>1.0) - { - /* ***********Kishore*********** - finding the number of frames & duration between I frame to I frame - Skipping according to the rate - */ - if(qtdemux->segment.rate>=2.0 || stream->subtype == FOURCC_vide) - { -next: - GST_DEBUG_OBJECT (qtdemux, "current index:%d, next key index:%d", stream->sample_index, stream->next_kindex); - if(!stream->next_kindex) - { - stream->next_kindex = stream->prev_kindex = stream->sample_index; - - while(1) - { - //stream->next_kindex = gst_qtdemux_find_next_keyframe (qtdemux, stream, stream->next_kindex+1); - stream->next_kindex = gst_qtdemux_find_index_linear (qtdemux, stream, stream->next_kindex+1); - if(stream->next_kindex<0) - { - stream->prev_kindex=stream->next_kindex=0; - break; - } - if(qtdemux->segment.rate==4.0) - usleep(1); //needs to be removed kishore - GST_DEBUG_OBJECT (qtdemux, "finding next key index:current index:%d, next key index:%d", stream->sample_index, stream->next_kindex); - stream->total_samples_bet_2_keyframes = stream->next_kindex-stream->prev_kindex; - stream->avg_duration_bet_2_keyframes=(stream->samples[stream->next_kindex].timestamp-stream->samples[stream->prev_kindex].timestamp)/stream->total_samples_bet_2_keyframes; - GST_DEBUG_OBJECT (qtdemux, "avg duration:%"GST_TIME_FORMAT, GST_TIME_ARGS(stream->avg_duration_bet_2_keyframes)); - stream->samples_to_show_bet_kframes = stream->total_samples_bet_2_keyframes/qtdemux->segment.rate; - if(stream->samples_to_show_bet_kframes!=0) - break; - - - } - - stream->discont = TRUE; - - } - else - { - if(!stream->samples_to_show_bet_kframes) - { - gst_qtdemux_update_sample (qtdemux, stream, stream->next_kindex); - stream->next_kindex=0; - stream->samples_to_show_bet_kframes=0; - stream->discont = TRUE; - goto next; - } - - stream->samples_to_show_bet_kframes--; - sample = &stream->samples[stream->prev_kindex]; - *timestamp = (sample->timestamp + sample->pts_offset) + (stream->sample_index-stream->prev_kindex)*qtdemux->segment.rate*stream->avg_duration_bet_2_keyframes; - } - } - } - else if (qtdemux->segment.rate<0) - { - /* ***********Kishore*********** - only I frames Displayed - */ - gdouble minusone = -1; - sample = &stream->samples[stream->sample_index]; - - if((time_position - (minusone *qtdemux->segment.rate)*sample->duration)>0) - time_position -= (minusone *qtdemux->segment.rate)*sample->duration; - else - time_position=0; - - GST_DEBUG_OBJECT (qtdemux, "time:%"GST_TIME_FORMAT, - GST_TIME_ARGS(time_position)); - - index = gst_qtdemux_find_index_linear (qtdemux, stream, time_position); - - - kindex = gst_qtdemux_find_keyframe (qtdemux, stream, index); - - gst_qtdemux_update_sample (qtdemux, stream, kindex); - - stream->discont = TRUE; - } -#endif + if (G_UNLIKELY (stream->segment_index != seg_idx)) + gst_qtdemux_activate_segment (qtdemux, stream, seg_idx, time_position); GST_LOG_OBJECT (qtdemux, "segment active, index = %u of %u", stream->sample_index, stream->n_samples); @@ -3586,19 +3418,23 @@ next: /* now get the info for the sample we're at */ sample = &stream->samples[stream->sample_index]; -#ifdef QTDEMUX_MODIFICATION -/*Modification: Changed because timestamp is modified for 0timestamp + sample->pts_offset; -#endif - *offset = sample->offset; *size = sample->size; *duration = QTSAMPLE_DUR_PTS (stream, sample, *timestamp); *keyframe = QTSAMPLE_KEYFRAME (stream, sample); +#ifdef QTDEMUX_MODIFICATION + if (qtdemux->segment.rate > 1.0 && (FOURCC_vide == stream->subtype)) { + /* forward trick play */ + gst_qtdemux_forward_trickplay (qtdemux, stream, timestamp); + } + else if (qtdemux->segment.rate < 0.0 && (FOURCC_vide == stream->subtype)) { + /* backward trick play */ + gst_qtdemux_backward_trickplay (qtdemux, stream, timestamp); + } + #endif + return TRUE; /* special cases */ @@ -3609,89 +3445,6 @@ eos: } } - -#ifdef QTDEMUX_MODIFICATION -/*Modification: Added function to get previous sample in support of index-table generation*/ - -/* Added by Kishore */ -/* move to the previous sample in @stream. - * - * Moves to the previous segment when needed. - */ -static void -gst_qtdemux_previous_sample (GstQTDemux * qtdemux, QtDemuxStream * stream) -{ - QtDemuxSample *sample; - QtDemuxSegment *segment; - - if (G_UNLIKELY (stream->sample_index <= stream->to_sample)) { - /* Mark the stream as EOS */ - GST_DEBUG_OBJECT (qtdemux, "reached max allowed sample %u, mark EOS", - stream->to_sample); - stream->time_position = -1; - return; - } - /* move to next sample */ -if(stream->subtype == FOURCC_vide) - stream->sample_index--; -else - stream->sample_index-=10; - - /* get current segment */ - segment = &stream->segments[stream->segment_index]; - - /* reached the last sample, we need the next segment */ - if (G_UNLIKELY (stream->sample_index < 0)) - goto next_segment; - - /* get next sample */ - sample = &stream->samples[stream->sample_index]; - - /* see if we are past the segment */ - if (G_UNLIKELY (sample->timestamp < 0)) - goto next_segment; - - if (G_UNLIKELY (gst_util_uint64_scale (sample->timestamp, - GST_SECOND, stream->timescale) >= segment->media_start)) - { - - /* inside the segment, update time_position, looks very familiar to - * GStreamer segments, doesn't it? */ - - stream->time_position = - (gst_util_uint64_scale (sample->timestamp, GST_SECOND, - stream->timescale) - segment->media_start) + segment->time; - } - else - { - - /* not yet in segment, time does not yet increment. This means - * that we are still prerolling keyframes to the decoder so it can - * decode the first sample of the segment. */ - stream->time_position = segment->time; - - } - - - return; - - /* move to the next segment */ -next_segment: - { - GST_DEBUG_OBJECT (qtdemux, "segment %d ended ", stream->segment_index); - - if (stream->segment_index == stream->n_segments - 1) { - /* are we at the end of the last segment, we're EOS */ - stream->time_position = -1; - } else { - /* else we're only at the end of the current segment */ - stream->time_position = segment->stop_time; - } - /* make sure we select a new segment */ - stream->segment_index = -1; - } -} -#endif /* move to the next sample in @stream. * * Moves to the next segment when needed. @@ -3821,7 +3574,7 @@ gst_qtdemux_sync_streams (GstQTDemux * demux) } /* UNEXPECTED and NOT_LINKED need to be combined. This means that we return: - * + * * GST_FLOW_NOT_LINKED: when all pads NOT_LINKED. * GST_FLOW_UNEXPECTED: when all pads UNEXPECTED or NOT_LINKED. */ @@ -4116,7 +3869,7 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, gst_index_add_association (qtdemux->element_index, qtdemux->index_id, keyframe ? GST_ASSOCIATION_FLAG_KEY_UNIT : - GST_ASSOCIATION_FLAG_NONE, GST_FORMAT_TIME, stream_time, + GST_ASSOCIATION_FLAG_DELTA_UNIT, GST_FORMAT_TIME, stream_time, GST_FORMAT_BYTES, byte_position, NULL); } } @@ -4163,9 +3916,6 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) guint size = 0; gint index; gint i; -#ifdef QTDEMUX_MODIFICATION - guint64 max_time = 0; -#endif gst_qtdemux_push_pending_newsegment (qtdemux); @@ -4173,30 +3923,17 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) * global time and runs over the edit list segments. */ min_time = G_MAXUINT64; index = -1; - for (i = 0; i < qtdemux->n_streams; i++) { guint64 position; stream = qtdemux->streams[i]; position = stream->time_position; -#ifdef QTDEMUX_MODIFICATION - if (qtdemux->segment.rate>0) - { -#endif - /* position of -1 is EOS */ - if (position != -1 && position < min_time) { - min_time = position; - index = i; - } -#ifdef QTDEMUX_MODIFICATION - }else - { - if (position != -1 && position > max_time) { - max_time = position; - index = i; - } - } -#endif + + /* position of -1 is EOS */ + if (position != -1 && position < min_time) { + min_time = position; + index = i; + } } /* all are EOS */ if (G_UNLIKELY (index == -1)) { @@ -4204,27 +3941,12 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) goto eos; } -#ifdef QTDEMUX_MODIFICATION - if (qtdemux->segment.rate>0) - { -#endif - /* check for segment end */ - if (G_UNLIKELY (qtdemux->segment.stop != -1 - && qtdemux->segment.stop < min_time)) { - GST_DEBUG_OBJECT (qtdemux, "we reached the end of our segment."); - goto eos; -#ifdef QTDEMUX_MODIFICATION - } - } - else - { - if (G_UNLIKELY (qtdemux->segment.stop != -1 - && qtdemux->segment.stop < max_time)) { - GST_DEBUG_OBJECT (qtdemux, "we reached the end of our segment."); - goto eos; - } -#endif - } + /* check for segment end */ + if (G_UNLIKELY (qtdemux->segment.stop != -1 + && qtdemux->segment.stop < min_time)) { + GST_DEBUG_OBJECT (qtdemux, "we reached the end of our segment."); + goto eos; + } stream = qtdemux->streams[index]; @@ -4253,17 +3975,10 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) if (G_UNLIKELY (ret != GST_FLOW_OK)) goto beach; -#ifdef QTDEMUX_MODIFICATION -if (qtdemux->segment.rate>0) -#endif ret = gst_qtdemux_decorate_and_push_buffer (qtdemux, stream, buf, timestamp, duration, keyframe, min_time, offset); -#ifdef QTDEMUX_MODIFICATION - else - ret = gst_qtdemux_decorate_and_push_buffer (qtdemux, stream, buf, - timestamp, duration, keyframe, max_time, offset); -#endif -/* combine flows */ + + /* combine flows */ ret = gst_qtdemux_combine_flows (qtdemux, stream, ret); /* ignore unlinked, we will not push on the pad anymore and we will EOS when * we have no more data for the pad to push */ @@ -4271,11 +3986,6 @@ if (qtdemux->segment.rate>0) ret = GST_FLOW_OK; next: -#ifdef QTDEMUX_MODIFICATION - if(qtdemux->segment.rate<0) - gst_qtdemux_previous_sample (qtdemux, stream); -else -#endif gst_qtdemux_advance_sample (qtdemux, stream); beach: @@ -4317,12 +4027,9 @@ gst_qtdemux_loop (GstPad * pad) break; case QTDEMUX_STATE_MOVIE: ret = gst_qtdemux_loop_state_movie (qtdemux); -#ifndef QTDEMUX_MODIFICATION - // not used now, Kishore if (qtdemux->segment.rate < 0 && ret == GST_FLOW_UNEXPECTED) { ret = gst_qtdemux_seek_to_previous_keyframe (qtdemux); } -#endif break; default: /* ouch */ @@ -4357,48 +4064,43 @@ pause: gst_pad_pause_task (pad); /* fatal errors need special actions */ - if (GST_FLOW_IS_FATAL (ret) || ret == GST_FLOW_NOT_LINKED) { - /* check EOS */ - if (ret == GST_FLOW_UNEXPECTED) { - if (qtdemux->n_streams == 0) { - /* we have no streams, post an error */ - GST_ELEMENT_ERROR (qtdemux, STREAM, DECODE, - (_("This file contains no playable streams.")), - ("no known streams found")); - } - if (qtdemux->segment.flags & GST_SEEK_FLAG_SEGMENT) { - gint64 stop; - - /* FIXME: I am not sure this is the right fix. If the sinks are - * supposed to detect the segment is complete and accumulate - * automatically, it does not seem to work here. Need more work */ - qtdemux->segment_running = TRUE; - - if ((stop = qtdemux->segment.stop) == -1) - stop = qtdemux->segment.duration; - - if (qtdemux->segment.rate >= 0) { - GST_INFO_OBJECT (qtdemux, "Sending segment done, at end of segment"); - gst_element_post_message (GST_ELEMENT_CAST (qtdemux), - gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux), - GST_FORMAT_TIME, stop)); - } else { - /* For Reverse Playback */ - GST_INFO_OBJECT (qtdemux, - "Sending segment done, at start of segment"); - gst_element_post_message (GST_ELEMENT_CAST (qtdemux), - gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux), - GST_FORMAT_TIME, qtdemux->segment.start)); - } + /* check EOS */ + if (ret == GST_FLOW_UNEXPECTED) { + if (qtdemux->n_streams == 0) { + /* we have no streams, post an error */ + gst_qtdemux_post_no_playable_stream_error (qtdemux); + } + if (qtdemux->segment.flags & GST_SEEK_FLAG_SEGMENT) { + gint64 stop; + + /* FIXME: I am not sure this is the right fix. If the sinks are + * supposed to detect the segment is complete and accumulate + * automatically, it does not seem to work here. Need more work */ + qtdemux->segment_running = TRUE; + + if ((stop = qtdemux->segment.stop) == -1) + stop = qtdemux->segment.duration; + + if (qtdemux->segment.rate >= 0) { + GST_LOG_OBJECT (qtdemux, "Sending segment done, at end of segment"); + gst_element_post_message (GST_ELEMENT_CAST (qtdemux), + gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux), + GST_FORMAT_TIME, stop)); } else { - GST_INFO_OBJECT (qtdemux, "Sending EOS at end of segment"); - gst_qtdemux_push_event (qtdemux, gst_event_new_eos ()); + /* For Reverse Playback */ + GST_LOG_OBJECT (qtdemux, "Sending segment done, at start of segment"); + gst_element_post_message (GST_ELEMENT_CAST (qtdemux), + gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux), + GST_FORMAT_TIME, qtdemux->segment.start)); } } else { - GST_ELEMENT_ERROR (qtdemux, STREAM, FAILED, - (NULL), ("streaming stopped, reason %s", reason)); + GST_LOG_OBJECT (qtdemux, "Sending EOS at end of segment"); gst_qtdemux_push_event (qtdemux, gst_event_new_eos ()); } + } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED) { + GST_ELEMENT_ERROR (qtdemux, STREAM, FAILED, + (NULL), ("streaming stopped, reason %s", reason)); + gst_qtdemux_push_event (qtdemux, gst_event_new_eos ()); } goto done; } @@ -4496,9 +4198,52 @@ qtdemux_seek_offset (GstQTDemux * demux, guint64 offset) GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset, GST_SEEK_TYPE_NONE, -1); - res = gst_pad_push_event (demux->sinkpad, event); + res = gst_pad_push_event (demux->sinkpad, event); + + return res; +} + +/* check for seekable upstream, above and beyond a mere query */ +static void +gst_qtdemux_check_seekability (GstQTDemux * demux) +{ + GstQuery *query; + gboolean seekable = FALSE; + gint64 start = -1, stop = -1; + + if (demux->upstream_size) + return; + + query = gst_query_new_seeking (GST_FORMAT_BYTES); + if (!gst_pad_peer_query (demux->sinkpad, query)) { + GST_DEBUG_OBJECT (demux, "seeking query failed"); + goto done; + } + + gst_query_parse_seeking (query, NULL, &seekable, &start, &stop); + + /* try harder to query upstream size if we didn't get it the first time */ + if (seekable && stop == -1) { + GstFormat fmt = GST_FORMAT_BYTES; + + GST_DEBUG_OBJECT (demux, "doing duration query to fix up unset stop"); + gst_pad_query_peer_duration (demux->sinkpad, &fmt, &stop); + } - return res; + /* if upstream doesn't know the size, it's likely that it's not seekable in + * practice even if it technically may be seekable */ + if (seekable && (start != 0 || stop <= start)) { + GST_DEBUG_OBJECT (demux, "seekable but unknown start/stop -> disable"); + seekable = FALSE; + } + +done: + gst_query_unref (query); + + GST_DEBUG_OBJECT (demux, "seekable: %d (%" G_GUINT64_FORMAT " - %" + G_GUINT64_FORMAT ")", seekable, start, stop); + demux->upstream_seekable = seekable; + demux->upstream_size = seekable ? stop : -1; } /* FIXME, unverified after edit list updates */ @@ -4511,27 +4256,25 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) demux = GST_QTDEMUX (gst_pad_get_parent (sinkpad)); #ifdef QTDEMUX_MODIFICATION -/*Modification: Added consideration of demuxer state */ - - if (demux->file && demux->state == QTDEMUX_STATE_MOVIE) { - if (fwrite (GST_BUFFER_DATA (inbuf), GST_BUFFER_SIZE (inbuf), - 1, demux->file) != 1) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not write to temporary buffer file.")), - ("File Write Failure: '%s'", - demux->filename)); - return GST_FLOW_ERROR; - } else { - demux->filesize += GST_BUFFER_SIZE (inbuf); - } - gst_buffer_unref (inbuf); - } else { - gst_adapter_push (demux->adapter, inbuf); - } + /* Added consideration of demuxer state */ + if (demux->file && demux->state == QTDEMUX_STATE_MOVIE) { + if (fwrite (GST_BUFFER_DATA (inbuf), GST_BUFFER_SIZE (inbuf), 1, demux->file) != 1) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not write to temporary buffer file.")), + ("File Write Failure: '%s'", + demux->filename)); + return GST_FLOW_ERROR; + } else { + demux->filesize += GST_BUFFER_SIZE (inbuf); + } + gst_buffer_unref (inbuf); + } else { + gst_adapter_push (demux->adapter, inbuf); + } #else gst_adapter_push (demux->adapter, inbuf); #endif - + /* we never really mean to buffer that much */ if (demux->neededbytes == -1) goto eos; @@ -4540,12 +4283,10 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) inbuf, demux->neededbytes, gst_adapter_available (demux->adapter)); #ifdef QTDEMUX_MODIFICATION -/*Modification: Added consideration of demuxer state and file size*/ - + /* Added consideration of demuxer state and file size*/ while (((gst_adapter_available (demux->adapter)) >= demux->neededbytes - || (demux->file && demux->state == QTDEMUX_STATE_MOVIE && - demux->filesize >= demux->neededbytes)) - && ret == GST_FLOW_OK) { + || (demux->file && demux->state == QTDEMUX_STATE_MOVIE && demux->filesize >= demux->neededbytes)) + && ret == GST_FLOW_OK) { #else while (((gst_adapter_available (demux->adapter)) >= demux->neededbytes) && (ret == GST_FLOW_OK)) { @@ -4561,6 +4302,8 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) guint32 fourcc; guint64 size; + gst_qtdemux_check_seekability (demux); + data = gst_adapter_peek (demux->adapter, demux->neededbytes); /* get fourcc/length, set neededbytes */ @@ -4597,7 +4340,15 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) target = old + size; /* try to jump over the atom with a seek */ - res = qtdemux_seek_offset (demux, target); + /* only bother if it seems worth doing so, + * and avoids possible upstream/server problems */ + if (demux->upstream_seekable && + demux->upstream_size > 4 * (1 << 20)) { + res = qtdemux_seek_offset (demux, target); + } else { + GST_DEBUG_OBJECT (demux, "skipping seek"); + res = FALSE; + } if (res) { GST_DEBUG_OBJECT (demux, "seek success"); @@ -4615,19 +4366,19 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) } else { /* seek failed, need to buffer */ demux->offset = old; - GST_DEBUG_OBJECT (demux, "seek failed"); + GST_DEBUG_OBJECT (demux, "seek failed/skipped"); /* there may be multiple mdat (or alike) buffers */ /* sanity check */ if (demux->mdatbuffer) bs = GST_BUFFER_SIZE (demux->mdatbuffer); #ifdef QTDEMUX_MODIFICATION - else if (demux->file) - bs = demux->filesize; + else if (demux->file) + bs = demux->filesize; #endif else bs = 0; #ifdef QTDEMUX_MODIFICATION - if (size + bs > demux->maxbuffersize) + if (size + bs > demux->maxbuffersize) #else if (size + bs > 10 * (1 << 20)) #endif @@ -4635,7 +4386,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) demux->state = QTDEMUX_STATE_BUFFER_MDAT; demux->neededbytes = size; #ifdef QTDEMUX_MODIFICATION - if ((demux->filename && demux->file == NULL) || !demux->mdatbuffer) + if ((demux->filename && demux->file == NULL) || !demux->mdatbuffer) #else if (!demux->mdatbuffer) #endif @@ -4720,10 +4471,10 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) #ifdef QTDEMUX_MODIFICATION if ((demux->mdatbuffer || demux->file) && demux->n_streams) { + GstBuffer *buf; #else if (demux->mdatbuffer && demux->n_streams) { #endif - GstBuffer *buf; /* the mdat was before the header */ GST_DEBUG_OBJECT (demux, "We have n_streams:%d and mdatbuffer:%p", @@ -4732,30 +4483,28 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) * put preceding buffered data ahead of current moov data. * This should also handle evil mdat, moov, mdat cases and alike */ #ifdef QTDEMUX_MODIFICATION - if (demux->file == NULL) { + if (demux->file == NULL) { + // TODO: need to know what we need to do with buf, it is not freed + //buf = gst_adapter_take_buffer (demux->adapter, gst_adapter_available (demux->adapter)); #endif - buf = gst_adapter_take_buffer (demux->adapter, - gst_adapter_available (demux->adapter)); gst_adapter_clear (demux->adapter); + gst_adapter_push (demux->adapter, demux->mdatbuffer); /* need to check */ demux->mdatbuffer = NULL; #ifdef QTDEMUX_MODIFICATION - } else { - buf = gst_adapter_take_buffer (demux->adapter, - gst_adapter_available (demux->adapter)); - gst_adapter_clear (demux->adapter); - if (fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), - 1, demux->file) != 1) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not write to temporary buffer file.")), - ("File Write Failure: '%s'", - demux->filename)); - ret = GST_FLOW_ERROR; - break; - } else { - demux->filesize += GST_BUFFER_SIZE (buf); - } - gst_buffer_unref (buf); - } + } else { + buf = gst_adapter_take_buffer (demux->adapter, gst_adapter_available (demux->adapter)); + gst_adapter_clear (demux->adapter); + if (fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 1, demux->file) != 1) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not write to temporary buffer file.")), + ("File Write Failure: '%s'", demux->filename)); + ret = GST_FLOW_ERROR; + break; + } else { + demux->filesize += GST_BUFFER_SIZE (buf); + } + gst_buffer_unref (buf); + } #endif demux->offset = demux->mdatoffset; demux->neededbytes = next_entry_size (demux); @@ -4766,19 +4515,17 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) qtdemux_post_global_tags (demux); #ifdef QTDEMUX_MODIFICATION - if (demux->file) { - demux->ofile = fopen (demux->filename, "rb"); - if (demux->ofile == NULL) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not open temporary buffer file.")), - ("File Open Failure %d: '%s'", __LINE__, - demux->filename)); - ret = GST_FLOW_ERROR; - break; - } - } + if (demux->file) { + demux->ofile = fopen (demux->filename, "rb"); + if (demux->ofile == NULL) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not open temporary buffer file.")), + ("File Open Failure %d: '%s'", __LINE__, demux->filename)); + ret = GST_FLOW_ERROR; + break; + } + } #endif - } else { GST_DEBUG_OBJECT (demux, "Carrying on normally"); gst_adapter_flush (demux->adapter, demux->neededbytes); @@ -4812,43 +4559,39 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) GST_FOURCC_ARGS (QT_FOURCC (GST_BUFFER_DATA (buf) + 4))); #ifdef QTDEMUX_MODIFICATION - if (demux->filename == NULL) { + if (demux->filename == NULL) { #endif if (demux->mdatbuffer) demux->mdatbuffer = gst_buffer_join (demux->mdatbuffer, buf); else demux->mdatbuffer = buf; #ifdef QTDEMUX_MODIFICATION - } else { - if (demux->file) { - - write_data: - if (fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 1, demux->file) != 1) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not write to temporary buffer file.")), - ("File Write Failure: '%s'", - demux->filename)); - ret = GST_FLOW_ERROR; - break; - } else { - demux->filesize += GST_BUFFER_SIZE (buf); - } - gst_buffer_unref (buf); - } else { - demux->file = fopen (demux->filename, "wb"); - if (demux->file == NULL) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not create temporary buffer file.")), - ("File Open Failure: '%s'", - demux->filename)); - ret = GST_FLOW_ERROR; - break; - } - goto write_data; - } - } + } else { + write_data: + if (demux->file) { + if (fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 1, demux->file) != 1) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not write to temporary buffer file.")), + ("File Write Failure: '%s'", demux->filename)); + ret = GST_FLOW_ERROR; + break; + } else { + demux->filesize += GST_BUFFER_SIZE (buf); + } + gst_buffer_unref (buf); + } else { + demux->file = fopen (demux->filename, "wb"); + if (demux->file == NULL) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not create temporary buffer file.")), + ("File Open Failure: '%s'", demux->filename)); + ret = GST_FLOW_ERROR; + break; + } + goto write_data; + } + } #endif - demux->offset += demux->neededbytes; demux->neededbytes = 16; demux->state = QTDEMUX_STATE_INITIAL; @@ -4897,16 +4640,15 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) if (demux->todrop) { GST_LOG_OBJECT (demux, "Dropping %d bytes", demux->todrop); #ifdef QTDEMUX_MODIFICATION - if (demux->file == NULL) + if (demux->file == NULL) #endif - gst_adapter_flush (demux->adapter, demux->todrop); + gst_adapter_flush (demux->adapter, demux->todrop); #ifdef QTDEMUX_MODIFICATION - else { - fseek (demux->ofile, (long) demux->todrop, SEEK_CUR); - demux->filesize -= demux->todrop; - } + else { + fseek (demux->ofile, (long) demux->todrop, SEEK_CUR); + demux->filesize -= demux->todrop; + } #endif - demux->neededbytes -= demux->todrop; demux->offset += demux->todrop; } @@ -4943,32 +4685,26 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) /* Put data in a buffer, set timestamps, caps, ... */ #ifdef QTDEMUX_MODIFICATION - if (demux->file == NULL) { - outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes); - g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); - - } else { - outbuf = gst_buffer_new_and_alloc (demux->neededbytes); - g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); - - if (fread (GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf), - 1, demux->ofile) != 1) { - GST_ELEMENT_ERROR (demux, STREAM, DECODE, - (_("Could not read from temporary buffer file.")), - ("File Read Failure: '%s'", - demux->filename)); - ret = GST_FLOW_ERROR; - break; - } - demux->filesize -= demux->neededbytes; - } -#else + if (demux->file == NULL) { +#endif outbuf = gst_adapter_take_buffer (demux->adapter, demux->neededbytes); GST_DEBUG_OBJECT (demux, "stream : %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (stream->fourcc)); - - g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); +#ifdef QTDEMUX_MODIFICATION + } else { + outbuf = gst_buffer_new_and_alloc (demux->neededbytes); + g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); + if (fread (GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf), 1, demux->ofile) != 1) { + GST_ELEMENT_ERROR (demux, STREAM, DECODE, + (_("Could not read from temporary buffer file.")), + ("File Read Failure: '%s'", demux->filename)); + ret = GST_FLOW_ERROR; + break; + } + demux->filesize -= demux->neededbytes; + } #endif + g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); sample = &stream->samples[stream->sample_index]; @@ -5012,17 +4748,15 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) /* when buffering movie data, at least show user something is happening */ #ifdef QTDEMUX_MODIFICATION if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT) { - guint available; - - if (demux->file) - available = demux->filesize; - else - available = gst_adapter_available (demux->adapter); - - if (available <= demux->neededbytes) { - gst_qtdemux_post_progress (demux, available, - demux->neededbytes); - } + guint available; + if (demux->file) + available = demux->filesize; + else + available = gst_adapter_available (demux->adapter); + + if (available <= demux->neededbytes) { + gst_qtdemux_post_progress (demux, available, demux->neededbytes); + } } #else if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT && @@ -5031,7 +4765,6 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) demux->neededbytes); } #endif - done: gst_object_unref (demux); @@ -5158,6 +4891,9 @@ qtdemux_parse_moov (GstQTDemux * qtdemux, const guint8 * buffer, guint length) qtdemux->moov_node = g_node_new ((guint8 *) buffer); + /* counts as header data */ + qtdemux->header_size += length; + GST_DEBUG_OBJECT (qtdemux, "parsing 'moov' atom"); qtdemux_parse_node (qtdemux, qtdemux->moov_node, buffer, length); @@ -5421,7 +5157,8 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, guint32 version; int tlen; - GST_DEBUG_OBJECT (qtdemux, "parsing in mp4v"); + GST_DEBUG_OBJECT (qtdemux, "parsing in %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); version = QT_UINT32 (buffer + 16); GST_DEBUG_OBJECT (qtdemux, "version %08x", version); if (1 || version == 0x00000000) { @@ -5845,7 +5582,7 @@ qtdemux_add_fragmented_samples (GstQTDemux * qtdemux) guint64 length, offset; GstBuffer *buf = NULL; GstFlowReturn ret = GST_FLOW_OK; - GstFlowReturn res = TRUE; + GstFlowReturn res = GST_FLOW_OK; offset = qtdemux->moof_offset; GST_DEBUG_OBJECT (qtdemux, "next moof at offset %" G_GUINT64_FORMAT, offset); @@ -5930,13 +5667,18 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) GST_LOG_OBJECT (qtdemux, "%u timestamp blocks", stream->n_sample_times); /* make sure there's enough data */ - if (!qt_atom_parser_has_chunks (&stream->stts, stream->n_sample_times, 2 * 4)) - goto corrupt_file; + if (!qt_atom_parser_has_chunks (&stream->stts, stream->n_sample_times, 8)) { + stream->n_sample_times = gst_byte_reader_get_remaining (&stream->stts) / 8; + GST_LOG_OBJECT (qtdemux, "overriding to %u timestamp blocks", + stream->n_sample_times); + if (!stream->n_sample_times) + goto corrupt_file; + } /* sync sample atom */ stream->stps_present = FALSE; if ((stream->stss_present = - !!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stss, + ! !qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stss, &stream->stss) ? TRUE : FALSE) == TRUE) { /* copy atom data into a new buffer for later use */ stream->stss.data = g_memdup (stream->stss.data, stream->stss.size); @@ -5954,7 +5696,7 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) /* partial sync sample atom */ if ((stream->stps_present = - !!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stps, + ! !qtdemux_tree_get_child_by_type_full (stbl, FOURCC_stps, &stream->stps) ? TRUE : FALSE) == TRUE) { /* copy atom data into a new buffer for later use */ stream->stps.data = g_memdup (stream->stps.data, stream->stps.size); @@ -6051,10 +5793,9 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) goto corrupt_file; } - GST_DEBUG_OBJECT (qtdemux, - "allocating n_samples %u * %" G_GSIZE_FORMAT " = (%u MB)", - stream->n_samples, sizeof (QtDemuxSample), - (guint) (stream->n_samples * sizeof (QtDemuxSample)) >> 20); + GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u * %u (%.2f MB)", + stream->n_samples, (guint) sizeof (QtDemuxSample), + stream->n_samples * sizeof (QtDemuxSample) / (1024.0 * 1024.0)); if (stream->n_samples >= QTDEMUX_MAX_SAMPLE_INDEX_SIZE / sizeof (QtDemuxSample)) { @@ -6074,7 +5815,7 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) /* composition time-to-sample */ if ((stream->ctts_present = - !!qtdemux_tree_get_child_by_type_full (stbl, FOURCC_ctts, + ! !qtdemux_tree_get_child_by_type_full (stbl, FOURCC_ctts, &stream->ctts) ? TRUE : FALSE) == TRUE) { /* copy atom data into a new buffer for later use */ stream->ctts.data = g_memdup (stream->ctts.data, stream->ctts.size); @@ -6321,8 +6062,8 @@ done2: for (i = stream->stts_index; i < n_sample_times; i++) { guint32 stts_samples; - guint32 stts_duration; - guint32 stts_time; + gint32 stts_duration; + gint64 stts_time; if (stream->stts_sample_index >= stream->stts_samples || !stream->stts_sample_index) { @@ -6352,7 +6093,9 @@ done2: cur->timestamp = stts_time; cur->duration = stts_duration; - stts_time += stts_duration; + /* avoid 32-bit wrap-around, + * but still mind possible 'negative' duration */ + stts_time += (gint64) stts_duration; cur++; if (G_UNLIKELY (cur > last)) { @@ -6749,7 +6492,6 @@ end: static gchar * qtdemux_get_rtsp_uri_from_hndl (GstQTDemux * qtdemux, GNode * minf) { - GNode *hndl; GNode *dinf; GstByteReader dref; gchar *uri = NULL; @@ -6769,7 +6511,6 @@ qtdemux_get_rtsp_uri_from_hndl (GstQTDemux * qtdemux, GNode * minf) gst_byte_reader_skip (&dref, 4) && gst_byte_reader_get_uint32_be (&dref, &dref_num_entries)) { gint i; - hndl = NULL; /* search dref entries for hndl atom */ for (i = 0; i < dref_num_entries; i++) { @@ -6781,7 +6522,7 @@ qtdemux_get_rtsp_uri_from_hndl (GstQTDemux * qtdemux, GNode * minf) GST_DEBUG_OBJECT (qtdemux, "Found hndl atom"); /* skip data reference handle bytes and the - * following pascal string and some extra 4 + * following pascal string and some extra 4 * bytes I have no idea what are */ if (!gst_byte_reader_skip (&dref, 4) || !gst_byte_reader_get_uint8 (&dref, &string_len) || @@ -6846,6 +6587,63 @@ less_than (gconstpointer a, gconstpointer b) return *av - *bv; } +#define AMR_NB_ALL_MODES 0x81ff +#define AMR_WB_ALL_MODES 0x83ff +static guint +qtdemux_parse_amr_bitrate (GstBuffer * buf, gboolean wb) +{ + /* The 'damr' atom is of the form: + * + * | vendor | decoder_ver | mode_set | mode_change_period | frames/sample | + * 32 b 8 b 16 b 8 b 8 b + * + * The highest set bit of the first 7 (AMR-NB) or 8 (AMR-WB) bits of mode_set + * represents the highest mode used in the stream (and thus the maximum + * bitrate), with a couple of special cases as seen below. + */ + + /* Map of frame type ID -> bitrate */ + static const guint nb_bitrates[] = { + 4750, 5150, 5900, 6700, 7400, 7950, 10200, 12200 + }; + static const guint wb_bitrates[] = { + 6600, 8850, 12650, 14250, 15850, 18250, 19850, 23050, 23850 + }; + const guint8 *data = GST_BUFFER_DATA (buf); + guint size = QT_UINT32 (data), max_mode; + guint16 mode_set; + + if (GST_BUFFER_SIZE (buf) != 0x11) { + GST_DEBUG ("Atom should have size 0x11, not %u", size); + goto bad_data; + } + + if (QT_FOURCC (data + 4) != GST_MAKE_FOURCC ('d', 'a', 'm', 'r')) { + GST_DEBUG ("Unknown atom in %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (QT_UINT32 (data + 4))); + goto bad_data; + } + + mode_set = QT_UINT16 (data + 13); + + if (mode_set == (wb ? AMR_WB_ALL_MODES : AMR_NB_ALL_MODES)) + max_mode = 7 + (wb ? 1 : 0); + else + /* AMR-NB modes fo from 0-7, and AMR-WB modes go from 0-8 */ + max_mode = g_bit_nth_msf ((gulong) mode_set & (wb ? 0x1ff : 0xff), -1); + + if (max_mode == -1) { + GST_DEBUG ("No mode indication was found (mode set) = %x", + (guint) mode_set); + goto bad_data; + } + + return wb ? wb_bitrates[max_mode] : nb_bitrates[max_mode]; + +bad_data: + return 0; +} + /* parse the traks. * With each track we associate a new QtDemuxStream that contains all the info * about the trak. @@ -6888,7 +6686,12 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) stream->time_position = 0; stream->sample_index = -1; stream->last_ret = GST_FLOW_OK; - +#ifdef QTDEMUX_MODIFICATION + stream->trickplay_info = g_new0 (TrickPlayInfo, 1); + stream->trickplay_info->prev_kidx = 0; + stream->trickplay_info->next_kidx = 0; + stream->trickplay_info->kidxs_dur_diff = 0; +#endif if (!qtdemux_tree_get_child_by_type_full (trak, FOURCC_tkhd, &tkhd) || !gst_byte_reader_get_uint8 (&tkhd, &tkhd_version) || !gst_byte_reader_get_uint24_be (&tkhd, &tkhd_flags)) @@ -6969,6 +6772,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) "found, assuming preview image or something; skipping track", stream->duration, stream->timescale, qtdemux->duration, qtdemux->timescale); +#ifdef QTDEMUX_MODIFICATION + g_free (stream->trickplay_info); +#endif g_free (stream); return TRUE; } @@ -7056,6 +6862,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) esds = NULL; pasp = NULL; +#ifdef QTDEMUX_MODIFICATION mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4v); if (!mp4v) mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_MP4V); @@ -7063,6 +6870,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) * and qt seems to put MPEG-4 stuff in there as well */ if (!mp4v) mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_avc1); +#else + /* pick 'the' stsd child */ + mp4v = qtdemux_tree_get_child_by_type (stsd, fourcc); +#endif if (mp4v) { esds = qtdemux_tree_get_child_by_type (mp4v, FOURCC_esds); pasp = qtdemux_tree_get_child_by_type (mp4v, FOURCC_pasp); @@ -7181,10 +6992,16 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) { GNode *glbl; - GST_DEBUG_OBJECT (qtdemux, "found mp4v"); + GST_DEBUG_OBJECT (qtdemux, "found %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); /* codec data might be in glbl extension atom */ +#ifdef QTDEMUX_MODIFICATION glbl = qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl); +#else + glbl = mp4v ? + qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl) : NULL; +#endif if (glbl) { guint8 *data; GstBuffer *buf; @@ -7476,6 +7293,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } else if (stream->subtype == FOURCC_soun) { int version, samplesize; guint16 compression_id; + gboolean amrwb = FALSE; offset = 32; if (len < 36) @@ -7705,11 +7523,21 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } if (codec) { + GstStructure *s; + gint bitrate = 0; + list = gst_tag_list_new (); gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_AUDIO_CODEC, codec, NULL); g_free (codec); codec = NULL; + + /* some bitrate info may have ended up in caps */ + s = gst_caps_get_structure (stream->caps, 0); + gst_structure_get_int (s, "bitrate", &bitrate); + if (bitrate > 0) + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_BITRATE, + bitrate, NULL); } mp4a = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4a); @@ -7843,15 +7671,29 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) "samplesize", G_TYPE_INT, samplesize, NULL); break; } + case FOURCC_sawb: + /* Fallthrough! */ + amrwb = TRUE; case FOURCC_samr: { gint len = QT_UINT32 (stsd_data); if (len > 0x34) { GstBuffer *buf = gst_buffer_new_and_alloc (len - 0x34); + guint bitrate; memcpy (GST_BUFFER_DATA (buf), stsd_data + 0x34, len - 0x34); + /* If we have enough data, let's try to get the 'damr' atom. See + * the 3GPP container spec (26.244) for more details. */ + if ((len - 0x34) > 8 && + (bitrate = qtdemux_parse_amr_bitrate (buf, amrwb))) { + if (!list) + list = gst_tag_list_new (); + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_MAXIMUM_BITRATE, bitrate, NULL); + } + gst_caps_set_simple (stream->caps, "codec_data", GST_TYPE_BUFFER, buf, NULL); gst_buffer_unref (buf); @@ -8020,12 +7862,18 @@ corrupt_file: { GST_ELEMENT_ERROR (qtdemux, STREAM, DEMUX, (_("This file is corrupt and cannot be played.")), (NULL)); +#ifdef QTDEMUX_MODIFICATION + g_free (stream->trickplay_info); +#endif g_free (stream); return FALSE; } error_encrypted: { GST_ELEMENT_ERROR (qtdemux, STREAM, DECRYPT, (NULL), (NULL)); +#ifdef QTDEMUX_MODIFICATION + g_free (stream->trickplay_info); +#endif g_free (stream); return FALSE; } @@ -8035,6 +7883,9 @@ segments_failed: /* we posted an error already */ /* free stbl sub-atoms */ gst_qtdemux_stbl_free (stream); +#ifdef QTDEMUX_MODIFICATION + g_free (stream->trickplay_info); +#endif g_free (stream); return FALSE; } @@ -8042,6 +7893,9 @@ unknown_stream: { GST_INFO_OBJECT (qtdemux, "unknown subtype %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (stream->subtype)); +#ifdef QTDEMUX_MODIFICATION + g_free (stream->trickplay_info); +#endif g_free (stream); return TRUE; } @@ -8054,6 +7908,99 @@ too_many_streams: } } +/* If we can estimate the overall bitrate, and don't have information about the + * stream bitrate for exactly one stream, this guesses the stream bitrate as + * the overall bitrate minus the sum of the bitrates of all other streams. This + * should be useful for the common case where we have one audio and one video + * stream and can estimate the bitrate of one, but not the other. */ +static void +gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux) +{ + GstFormat format = GST_FORMAT_BYTES; + QtDemuxStream *stream = NULL; + gint64 size, duration, sys_bitrate, sum_bitrate = 0; + gint i; + guint bitrate; + + if (qtdemux->fragmented) + return; + + GST_DEBUG_OBJECT (qtdemux, "Looking for streams with unknown bitrate"); + + if (!gst_pad_query_peer_duration (qtdemux->sinkpad, &format, &size) || + format != GST_FORMAT_BYTES) { + GST_DEBUG_OBJECT (qtdemux, + "Size in bytes of the stream not known - bailing"); + return; + } + + /* Subtract the header size */ + GST_DEBUG_OBJECT (qtdemux, "Total size %" G_GINT64_FORMAT ", header size %u", + size, qtdemux->header_size); + g_assert (size >= qtdemux->header_size); + size = size - qtdemux->header_size; + + if (!gst_qtdemux_get_duration (qtdemux, &duration) || + duration == GST_CLOCK_TIME_NONE) { + GST_DEBUG_OBJECT (qtdemux, "Stream duration not known - bailing"); + return; + } + + for (i = 0; i < qtdemux->n_streams; i++) { + switch (qtdemux->streams[i]->subtype) { + case FOURCC_soun: + case FOURCC_vide: + /* retrieve bitrate, prefer avg then max */ + bitrate = 0; + if (qtdemux->streams[i]->pending_tags) { + gst_tag_list_get_uint (qtdemux->streams[i]->pending_tags, + GST_TAG_MAXIMUM_BITRATE, &bitrate); + gst_tag_list_get_uint (qtdemux->streams[i]->pending_tags, + GST_TAG_BITRATE, &bitrate); + } + if (bitrate) + sum_bitrate += bitrate; + else { + if (stream) { + GST_DEBUG_OBJECT (qtdemux, + ">1 stream with unknown bitrate - bailing"); + return; + } else + stream = qtdemux->streams[i]; + } + + default: + /* For other subtypes, we assume no significant impact on bitrate */ + break; + } + } + + if (!stream) { + GST_DEBUG_OBJECT (qtdemux, "All stream bitrates are known"); + return; + } + + sys_bitrate = gst_util_uint64_scale (size, GST_SECOND * 8, duration); + + if (sys_bitrate < sum_bitrate) { + /* This can happen, since sum_bitrate might be derived from maximum + * bitrates and not average bitrates */ + GST_DEBUG_OBJECT (qtdemux, + "System bitrate less than sum bitrate - bailing"); + return; + } + + bitrate = sys_bitrate - sum_bitrate; + GST_DEBUG_OBJECT (qtdemux, "System bitrate = %" G_GINT64_FORMAT + ", Stream bitrate = %u", sys_bitrate, bitrate); + + if (!stream->pending_tags) + stream->pending_tags = gst_tag_list_new (); + + gst_tag_list_add (stream->pending_tags, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, bitrate, NULL); +} + static GstFlowReturn qtdemux_expose_streams (GstQTDemux * qtdemux) { @@ -8129,6 +8076,8 @@ qtdemux_expose_streams (GstQTDemux * qtdemux) gst_qtdemux_add_stream (qtdemux, stream, list); } + gst_qtdemux_guess_bitrate (qtdemux); + gst_element_no_more_pads (GST_ELEMENT_CAST (qtdemux)); /* check if we should post a redirect in case there is a single trak @@ -8643,6 +8592,7 @@ qtdemux_tag_add_gnre (GstQTDemux * qtdemux, const char *tag, const char *dummy, data = qtdemux_tree_get_child_by_type (node, FOURCC_data); +#ifndef QTDEMUX_MODIFICATION /* re-route to normal string tag if major brand says so * or no data atom and compatible brand suggests so */ if (qtdemux_is_brand_3gp (qtdemux, TRUE) || @@ -8650,6 +8600,7 @@ qtdemux_tag_add_gnre (GstQTDemux * qtdemux, const char *tag, const char *dummy, qtdemux_tag_add_str (qtdemux, tag, dummy, node); return; } +#endif if (data) { guint len, type, n; @@ -8669,7 +8620,29 @@ qtdemux_tag_add_gnre (GstQTDemux * qtdemux, const char *tag, const char *dummy, } } } +#ifdef QTDEMUX_MODIFICATION + else { + /* re-route to normal string tag if major brand says so + * or no data atom and compatible brand suggests so */ + if (qtdemux_is_brand_3gp (qtdemux, TRUE) || + (qtdemux_is_brand_3gp (qtdemux, FALSE) && !data)) { + qtdemux_tag_add_str (qtdemux, tag, dummy, node); + return; + } + } +#endif + } +#ifdef QTDEMUX_MODIFICATION + else { + /* re-route to normal string tag if major brand says so + * or no data atom and compatible brand suggests so */ + if (qtdemux_is_brand_3gp (qtdemux, TRUE) || + (qtdemux_is_brand_3gp (qtdemux, FALSE) && !data)) { + qtdemux_tag_add_str (qtdemux, tag, dummy, node); + return; + } } +#endif } static void @@ -8822,6 +8795,42 @@ unknown_tag: } } +static void +qtdemux_tag_add_id32 (GstQTDemux * demux, const char *tag, + const char *tag_bis, GNode * node) +{ + guint8 *data; + GstBuffer *buf; + guint len; + GstTagList *taglist = NULL; + + GST_LOG_OBJECT (demux, "parsing ID32"); + + data = node->data; + len = GST_READ_UINT32_BE (data); + + /* need at least full box and language tag */ + if (len < 12 + 2) + return; + + buf = gst_buffer_new (); + GST_BUFFER_DATA (buf) = data + 14; + GST_BUFFER_SIZE (buf) = len - 14; + + taglist = gst_tag_list_from_id3v2_tag (buf); + if (taglist) { + GST_LOG_OBJECT (demux, "parsing ok"); + gst_tag_list_insert (demux->tag_list, taglist, GST_TAG_MERGE_KEEP); + } else { + GST_LOG_OBJECT (demux, "parsing failed"); + } + + if (taglist) + gst_tag_list_free (taglist); + + gst_buffer_unref (buf); +} + typedef void (*GstQTDemuxAddTagFunc) (GstQTDemux * demux, const char *tag, const char *tag_bis, GNode * node); @@ -8891,7 +8900,9 @@ static const struct * http://atomicparsley.sourceforge.net/mpeg-4files.html and * bug #614471 */ - FOURCC_____, "", NULL, qtdemux_tag_add_revdns} + FOURCC_____, "", NULL, qtdemux_tag_add_revdns}, { + /* see http://www.mp4ra.org/specs.html for ID32 in meta box */ + FOURCC_ID32, "", NULL, qtdemux_tag_add_id32} }; static void @@ -9251,8 +9262,16 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) /* Moving qt creation time (secs since 1904) to unix time */ if (creation_time != 0) { if (creation_time > QTDEMUX_SECONDS_FROM_1904_TO_1970) { + GTimeVal now; + creation_time -= QTDEMUX_SECONDS_FROM_1904_TO_1970; - datetime = gst_date_time_new_from_unix_epoch_local_time (creation_time); + /* some data cleansing sanity */ + g_get_current_time (&now); + if (now.tv_sec + 24 * 3600 < creation_time) { + GST_DEBUG_OBJECT (qtdemux, "discarding bogus future creation time"); + } else { + datetime = gst_date_time_new_from_unix_epoch_local_time (creation_time); + } } else { GST_WARNING_OBJECT (qtdemux, "Can't handle datetimes before 1970 yet, " "please file a bug at http://bugzilla.gnome.org"); @@ -9288,8 +9307,13 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) /* set duration in the segment info */ gst_qtdemux_get_duration (qtdemux, &duration); - if (duration) + if (duration) { gst_segment_set_duration (&qtdemux->segment, GST_FORMAT_TIME, duration); + /* also do not exceed duration; stop is set that way post seek anyway, + * and segment activation falls back to duration, + * whereas loop only checks stop, so let's align this here as well */ + qtdemux->segment.stop = duration; + } /* parse all traks */ trak = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_trak); @@ -9307,6 +9331,15 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) GST_LOG_OBJECT (qtdemux, "No udta node found."); } + /* maybe also some tags in meta box */ + udta = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_meta); + if (udta) { + GST_DEBUG_OBJECT (qtdemux, "Parsing meta box for tags."); + qtdemux_parse_udta (qtdemux, udta); + } else { + GST_LOG_OBJECT (qtdemux, "No meta node found."); + } + qtdemux->tag_list = qtdemux_add_container_format (qtdemux, qtdemux->tag_list); return TRUE; @@ -9532,24 +9565,19 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream, #ifdef QTDEMUX_MODIFICATION /* Check the possiblity of H263 in case of mp4v fourCC */ - if(stream->fourcc == FOURCC_mp4v) - { + if(stream->fourcc == FOURCC_mp4v) { gboolean err = TRUE; int i; GST_ERROR_OBJECT (qtdemux, "Checking for the Possibility of H263"); - - for(i=0; ifourcc = GST_MAKE_FOURCC ('h', '2', '6', '3'); stream->caps = gst_caps_from_string ("video/x-h263"); @@ -9881,6 +9909,7 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, case GST_MAKE_FOURCC ('V', 'P', '8', '0'): _codec ("On2 VP8"); caps = gst_caps_from_string ("video/x-vp8"); + break; case FOURCC_ovc1: _codec ("VC-1"); caps = gst_caps_new_simple ("video/x-wmv", @@ -10150,3 +10179,142 @@ qtdemux_sub_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, } return caps; } + +#ifdef QTDEMUX_MODIFICATION +static void +gst_qtdemux_forward_trickplay (GstQTDemux * qtdemux, QtDemuxStream * stream, guint64 *timestamp) +{ + guint32 nsamples = 0; /* Number of samples between two consecutive keyframes */ + QtDemuxSample *sample; + + if ((*timestamp < stream->trickplay_info->start_pos) && !qtdemux->fwdtrick_mode) { + GST_LOG_OBJECT (qtdemux, "Received shown sample... not applying trickplay algo"); + return; + } + + if ((stream->trickplay_info->next_kidx == 0 ) && (stream->sample_index < stream->to_sample)) { + stream->trickplay_info->next_kidx = stream->trickplay_info->prev_kidx = stream->sample_index; + + GST_DEBUG_OBJECT (qtdemux, " Previous index : %d and ts = %"GST_TIME_FORMAT, + stream->trickplay_info->prev_kidx, GST_TIME_ARGS(QTSAMPLE_PTS (stream, &stream->samples[stream->trickplay_info->prev_kidx]))); + + while(1) { /* while loop to handle multiple consecutive key frames */ + /* find previous key frame */ + stream->trickplay_info->next_kidx = gst_qtdemux_find_next_keyframe (qtdemux, stream, stream->trickplay_info->next_kidx + 1); + + /* based no.of sample between key frame and rate, drop frames */ + GST_DEBUG_OBJECT (qtdemux, "current index : %d, next key index : %d", stream->sample_index, stream->trickplay_info->next_kidx); + + if (qtdemux->fwdtrick_mode) { + /* sending only key frames */ + GST_DEBUG_OBJECT (qtdemux, "reached end of keyframe interval....Jumping to next key index = %d", stream->trickplay_info->next_kidx); + stream->sample_index = stream->trickplay_info->next_kidx -1; /* next_kidx -1 is because advance_sample will increment */ + stream->trickplay_info->next_kidx = 0; + stream->discont = TRUE; + break; + } else { + + /* find no.of samples between present and previous key frames */ + nsamples = stream->trickplay_info->next_kidx - stream->trickplay_info->prev_kidx; + + /* find average duration between key frames */ + stream->trickplay_info->kidxs_dur_diff = (QTSAMPLE_PTS (stream, &stream->samples[stream->trickplay_info->next_kidx]) - + QTSAMPLE_PTS (stream, &stream->samples[stream->trickplay_info->prev_kidx])) / + nsamples; + + stream->trickplay_info->show_samples = nsamples / qtdemux->segment.rate; + + GST_DEBUG_OBJECT (qtdemux, "duration 2 between consecutive frames : %"GST_TIME_FORMAT, GST_TIME_ARGS(stream->trickplay_info->kidxs_dur_diff)); + + if(stream->trickplay_info->show_samples) { + GST_DEBUG_OBJECT (qtdemux, "samples to display between two key frames = %d", stream->trickplay_info->show_samples); + /* found no. of samples to show between key frames */ + *timestamp = QTSAMPLE_PTS (stream, &stream->samples[stream->sample_index]); + break; + } else if (!stream->trickplay_info->show_samples && + (stream->trickplay_info->next_kidx >= (stream->n_samples-1))) { + /* shown samples required to show between 2 key frames */ + GST_DEBUG_OBJECT (qtdemux, "reached end of keyframe interval....Jumping to next key index = %d", stream->trickplay_info->next_kidx); + if (stream->trickplay_info->next_kidx == stream->n_samples - 1) + stream->sample_index = stream->trickplay_info->next_kidx; + else + stream->sample_index = stream->trickplay_info->next_kidx -1; /* next_kidx -1 is because advance_sample will increment */ + stream->trickplay_info->next_kidx = 0; + stream->discont = TRUE; + break; + } + } + } + stream->discont = TRUE; + } else if (stream->trickplay_info->next_kidx != 0) { + GST_LOG_OBJECT (qtdemux, "next_kidx = %d and show_samples = %d", stream->trickplay_info->next_kidx, stream->trickplay_info->show_samples); + + stream->trickplay_info->show_samples--; + sample = &stream->samples[stream->trickplay_info->prev_kidx]; + *timestamp = QTSAMPLE_PTS (stream, sample) + + ((stream->sample_index -stream->trickplay_info->prev_kidx) * (abs (qtdemux->segment.rate)) * (stream->trickplay_info->kidxs_dur_diff)); + + if (stream->trickplay_info->show_samples == 0) { + /* shown samples required to show between 2 key frames */ + GST_DEBUG_OBJECT (qtdemux, "reached end of keyframe interval....Jumping to next key index = %d", stream->trickplay_info->next_kidx); + if (stream->trickplay_info->next_kidx == stream->n_samples - 1) + stream->sample_index = stream->trickplay_info->next_kidx; + else + stream->sample_index = stream->trickplay_info->next_kidx -1; /* next_kidx -1 is because advance_sample will increment */ + stream->trickplay_info->next_kidx = 0; + stream->discont = TRUE; + } + } +} + +static void +gst_qtdemux_backward_trickplay (GstQTDemux * qtdemux, QtDemuxStream * stream, guint64 *timestamp) +{ + if (stream->samples[stream->sample_index].keyframe) { + stream->sample_index = stream->to_sample; + GST_LOG_OBJECT (qtdemux, "Received key frame...Jump to end of the segment (idx = %d)...", stream->sample_index); + } +} + +/* searches next immediate key frame after index */ +static gint32 +gst_qtdemux_find_next_keyframe (GstQTDemux * qtdemux, QtDemuxStream * str, guint32 index) +{ + gint32 new_index = index; + + if (index > str->n_samples) { + GST_WARNING_OBJECT (qtdemux, "index is greater than n_samples..."); + new_index = str->n_samples - 1; + goto beach; + } + + /* all keyframes, return index */ + if (str->all_keyframe) { + new_index = index; + goto beach; + } + + /* else go back until we have a keyframe */ + while (TRUE) { + if (new_index == str->n_samples) { + GST_INFO_OBJECT (qtdemux, "Reached n_samples, taking last frame as reference..."); + new_index = str->n_samples - 1; + goto beach; + } + + if (str->samples[new_index].keyframe) { + GST_LOG ("Found keyframe..."); + break; + } + new_index++; + } + +beach: + GST_DEBUG_OBJECT (qtdemux, "searching for keyframe index before index %u " + "gave %d", index, new_index); + + return new_index; +} + +#endif + diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h index ac4b98f..dd60dcc 100644 --- a/gst/isomp4/qtdemux.h +++ b/gst/isomp4/qtdemux.h @@ -95,12 +95,12 @@ struct _GstQTDemux { GstBuffer *mdatbuffer; guint64 mdatleft; - /* offset of the media data (i.e.: Size of header) */ guint64 offset; /* offset of the mdat atom */ guint64 mdatoffset; guint64 first_mdat; gboolean got_moov; + guint header_size; GstTagList *tag_list; @@ -115,12 +115,17 @@ struct _GstQTDemux { gint64 requested_seek_time; guint64 seek_offset; + + gboolean upstream_seekable; + gboolean upstream_size; + #ifdef QTDEMUX_MODIFICATION - FILE* file; - FILE* ofile; - gchar* filename; - guint filesize; - guint maxbuffersize; + FILE* file; + FILE* ofile; + gchar* filename; + guint filesize; + guint maxbuffersize; + gboolean fwdtrick_mode; #endif }; diff --git a/gst/isomp4/qtdemux_fourcc.h b/gst/isomp4/qtdemux_fourcc.h index 29ad155..6666a94 100644 --- a/gst/isomp4/qtdemux_fourcc.h +++ b/gst/isomp4/qtdemux_fourcc.h @@ -189,6 +189,9 @@ G_BEGIN_DECLS #define FOURCC_albm GST_MAKE_FOURCC('a','l','b','m') #define FOURCC_yrrc GST_MAKE_FOURCC('y','r','r','c') +/* misc tag stuff */ +#define FOURCC_ID32 GST_MAKE_FOURCC('I', 'D','3','2') + /* ISO Motion JPEG 2000 fourcc */ #define FOURCC_mjp2 GST_MAKE_FOURCC('m','j','p','2') #define FOURCC_jp2h GST_MAKE_FOURCC('j','p','2','h') diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in index 31585dd..dff15f8 100644 --- a/gst/law/Makefile.in +++ b/gst/law/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstalaw_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgstalaw_la_OBJECTS = libgstalaw_la-alaw-encode.lo \ libgstalaw_la-alaw-decode.lo libgstalaw_la-alaw.lo libgstalaw_la_OBJECTS = $(am_libgstalaw_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstalaw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -136,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES) DIST_SOURCES = $(libgstalaw_la_SOURCES) $(libgstmulaw_la_SOURCES) @@ -233,7 +238,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -308,7 +316,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -332,6 +339,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -366,18 +374,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -430,6 +430,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -464,7 +465,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -562,9 +562,9 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstalaw.la: $(libgstalaw_la_OBJECTS) $(libgstalaw_la_DEPENDENCIES) +libgstalaw.la: $(libgstalaw_la_OBJECTS) $(libgstalaw_la_DEPENDENCIES) $(EXTRA_libgstalaw_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstalaw_la_LINK) -rpath $(plugindir) $(libgstalaw_la_OBJECTS) $(libgstalaw_la_LIBADD) $(LIBS) -libgstmulaw.la: $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_DEPENDENCIES) +libgstmulaw.la: $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_DEPENDENCIES) $(EXTRA_libgstmulaw_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmulaw_la_LINK) -rpath $(plugindir) $(libgstmulaw_la_OBJECTS) $(libgstmulaw_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -584,82 +584,72 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstalaw_la-alaw-encode.lo: alaw-encode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-encode.Tpo -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw-encode.Tpo $(DEPDIR)/libgstalaw_la-alaw-encode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alaw-encode.c' object='libgstalaw_la-alaw-encode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alaw-encode.c' object='libgstalaw_la-alaw-encode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-encode.lo `test -f 'alaw-encode.c' || echo '$(srcdir)/'`alaw-encode.c libgstalaw_la-alaw-decode.lo: alaw-decode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw-decode.Tpo -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw-decode.Tpo $(DEPDIR)/libgstalaw_la-alaw-decode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alaw-decode.c' object='libgstalaw_la-alaw-decode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alaw-decode.c' object='libgstalaw_la-alaw-decode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw-decode.lo `test -f 'alaw-decode.c' || echo '$(srcdir)/'`alaw-decode.c libgstalaw_la-alaw.lo: alaw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -MT libgstalaw_la-alaw.lo -MD -MP -MF $(DEPDIR)/libgstalaw_la-alaw.Tpo -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalaw_la-alaw.Tpo $(DEPDIR)/libgstalaw_la-alaw.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alaw.c' object='libgstalaw_la-alaw.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alaw.c' object='libgstalaw_la-alaw.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalaw_la_CFLAGS) $(CFLAGS) -c -o libgstalaw_la-alaw.lo `test -f 'alaw.c' || echo '$(srcdir)/'`alaw.c libgstmulaw_la-mulaw-encode.lo: mulaw-encode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-encode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-encode.Tpo -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-encode.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-encode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mulaw-encode.c' object='libgstmulaw_la-mulaw-encode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mulaw-encode.c' object='libgstmulaw_la-mulaw-encode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-encode.lo `test -f 'mulaw-encode.c' || echo '$(srcdir)/'`mulaw-encode.c libgstmulaw_la-mulaw-conversion.lo: mulaw-conversion.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-conversion.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Tpo -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-conversion.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mulaw-conversion.c' object='libgstmulaw_la-mulaw-conversion.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mulaw-conversion.c' object='libgstmulaw_la-mulaw-conversion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-conversion.lo `test -f 'mulaw-conversion.c' || echo '$(srcdir)/'`mulaw-conversion.c libgstmulaw_la-mulaw-decode.lo: mulaw-decode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw-decode.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw-decode.Tpo -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw-decode.Tpo $(DEPDIR)/libgstmulaw_la-mulaw-decode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mulaw-decode.c' object='libgstmulaw_la-mulaw-decode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mulaw-decode.c' object='libgstmulaw_la-mulaw-decode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw-decode.lo `test -f 'mulaw-decode.c' || echo '$(srcdir)/'`mulaw-decode.c libgstmulaw_la-mulaw.lo: mulaw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -MT libgstmulaw_la-mulaw.lo -MD -MP -MF $(DEPDIR)/libgstmulaw_la-mulaw.Tpo -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmulaw_la-mulaw.Tpo $(DEPDIR)/libgstmulaw_la-mulaw.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mulaw.c' object='libgstmulaw_la-mulaw.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mulaw.c' object='libgstmulaw_la-mulaw.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmulaw_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmulaw_la_CFLAGS) $(CFLAGS) -c -o libgstmulaw_la-mulaw.lo `test -f 'mulaw.c' || echo '$(srcdir)/'`mulaw.c mostlyclean-libtool: -rm -f *.lo @@ -766,10 +756,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/law/alaw-decode.c b/gst/law/alaw-decode.c index ee5367a..2fa6a5d 100644 --- a/gst/law/alaw-decode.c +++ b/gst/law/alaw-decode.c @@ -212,10 +212,10 @@ gst_alaw_dec_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&alaw_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&alaw_dec_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &alaw_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &alaw_dec_sink_factory); gst_element_class_set_details_simple (element_class, "A Law audio decoder", "Codec/Decoder/Audio", "Convert 8bit A law to 16bit PCM", diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c index f5514ce..b12c23e 100644 --- a/gst/law/alaw-encode.c +++ b/gst/law/alaw-encode.c @@ -400,10 +400,10 @@ gst_alaw_enc_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&alaw_enc_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&alaw_enc_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &alaw_enc_src_factory); + gst_element_class_add_static_pad_template (element_class, + &alaw_enc_sink_factory); gst_element_class_set_details_simple (element_class, "A Law audio encoder", "Codec/Encoder/Audio", diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c index 40347ab..b8a0d65 100644 --- a/gst/law/mulaw-decode.c +++ b/gst/law/mulaw-decode.c @@ -179,10 +179,10 @@ gst_mulawdec_base_init (GstMuLawDecClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_dec_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_dec_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &mulaw_dec_src_factory); + gst_element_class_add_static_pad_template (element_class, + &mulaw_dec_sink_factory); gst_element_class_set_details_simple (element_class, "Mu Law audio decoder", "Codec/Decoder/Audio", "Convert 8bit mu law to 16bit PCM", diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c index 0ab1a1e..15f8285 100644 --- a/gst/law/mulaw-encode.c +++ b/gst/law/mulaw-encode.c @@ -179,10 +179,10 @@ gst_mulawenc_base_init (GstMuLawEncClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_enc_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&mulaw_enc_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &mulaw_enc_src_factory); + gst_element_class_add_static_pad_template (element_class, + &mulaw_enc_sink_factory); gst_element_class_set_details_simple (element_class, "Mu Law audio encoder", "Codec/Encoder/Audio", "Convert 16bit PCM to 8bit mu law", diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in index 7282623..691dec8 100644 --- a/gst/level/Makefile.in +++ b/gst/level/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstlevel_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstlevel_la_OBJECTS = libgstlevel_la-gstlevel.lo libgstlevel_la_OBJECTS = $(am_libgstlevel_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstlevel_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstlevel_la_SOURCES) DIST_SOURCES = $(libgstlevel_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +548,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstlevel.la: $(libgstlevel_la_OBJECTS) $(libgstlevel_la_DEPENDENCIES) +libgstlevel.la: $(libgstlevel_la_OBJECTS) $(libgstlevel_la_DEPENDENCIES) $(EXTRA_libgstlevel_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstlevel_la_LINK) -rpath $(plugindir) $(libgstlevel_la_OBJECTS) $(libgstlevel_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +562,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstlevel_la-gstlevel.lo: gstlevel.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -MT libgstlevel_la-gstlevel.lo -MD -MP -MF $(DEPDIR)/libgstlevel_la-gstlevel.Tpo -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlevel_la-gstlevel.Tpo $(DEPDIR)/libgstlevel_la-gstlevel.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlevel.c' object='libgstlevel_la-gstlevel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstlevel.c' object='libgstlevel_la-gstlevel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlevel_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlevel_la_CFLAGS) $(CFLAGS) -c -o libgstlevel_la-gstlevel.lo `test -f 'gstlevel.c' || echo '$(srcdir)/'`gstlevel.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +692,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c index 2563eb5..6d89a68 100644 --- a/gst/level/gstlevel.c +++ b/gst/level/gstlevel.c @@ -180,10 +180,10 @@ gst_level_base_init (gpointer g_class) { GstElementClass *element_class = g_class; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &src_template_factory); gst_element_class_set_details_simple (element_class, "Level", "Filter/Analyzer/Audio", "RMS/Peak/Decaying Peak Level messager for audio/raw", diff --git a/gst/matroska/Makefile.am b/gst/matroska/Makefile.am index 195c680..7d56973 100644 --- a/gst/matroska/Makefile.am +++ b/gst/matroska/Makefile.am @@ -8,6 +8,7 @@ libgstmatroska_la_SOURCES = \ matroska-parse.c \ matroska-ids.c \ matroska-mux.c \ + matroska-read-common.c \ webm-mux.c \ lzo.c @@ -19,6 +20,7 @@ noinst_HEADERS = \ matroska-parse.h \ matroska-ids.h \ matroska-mux.h \ + matroska-read-common.h \ webm-mux.h \ lzo.h diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in index 161d9c0..d21f919 100644 --- a/gst/matroska/Makefile.in +++ b/gst/matroska/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,10 +121,11 @@ am_libgstmatroska_la_OBJECTS = libgstmatroska_la-ebml-read.lo \ libgstmatroska_la-matroska-parse.lo \ libgstmatroska_la-matroska-ids.lo \ libgstmatroska_la-matroska-mux.lo \ + libgstmatroska_la-matroska-read-common.lo \ libgstmatroska_la-webm-mux.lo libgstmatroska_la-lzo.lo libgstmatroska_la_OBJECTS = $(am_libgstmatroska_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmatroska_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -135,21 +141,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmatroska_la_SOURCES) DIST_SOURCES = $(libgstmatroska_la_SOURCES) @@ -232,7 +238,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -307,7 +316,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -331,6 +339,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -365,18 +374,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -429,6 +430,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -463,7 +465,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -493,6 +494,7 @@ libgstmatroska_la_SOURCES = \ matroska-parse.c \ matroska-ids.c \ matroska-mux.c \ + matroska-read-common.c \ webm-mux.c \ lzo.c @@ -504,6 +506,7 @@ noinst_HEADERS = \ matroska-parse.h \ matroska-ids.h \ matroska-mux.h \ + matroska-read-common.h \ webm-mux.h \ lzo.h @@ -591,7 +594,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmatroska.la: $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_DEPENDENCIES) +libgstmatroska.la: $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_DEPENDENCIES) $(EXTRA_libgstmatroska_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmatroska_la_LINK) -rpath $(plugindir) $(libgstmatroska_la_OBJECTS) $(libgstmatroska_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -607,104 +610,100 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-matroska-ids.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-matroska-mux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-matroska-parse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-matroska-read-common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-matroska.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmatroska_la-webm-mux.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmatroska_la-ebml-read.lo: ebml-read.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-read.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-read.Tpo -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-ebml-read.Tpo $(DEPDIR)/libgstmatroska_la-ebml-read.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ebml-read.c' object='libgstmatroska_la-ebml-read.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ebml-read.c' object='libgstmatroska_la-ebml-read.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-read.lo `test -f 'ebml-read.c' || echo '$(srcdir)/'`ebml-read.c libgstmatroska_la-ebml-write.lo: ebml-write.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-ebml-write.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-ebml-write.Tpo -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-ebml-write.Tpo $(DEPDIR)/libgstmatroska_la-ebml-write.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ebml-write.c' object='libgstmatroska_la-ebml-write.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ebml-write.c' object='libgstmatroska_la-ebml-write.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-ebml-write.lo `test -f 'ebml-write.c' || echo '$(srcdir)/'`ebml-write.c libgstmatroska_la-matroska.lo: matroska.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska.Tpo -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska.Tpo $(DEPDIR)/libgstmatroska_la-matroska.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matroska.c' object='libgstmatroska_la-matroska.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska.c' object='libgstmatroska_la-matroska.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska.lo `test -f 'matroska.c' || echo '$(srcdir)/'`matroska.c libgstmatroska_la-matroska-demux.lo: matroska-demux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-demux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-demux.Tpo -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-demux.Tpo $(DEPDIR)/libgstmatroska_la-matroska-demux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matroska-demux.c' object='libgstmatroska_la-matroska-demux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska-demux.c' object='libgstmatroska_la-matroska-demux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-demux.lo `test -f 'matroska-demux.c' || echo '$(srcdir)/'`matroska-demux.c libgstmatroska_la-matroska-parse.lo: matroska-parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-parse.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-parse.Tpo -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-parse.Tpo $(DEPDIR)/libgstmatroska_la-matroska-parse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matroska-parse.c' object='libgstmatroska_la-matroska-parse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska-parse.c' object='libgstmatroska_la-matroska-parse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-parse.lo `test -f 'matroska-parse.c' || echo '$(srcdir)/'`matroska-parse.c libgstmatroska_la-matroska-ids.lo: matroska-ids.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-ids.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-ids.Tpo -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-ids.Tpo $(DEPDIR)/libgstmatroska_la-matroska-ids.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matroska-ids.c' object='libgstmatroska_la-matroska-ids.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska-ids.c' object='libgstmatroska_la-matroska-ids.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-ids.lo `test -f 'matroska-ids.c' || echo '$(srcdir)/'`matroska-ids.c libgstmatroska_la-matroska-mux.lo: matroska-mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-mux.Tpo -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-mux.Tpo $(DEPDIR)/libgstmatroska_la-matroska-mux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matroska-mux.c' object='libgstmatroska_la-matroska-mux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska-mux.c' object='libgstmatroska_la-matroska-mux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-mux.lo `test -f 'matroska-mux.c' || echo '$(srcdir)/'`matroska-mux.c + +libgstmatroska_la-matroska-read-common.lo: matroska-read-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-matroska-read-common.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-matroska-read-common.Tpo -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-matroska-read-common.Tpo $(DEPDIR)/libgstmatroska_la-matroska-read-common.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='matroska-read-common.c' object='libgstmatroska_la-matroska-read-common.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-matroska-read-common.lo `test -f 'matroska-read-common.c' || echo '$(srcdir)/'`matroska-read-common.c libgstmatroska_la-webm-mux.lo: webm-mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-webm-mux.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-webm-mux.Tpo -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-webm-mux.Tpo $(DEPDIR)/libgstmatroska_la-webm-mux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='webm-mux.c' object='libgstmatroska_la-webm-mux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='webm-mux.c' object='libgstmatroska_la-webm-mux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-webm-mux.lo `test -f 'webm-mux.c' || echo '$(srcdir)/'`webm-mux.c libgstmatroska_la-lzo.lo: lzo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -MT libgstmatroska_la-lzo.lo -MD -MP -MF $(DEPDIR)/libgstmatroska_la-lzo.Tpo -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmatroska_la-lzo.Tpo $(DEPDIR)/libgstmatroska_la-lzo.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lzo.c' object='libgstmatroska_la-lzo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzo.c' object='libgstmatroska_la-lzo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmatroska_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmatroska_la_CFLAGS) $(CFLAGS) -c -o libgstmatroska_la-lzo.lo `test -f 'lzo.c' || echo '$(srcdir)/'`lzo.c mostlyclean-libtool: -rm -f *.lo @@ -811,10 +810,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c index eb38433..f6bf134 100644 --- a/gst/matroska/ebml-read.c +++ b/gst/matroska/ebml-read.c @@ -60,6 +60,7 @@ gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, guint * _needed, gint len_mask = 0x80, read = 1, n = 1, num_ffs = 0; guint64 total; guint8 b; + GstFlowReturn ret; g_return_val_if_fail (_id != NULL, GST_FLOW_ERROR); g_return_val_if_fail (_length != NULL, GST_FLOW_ERROR); @@ -71,10 +72,9 @@ gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, guint * _needed, /* read element id */ needed = 2; - buf = peek (ctx, needed); - if (!buf) - goto not_enough_data; - + ret = peek (ctx, needed, &buf); + if (ret != GST_FLOW_OK) + goto peek_error; b = GST_READ_UINT8 (buf); total = (guint64) b; while (read <= 4 && !(total & len_mask)) { @@ -86,10 +86,9 @@ gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, guint * _needed, /* need id and at least something for subsequent length */ needed = read + 1; - buf = peek (ctx, needed); - if (!buf) - goto not_enough_data; - + ret = peek (ctx, needed, &buf); + if (ret != GST_FLOW_OK) + goto peek_error; while (n < read) { b = GST_READ_UINT8 (buf + n); total = (total << 8) | b; @@ -112,10 +111,9 @@ gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, guint * _needed, num_ffs++; needed += read - 1; - buf = peek (ctx, needed); - if (!buf) - goto not_enough_data; - + ret = peek (ctx, needed, &buf); + if (ret != GST_FLOW_OK) + goto peek_error; buf += (needed - read); n = 1; while (n < read) { @@ -131,17 +129,17 @@ gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, guint * _needed, *_length = G_MAXUINT64; else *_length = total; - *_length = total; *_needed = needed; return GST_FLOW_OK; /* ERRORS */ -not_enough_data: +peek_error: { + GST_WARNING_OBJECT (el, "peek failed, ret = %d", ret); *_needed = needed; - return GST_FLOW_UNEXPECTED; + return ret; } invalid_id: { @@ -191,15 +189,13 @@ gst_ebml_read_clear (GstEbmlRead * ebml) ebml->el = NULL; } -static const guint8 * -gst_ebml_read_peek (GstByteReader * br, guint peek) +static GstFlowReturn +gst_ebml_read_peek (GstByteReader * br, guint peek, const guint8 ** data) { - const guint8 *data = NULL; - - if (G_LIKELY (gst_byte_reader_peek_data (br, peek, &data))) - return data; + if (G_LIKELY (gst_byte_reader_peek_data (br, peek, data))) + return GST_FLOW_OK; else - return NULL; + return GST_FLOW_UNEXPECTED; } static GstFlowReturn @@ -244,7 +240,6 @@ gst_ebml_peek_id (GstEbmlRead * ebml, guint32 * id) return gst_ebml_peek_id_full (ebml, id, &length, &needed); } - /* * Read the next element, the contents are supposed to be sub-elements which * can be read separately. A new bytereader is setup for doing so. @@ -674,7 +669,3 @@ gst_ebml_read_binary (GstEbmlRead * ebml, return GST_FLOW_OK; } - - - - diff --git a/gst/matroska/ebml-read.h b/gst/matroska/ebml-read.h index 5a2cc6c..9db38f5 100644 --- a/gst/matroska/ebml-read.h +++ b/gst/matroska/ebml-read.h @@ -52,14 +52,14 @@ typedef struct _GstEbmlMaster { typedef struct _GstEbmlRead { GstElement *el; - GstPad *sinkpad; + GstBuffer *buf; guint64 offset; GArray *readers; } GstEbmlRead; -typedef const guint8 * (*GstPeekData) (gpointer * context, guint peek); +typedef GstFlowReturn (*GstPeekData) (gpointer * context, guint peek, const guint8 ** data); /* returns UNEXPECTED if not enough data */ GstFlowReturn gst_ebml_peek_id_length (guint32 * _id, guint64 * _length, @@ -75,11 +75,6 @@ void gst_ebml_read_clear (GstEbmlRead * ebml); GstFlowReturn gst_ebml_peek_id (GstEbmlRead * ebml, guint32 * id); -GstFlowReturn gst_ebml_read_seek (GstEbmlRead *ebml, - guint64 offset); - -gint64 gst_ebml_read_get_length (GstEbmlRead *ebml); - /* return _PARSE if not enough data to read what is needed, _ERROR or _OK */ GstFlowReturn gst_ebml_read_skip (GstEbmlRead *ebml); diff --git a/gst/matroska/ebml-write.c b/gst/matroska/ebml-write.c index b660987..06f3568 100644 --- a/gst/matroska/ebml-write.c +++ b/gst/matroska/ebml-write.c @@ -25,7 +25,6 @@ #endif #include -#include #include "ebml-write.h" #include "ebml-ids.h" @@ -280,7 +279,7 @@ gst_ebml_write_flush_cache (GstEbmlWrite * ebml, gboolean is_keyframe, * Returns: A new #GstBuffer. */ static GstBuffer * -gst_ebml_write_element_new (GstEbmlWrite * ebml, guint size) +gst_ebml_write_element_new (GstEbmlWrite * ebml, guint8 ** data_out, guint size) { /* Create new buffer of size + ID + length */ GstBuffer *buf; @@ -289,24 +288,25 @@ gst_ebml_write_element_new (GstEbmlWrite * ebml, guint size) size += 12; buf = gst_buffer_new_and_alloc (size); - GST_BUFFER_SIZE (buf) = 0; GST_BUFFER_TIMESTAMP (buf) = ebml->timestamp; + *data_out = GST_BUFFER_DATA (buf); + return buf; } /** * gst_ebml_write_element_id: - * @buf: Buffer to which id should be written. + * @data_inout: Pointer to data pointer * @id: Element ID that should be written. * * Write element ID into a buffer. */ static void -gst_ebml_write_element_id (GstBuffer * buf, guint32 id) +gst_ebml_write_element_id (guint8 ** data_inout, guint32 id) { - guint8 *data = GST_BUFFER_DATA (buf) + GST_BUFFER_SIZE (buf); + guint8 *data = *data_inout; guint bytes = 4, mask = 0x10; /* get ID length */ @@ -323,7 +323,7 @@ gst_ebml_write_element_id (GstBuffer * buf, guint32 id) } /* write out, BE */ - GST_BUFFER_SIZE (buf) += bytes; + *data_inout += bytes; while (bytes--) { data[bytes] = id & 0xff; id >>= 8; @@ -333,15 +333,15 @@ gst_ebml_write_element_id (GstBuffer * buf, guint32 id) /** * gst_ebml_write_element_size: - * @buf: #GstBuffer to which size should be written. + * @data_inout: Pointer to data pointer * @size: Element length. - * + * * Write element length into a buffer. */ static void -gst_ebml_write_element_size (GstBuffer * buf, guint64 size) +gst_ebml_write_element_size (guint8 ** data_inout, guint64 size) { - guint8 *data = GST_BUFFER_DATA (buf) + GST_BUFFER_SIZE (buf); + guint8 *data = *data_inout; guint bytes = 1, mask = 0x80; if (size != GST_EBML_SIZE_UNKNOWN) { @@ -365,7 +365,7 @@ gst_ebml_write_element_size (GstBuffer * buf, guint64 size) } /* write out, BE, with length size marker */ - GST_BUFFER_SIZE (buf) += bytes; + *data_inout += bytes; while (bytes-- > 0) { data[bytes] = size & 0xff; size >>= 8; @@ -377,19 +377,18 @@ gst_ebml_write_element_size (GstBuffer * buf, guint64 size) /** * gst_ebml_write_element_data: - * @buf: #GstBuffer to which data should be written. + * @data_inout: Pointer to data pointer * @write: Data that should be written. * @length: Length of the data. * * Write element data into a buffer. */ static void -gst_ebml_write_element_data (GstBuffer * buf, guint8 * write, guint64 length) +gst_ebml_write_element_data (guint8 ** data_inout, guint8 * write, + guint64 length) { - guint8 *data = GST_BUFFER_DATA (buf) + GST_BUFFER_SIZE (buf); - - memcpy (data, write, length); - GST_BUFFER_SIZE (buf) += length; + memcpy (*data_inout, write, length); + *data_inout += length; } @@ -397,23 +396,36 @@ gst_ebml_write_element_data (GstBuffer * buf, guint8 * write, guint64 length) * gst_ebml_write_element_push: * @ebml: #GstEbmlWrite * @buf: #GstBuffer to be written. + * @buf_data: Start of data to push from @buf (or NULL for whole buffer). + * @buf_data_end: Data pointer positioned after the last byte in @buf_data (or + * NULL for whole buffer). * * Write out buffer by moving it to the next element. */ static void -gst_ebml_write_element_push (GstEbmlWrite * ebml, GstBuffer * buf) +gst_ebml_write_element_push (GstEbmlWrite * ebml, GstBuffer * buf, + guint8 * buf_data, guint8 * buf_data_end) { - guint data_size = GST_BUFFER_SIZE (buf); + guint data_size; + + if (!buf_data) + buf_data = GST_BUFFER_DATA (buf); + + if (buf_data_end) { + data_size = buf_data_end - buf_data; + GST_BUFFER_SIZE (buf) = data_size; + } else { + data_size = GST_BUFFER_SIZE (buf); + } ebml->pos += data_size; /* if there's no cache, then don't push it! */ if (ebml->writing_streamheader) { - gst_byte_writer_put_data (ebml->streamheader, GST_BUFFER_DATA (buf), - data_size); + gst_byte_writer_put_data (ebml->streamheader, buf_data, data_size); } if (ebml->cache) { - gst_byte_writer_put_data (ebml->cache, GST_BUFFER_DATA (buf), data_size); + gst_byte_writer_put_data (ebml->cache, buf_data, data_size); gst_buffer_unref (buf); return; } @@ -421,7 +433,7 @@ gst_ebml_write_element_push (GstEbmlWrite * ebml, GstBuffer * buf) if (ebml->last_write_result == GST_FLOW_OK) { buf = gst_buffer_make_metadata_writable (buf); gst_buffer_set_caps (buf, ebml->caps); - GST_BUFFER_OFFSET (buf) = ebml->pos - GST_BUFFER_SIZE (buf); + GST_BUFFER_OFFSET (buf) = ebml->pos - data_size; GST_BUFFER_OFFSET_END (buf) = ebml->pos; if (ebml->writing_streamheader) { GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); @@ -508,19 +520,19 @@ gst_ebml_write_get_uint_size (guint64 num) /** * gst_ebml_write_set_uint: - * @buf: #GstBuffer to which ithe number should be written. + * @data_inout: Pointer to data pointer * @num: Number to be written. * @size: Encoded number length. * * Write an uint into a buffer. */ static void -gst_ebml_write_set_uint (GstBuffer * buf, guint64 num, guint size) +gst_ebml_write_set_uint (guint8 ** data_inout, guint64 num, guint size) { - guint8 *data; + guint8 *data = *data_inout; + + *data_inout += size; - data = GST_BUFFER_DATA (buf) + GST_BUFFER_SIZE (buf); - GST_BUFFER_SIZE (buf) += size; while (size-- > 0) { data[size] = num & 0xff; num >>= 8; @@ -539,14 +551,18 @@ gst_ebml_write_set_uint (GstBuffer * buf, guint64 num, guint size) void gst_ebml_write_uint (GstEbmlWrite * ebml, guint32 id, guint64 num) { - GstBuffer *buf = gst_ebml_write_element_new (ebml, sizeof (num)); + GstBuffer *buf; + guint8 *data_start, *data_end; guint size = gst_ebml_write_get_uint_size (num); + buf = gst_ebml_write_element_new (ebml, &data_start, sizeof (num)); + data_end = data_start; + /* write */ - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, size); - gst_ebml_write_set_uint (buf, num, size); - gst_ebml_write_element_push (ebml, buf); + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, size); + gst_ebml_write_set_uint (&data_end, num, size); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } @@ -561,8 +577,8 @@ gst_ebml_write_uint (GstEbmlWrite * ebml, guint32 id, guint64 num) void gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num) { - GstBuffer *buf = gst_ebml_write_element_new (ebml, sizeof (num)); - + GstBuffer *buf; + guint8 *data_start, *data_end; /* if the signed number is on the edge of a extra-byte, * then we'll fall over when detecting it. Example: if I * have a number (-)0x8000 (G_MINSHORT), then my abs()<<1 @@ -570,6 +586,9 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num) guint64 unum = (num < 0 ? (-num - 1) << 1 : num << 1); guint size = gst_ebml_write_get_uint_size (unum); + buf = gst_ebml_write_element_new (ebml, &data_start, sizeof (num)); + data_end = data_start; + /* make unsigned */ if (num >= 0) { unum = num; @@ -580,10 +599,10 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num) } /* write */ - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, size); - gst_ebml_write_set_uint (buf, unum, size); - gst_ebml_write_element_push (ebml, buf); + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, size); + gst_ebml_write_set_uint (&data_end, unum, size); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } @@ -598,13 +617,17 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num) void gst_ebml_write_float (GstEbmlWrite * ebml, guint32 id, gdouble num) { - GstBuffer *buf = gst_ebml_write_element_new (ebml, sizeof (num)); + GstBuffer *buf; + guint8 *data_start, *data_end; - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, 8); + buf = gst_ebml_write_element_new (ebml, &data_start, sizeof (num)); + data_end = data_start; + + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, 8); num = GDOUBLE_TO_BE (num); - gst_ebml_write_element_data (buf, (guint8 *) & num, 8); - gst_ebml_write_element_push (ebml, buf); + gst_ebml_write_element_data (&data_end, (guint8 *) & num, 8); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } @@ -620,12 +643,16 @@ void gst_ebml_write_ascii (GstEbmlWrite * ebml, guint32 id, const gchar * str) { gint len = strlen (str) + 1; /* add trailing '\0' */ - GstBuffer *buf = gst_ebml_write_element_new (ebml, len); + GstBuffer *buf; + guint8 *data_start, *data_end; - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, len); - gst_ebml_write_element_data (buf, (guint8 *) str, len); - gst_ebml_write_element_push (ebml, buf); + buf = gst_ebml_write_element_new (ebml, &data_start, len); + data_end = data_start; + + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, len); + gst_ebml_write_element_data (&data_end, (guint8 *) str, len); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } @@ -674,14 +701,17 @@ gst_ebml_write_date (GstEbmlWrite * ebml, guint32 id, gint64 date) guint64 gst_ebml_write_master_start (GstEbmlWrite * ebml, guint32 id) { - guint64 pos = ebml->pos, t; - GstBuffer *buf = gst_ebml_write_element_new (ebml, 0); + guint64 pos = ebml->pos; + GstBuffer *buf; + guint8 *data_start, *data_end; + + buf = gst_ebml_write_element_new (ebml, &data_start, 0); + data_end = data_start; - t = GST_BUFFER_SIZE (buf); - gst_ebml_write_element_id (buf, id); - pos += GST_BUFFER_SIZE (buf) - t; - gst_ebml_write_element_size (buf, GST_EBML_SIZE_UNKNOWN); - gst_ebml_write_element_push (ebml, buf); + gst_ebml_write_element_id (&data_end, id); + pos += data_end - data_start; + gst_ebml_write_element_size (&data_end, GST_EBML_SIZE_UNKNOWN); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); return pos; } @@ -703,10 +733,12 @@ gst_ebml_write_master_finish_full (GstEbmlWrite * ebml, guint64 startpos, GstBuffer *buf; gst_ebml_write_seek (ebml, startpos); + buf = gst_buffer_new_and_alloc (8); GST_WRITE_UINT64_BE (GST_BUFFER_DATA (buf), (G_GINT64_CONSTANT (1) << 56) | (pos - startpos - 8 + extra_size)); - gst_ebml_write_element_push (ebml, buf); + + gst_ebml_write_element_push (ebml, buf, NULL, NULL); gst_ebml_write_seek (ebml, pos); } @@ -729,12 +761,16 @@ void gst_ebml_write_binary (GstEbmlWrite * ebml, guint32 id, guint8 * binary, guint64 length) { - GstBuffer *buf = gst_ebml_write_element_new (ebml, length); + GstBuffer *buf; + guint8 *data_start, *data_end; - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, length); - gst_ebml_write_element_data (buf, binary, length); - gst_ebml_write_element_push (ebml, buf); + buf = gst_ebml_write_element_new (ebml, &data_start, length); + data_end = data_start; + + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, length); + gst_ebml_write_element_data (&data_end, binary, length); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } @@ -754,25 +790,29 @@ gst_ebml_write_binary (GstEbmlWrite * ebml, void gst_ebml_write_buffer_header (GstEbmlWrite * ebml, guint32 id, guint64 length) { - GstBuffer *buf = gst_ebml_write_element_new (ebml, 0); + GstBuffer *buf; + guint8 *data_start, *data_end; - gst_ebml_write_element_id (buf, id); - gst_ebml_write_element_size (buf, length); - gst_ebml_write_element_push (ebml, buf); + buf = gst_ebml_write_element_new (ebml, &data_start, 0); + data_end = data_start; + + gst_ebml_write_element_id (&data_end, id); + gst_ebml_write_element_size (&data_end, length); + gst_ebml_write_element_push (ebml, buf, data_start, data_end); } /** * gst_ebml_write_buffer: * @ebml: #GstEbmlWrite - * @data: #GstBuffer cointaining the data. + * @buf: #GstBuffer cointaining the data. * * Write binary element (see gst_ebml_write_buffer_header). */ void -gst_ebml_write_buffer (GstEbmlWrite * ebml, GstBuffer * data) +gst_ebml_write_buffer (GstEbmlWrite * ebml, GstBuffer * buf) { - gst_ebml_write_element_push (ebml, data); + gst_ebml_write_element_push (ebml, buf, NULL, NULL); } @@ -796,11 +836,15 @@ gst_ebml_replace_uint (GstEbmlWrite * ebml, guint64 pos, guint64 num) { guint64 oldpos = ebml->pos; GstBuffer *buf = gst_buffer_new_and_alloc (8); + guint8 *data_start, *data_end; + + data_start = GST_BUFFER_DATA (buf); + data_end = data_start; gst_ebml_write_seek (ebml, pos); - GST_BUFFER_SIZE (buf) = 0; - gst_ebml_write_set_uint (buf, num, 8); - gst_ebml_write_element_push (ebml, buf); + gst_ebml_write_set_uint (&data_end, num, 8); + + gst_ebml_write_element_push (ebml, buf, data_start, data_end); gst_ebml_write_seek (ebml, oldpos); } diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 06ca9c2..337640f 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -2,6 +2,7 @@ * (c) 2003 Ronald Bultje * (c) 2006 Tim-Philipp Müller * (c) 2008 Sebastian Dröge + * (c) 2011 Debarshi Ray * * matroska-demux.c: matroska file/stream demuxer * @@ -48,6 +49,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include #include @@ -60,20 +65,8 @@ #include -#include - -#ifdef HAVE_ZLIB -#include -#endif - -#ifdef HAVE_BZ2 -#include -#endif - #include -#include "lzo.h" - #include "matroska-demux.h" #include "matroska-ids.h" @@ -92,9 +85,12 @@ enum { ARG_0, ARG_METADATA, - ARG_STREAMINFO + ARG_STREAMINFO, + ARG_MAX_GAP_TIME }; +#define DEFAULT_MAX_GAP_TIME (2 * GST_SECOND) + static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, @@ -121,8 +117,8 @@ static GstStaticPadTemplate subtitle_src_templ = GST_STATIC_PAD_TEMPLATE ("subtitle_%02d", GST_PAD_SRC, GST_PAD_SOMETIMES, - GST_STATIC_CAPS ("text/plain; application/x-ssa; application/x-ass; " - "application/x-usf; video/x-dvd-subpicture; " + GST_STATIC_CAPS ("text/x-pango-markup; application/x-ssa; " + "application/x-ass;application/x-usf; video/x-dvd-subpicture; " "subpicture/x-pgs; subtitle/x-kate; " "application/x-subtitle-unknown") ); @@ -179,12 +175,20 @@ static void gst_matroska_demux_reset (GstElement * element); static gboolean perform_seek_to_offset (GstMatroskaDemux * demux, guint64 offset); -#ifdef MKVDEMUX_MODIFICATION -static GstFlowReturn gst_sec_matroska_demux_find_tracks (GstMatroskaDemux * demux); -static GstFlowReturn gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, guint64 length, guint needed); -static GstFlowReturn gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GstEbmlRead * ebml, guint64 cluster_time, guint64 cluster_offset, gboolean is_simpleblock); -static gint32 gst_sec_matroska_nframes2show_bw_keyframes (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream); -static GstFlowReturn gst_sec_matroska_forward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer *buffer, gboolean *skip); +/* gobject functions */ +static void gst_matroska_demux_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_matroska_demux_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +#ifdef MKV_DEMUX_MODIFICATION +static GstMatroskaIndex *gst_matroska_demux_get_next_index (GstMatroskaDemux * demux, GstMatroskaTrackContext * track, GstMatroskaIndex *entry); +static GstFlowReturn gst_matroska_demux_trickplay_find_tracks (GstMatroskaDemux * demux); +static GstFlowReturn gst_matroska_demux_trickplay_parse_id (GstMatroskaDemux * demux, guint32 id, guint64 length, guint needed); +static GstFlowReturn gst_matroska_demux_trickplay_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GstEbmlRead * ebml, guint64 cluster_time, guint64 cluster_offset, gboolean is_simpleblock); +static gint32 gst_matroska_demux_trickplay_nframes2show_bw_keyframes (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream); +static GstFlowReturn gst_matroska_demux_backward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer* sub); +static GstFlowReturn gst_matroska_demux_forward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer *buffer, gboolean *skip); #endif GType gst_matroska_demux_get_type (void); @@ -196,14 +200,11 @@ gst_matroska_demux_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&video_src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&audio_src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&subtitle_src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_templ)); + gst_element_class_add_static_pad_template (element_class, &video_src_templ); + gst_element_class_add_static_pad_template (element_class, &audio_src_templ); + gst_element_class_add_static_pad_template (element_class, + &subtitle_src_templ); + gst_element_class_add_static_pad_template (element_class, &sink_templ); gst_element_class_set_details_simple (element_class, "Matroska demuxer", "Codec/Demuxer", @@ -216,17 +217,17 @@ gst_matroska_demux_finalize (GObject * object) { GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (object); - if (demux->src) { - g_ptr_array_free (demux->src, TRUE); - demux->src = NULL; + if (demux->common.src) { + g_ptr_array_free (demux->common.src, TRUE); + demux->common.src = NULL; } - if (demux->global_tags) { - gst_tag_list_free (demux->global_tags); - demux->global_tags = NULL; + if (demux->common.global_tags) { + gst_tag_list_free (demux->common.global_tags); + demux->common.global_tags = NULL; } - g_object_unref (demux->adapter); + g_object_unref (demux->common.adapter); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -237,15 +238,20 @@ gst_matroska_demux_class_init (GstMatroskaDemuxClass * klass) GObjectClass *gobject_class = (GObjectClass *) klass; GstElementClass *gstelement_class = (GstElementClass *) klass; - /* parser helper separate debug */ - GST_DEBUG_CATEGORY_INIT (ebmlread_debug, "ebmlread", - 0, "EBML stream helper class"); - GST_DEBUG_CATEGORY_INIT (matroskademux_debug, "matroskademux", 0, "Matroska demuxer"); gobject_class->finalize = gst_matroska_demux_finalize; + gobject_class->get_property = gst_matroska_demux_get_property; + gobject_class->set_property = gst_matroska_demux_set_property; + + g_object_class_install_property (gobject_class, ARG_MAX_GAP_TIME, + g_param_spec_uint64 ("max-gap-time", "Maximum gap time", + "The demuxer sends out newsegment events for skipping " + "gaps longer than this (0 = disabled).", 0, G_MAXUINT64, + DEFAULT_MAX_GAP_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_matroska_demux_change_state); gstelement_class->send_event = @@ -263,32 +269,39 @@ static void gst_matroska_demux_init (GstMatroskaDemux * demux, GstMatroskaDemuxClass * klass) { - demux->sinkpad = gst_pad_new_from_static_template (&sink_templ, "sink"); - gst_pad_set_activate_function (demux->sinkpad, + demux->common.sinkpad = gst_pad_new_from_static_template (&sink_templ, + "sink"); + gst_pad_set_activate_function (demux->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_demux_sink_activate)); - gst_pad_set_activatepull_function (demux->sinkpad, + gst_pad_set_activatepull_function (demux->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_demux_sink_activate_pull)); - gst_pad_set_chain_function (demux->sinkpad, + gst_pad_set_chain_function (demux->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_demux_chain)); - gst_pad_set_event_function (demux->sinkpad, + gst_pad_set_event_function (demux->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_sink_event)); - gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad); + gst_element_add_pad (GST_ELEMENT (demux), demux->common.sinkpad); /* initial stream no. */ - demux->src = NULL; + demux->common.src = NULL; - demux->writing_app = NULL; - demux->muxing_app = NULL; - demux->index = NULL; - demux->global_tags = NULL; + demux->common.writing_app = NULL; + demux->common.muxing_app = NULL; + demux->common.index = NULL; + demux->common.global_tags = NULL; - demux->adapter = gst_adapter_new (); + demux->common.adapter = gst_adapter_new (); -#ifdef MKVDEMUX_MODIFICATION +#ifdef MKV_DEMUX_MODIFICATION demux->found_videokeyframe = FALSE; demux->found_audioframe = FALSE; + demux->is_eos_blockgroup = FALSE; + demux->is_eos_simpleblock = FALSE; + demux->video_keyframe_pushed = FALSE; #endif + /* property defaults */ + demux->max_gap_time = DEFAULT_MAX_GAP_TIME; + /* finish off */ gst_matroska_demux_reset (GST_ELEMENT (demux)); } @@ -303,11 +316,11 @@ gst_matroska_track_free (GstMatroskaTrackContext * track) g_free (track->codec_priv); g_free (track->codec_state); -#ifdef MKVDEMUX_MODIFICATION +#ifdef MKV_DEMUX_MODIFICATION while (!g_queue_is_empty (track->queue)) { - GstBuffer* buf = g_queue_pop_head (track->queue); - gst_buffer_unref (buf); - } + GstBuffer* buf = g_queue_pop_head (track->queue); + gst_buffer_unref (buf); + } g_queue_free (track->queue); #endif @@ -350,9 +363,10 @@ gst_matroska_demux_combine_flows (GstMatroskaDemux * demux, goto done; /* only return NOT_LINKED if all other pads returned NOT_LINKED */ - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *ostream = g_ptr_array_index (demux->src, i); + g_assert (demux->common.src->len == demux->common.num_streams); + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *ostream = g_ptr_array_index (demux->common.src, + i); if (ostream == NULL) continue; @@ -385,13 +399,14 @@ gst_matroska_demux_reset (GstElement * element) GST_DEBUG_OBJECT (demux, "Resetting state"); /* reset input */ - demux->state = GST_MATROSKA_DEMUX_STATE_START; + demux->common.state = GST_MATROSKA_READ_STATE_START; /* clean up existing streams */ - if (demux->src) { - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); + if (demux->common.src) { + g_assert (demux->common.src->len == demux->common.num_streams); + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src, + i); if (context->pad != NULL) gst_element_remove_pad (GST_ELEMENT (demux), context->pad); @@ -399,25 +414,25 @@ gst_matroska_demux_reset (GstElement * element) gst_caps_replace (&context->caps, NULL); gst_matroska_track_free (context); } - g_ptr_array_free (demux->src, TRUE); + g_ptr_array_free (demux->common.src, TRUE); } - demux->src = g_ptr_array_new (); + demux->common.src = g_ptr_array_new (); - demux->num_streams = 0; + demux->common.num_streams = 0; demux->num_a_streams = 0; demux->num_t_streams = 0; demux->num_v_streams = 0; /* reset media info */ - g_free (demux->writing_app); - demux->writing_app = NULL; - g_free (demux->muxing_app); - demux->muxing_app = NULL; + g_free (demux->common.writing_app); + demux->common.writing_app = NULL; + g_free (demux->common.muxing_app); + demux->common.muxing_app = NULL; /* reset indexes */ - if (demux->index) { - g_array_free (demux->index, TRUE); - demux->index = NULL; + if (demux->common.index) { + g_array_free (demux->common.index, TRUE); + demux->common.index = NULL; } if (demux->clusters) { @@ -427,29 +442,30 @@ gst_matroska_demux_reset (GstElement * element) /* reset timers */ demux->clock = NULL; - demux->time_scale = 1000000; - demux->created = G_MININT64; + demux->common.time_scale = 1000000; + demux->common.created = G_MININT64; - demux->index_parsed = FALSE; + demux->common.index_parsed = FALSE; demux->tracks_parsed = FALSE; - demux->segmentinfo_parsed = FALSE; - demux->attachments_parsed = FALSE; + demux->common.segmentinfo_parsed = FALSE; + demux->common.attachments_parsed = FALSE; - g_list_foreach (demux->tags_parsed, + g_list_foreach (demux->common.tags_parsed, (GFunc) gst_matroska_demux_free_parsed_el, NULL); - g_list_free (demux->tags_parsed); - demux->tags_parsed = NULL; + g_list_free (demux->common.tags_parsed); + demux->common.tags_parsed = NULL; g_list_foreach (demux->seek_parsed, (GFunc) gst_matroska_demux_free_parsed_el, NULL); g_list_free (demux->seek_parsed); demux->seek_parsed = NULL; - gst_segment_init (&demux->segment, GST_FORMAT_TIME); + gst_segment_init (&demux->common.segment, GST_FORMAT_TIME); demux->last_stop_end = GST_CLOCK_TIME_NONE; demux->seek_block = 0; + demux->stream_start_time = GST_CLOCK_TIME_NONE; - demux->offset = 0; + demux->common.offset = 0; demux->cluster_time = GST_CLOCK_TIME_NONE; demux->cluster_offset = 0; demux->next_cluster_offset = 0; @@ -475,274 +491,225 @@ gst_matroska_demux_reset (GstElement * element) demux->new_segment = NULL; } - if (demux->element_index) { - gst_object_unref (demux->element_index); - demux->element_index = NULL; - } - demux->element_index_writer_id = -1; - - if (demux->global_tags) { - gst_tag_list_free (demux->global_tags); - } - demux->global_tags = gst_tag_list_new (); - - if (demux->cached_buffer) { - gst_buffer_unref (demux->cached_buffer); - demux->cached_buffer = NULL; - } -} - -/* - * Calls pull_range for (offset,size) without advancing our offset - */ -static GstFlowReturn -gst_matroska_demux_peek_bytes (GstMatroskaDemux * demux, guint64 offset, - guint size, GstBuffer ** p_buf, guint8 ** bytes) -{ - GstFlowReturn ret; - - /* Caching here actually makes much less difference than one would expect. - * We do it mainly to avoid pulling buffers of 1 byte all the time */ - if (demux->cached_buffer) { - guint64 cache_offset = GST_BUFFER_OFFSET (demux->cached_buffer); - guint cache_size = GST_BUFFER_SIZE (demux->cached_buffer); - - if (cache_offset <= demux->offset && - (demux->offset + size) <= (cache_offset + cache_size)) { - if (p_buf) - *p_buf = gst_buffer_create_sub (demux->cached_buffer, - demux->offset - cache_offset, size); - if (bytes) - *bytes = GST_BUFFER_DATA (demux->cached_buffer) + demux->offset - - cache_offset; - return GST_FLOW_OK; - } - /* not enough data in the cache, free cache and get a new one */ - gst_buffer_unref (demux->cached_buffer); - demux->cached_buffer = NULL; - } - - /* refill the cache */ - ret = gst_pad_pull_range (demux->sinkpad, demux->offset, - MAX (size, 64 * 1024), &demux->cached_buffer); - if (ret != GST_FLOW_OK) { - demux->cached_buffer = NULL; - return ret; - } - - if (GST_BUFFER_SIZE (demux->cached_buffer) >= size) { - if (p_buf) - *p_buf = gst_buffer_create_sub (demux->cached_buffer, 0, size); - if (bytes) - *bytes = GST_BUFFER_DATA (demux->cached_buffer); - return GST_FLOW_OK; + if (demux->common.element_index) { + gst_object_unref (demux->common.element_index); + demux->common.element_index = NULL; } + demux->common.element_index_writer_id = -1; - /* Not possible to get enough data, try a last time with - * requesting exactly the size we need */ - gst_buffer_unref (demux->cached_buffer); - demux->cached_buffer = NULL; - - ret = - gst_pad_pull_range (demux->sinkpad, demux->offset, size, - &demux->cached_buffer); - if (ret != GST_FLOW_OK) { - GST_DEBUG_OBJECT (demux, "pull_range returned %d", ret); - if (p_buf) - *p_buf = NULL; - if (bytes) - *bytes = NULL; - return ret; + if (demux->common.global_tags) { + gst_tag_list_free (demux->common.global_tags); } + demux->common.global_tags = gst_tag_list_new (); - if (GST_BUFFER_SIZE (demux->cached_buffer) < size) { - GST_WARNING_OBJECT (demux, "Dropping short buffer at offset %" - G_GUINT64_FORMAT ": wanted %u bytes, got %u bytes", demux->offset, - size, GST_BUFFER_SIZE (demux->cached_buffer)); - - gst_buffer_unref (demux->cached_buffer); - demux->cached_buffer = NULL; - if (p_buf) - *p_buf = NULL; - if (bytes) - *bytes = NULL; - return GST_FLOW_UNEXPECTED; + if (demux->common.cached_buffer) { + gst_buffer_unref (demux->common.cached_buffer); + demux->common.cached_buffer = NULL; } - if (p_buf) - *p_buf = gst_buffer_create_sub (demux->cached_buffer, 0, size); - if (bytes) - *bytes = GST_BUFFER_DATA (demux->cached_buffer); - - return GST_FLOW_OK; + demux->invalid_duration = FALSE; } -static const guint8 * -gst_matroska_demux_peek_pull (GstMatroskaDemux * demux, guint peek) +static GstBuffer * +gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf) { - guint8 *data = NULL; - - gst_matroska_demux_peek_bytes (demux, demux->offset, peek, NULL, &data); - return data; -} + guint8 *data; + guint size; + GstBuffer *new_buf; -static GstFlowReturn -gst_matroska_demux_peek_id_length_pull (GstMatroskaDemux * demux, guint32 * _id, - guint64 * _length, guint * _needed) -{ - return gst_ebml_peek_id_length (_id, _length, _needed, - (GstPeekData) gst_matroska_demux_peek_pull, (gpointer) demux, - GST_ELEMENT_CAST (demux), demux->offset); -} + g_return_val_if_fail (GST_IS_BUFFER (buf), NULL); -static gint64 -gst_matroska_demux_get_length (GstMatroskaDemux * demux) -{ - GstFormat fmt = GST_FORMAT_BYTES; - gint64 end = -1; + GST_DEBUG ("decoding buffer %p", buf); - if (!gst_pad_query_peer_duration (demux->sinkpad, &fmt, &end) || - fmt != GST_FORMAT_BYTES || end < 0) - GST_DEBUG_OBJECT (demux, "no upstream length"); + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); - return end; -} + g_return_val_if_fail (data != NULL && size > 0, buf); -static gint -gst_matroska_demux_stream_from_num (GstMatroskaDemux * demux, guint track_num) -{ - guint n; + if (gst_matroska_decode_data (context->encodings, &data, &size, + GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME, FALSE)) { + new_buf = gst_buffer_new (); + GST_BUFFER_MALLOCDATA (new_buf) = (guint8 *) data; + GST_BUFFER_DATA (new_buf) = (guint8 *) data; + GST_BUFFER_SIZE (new_buf) = size; - g_assert (demux->src->len == demux->num_streams); - for (n = 0; n < demux->src->len; n++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, n); + gst_buffer_unref (buf); + buf = new_buf; - if (context->num == track_num) { - return n; - } + return buf; + } else { + GST_DEBUG ("decode data failed"); + gst_buffer_unref (buf); + return NULL; } - - if (n == demux->num_streams) - GST_WARNING_OBJECT (demux, - "Failed to find corresponding pad for tracknum %d", track_num); - - return -1; -} - -static gint -gst_matroska_demux_encoding_cmp (GstMatroskaTrackEncoding * a, - GstMatroskaTrackEncoding * b) -{ - if (b->order > a->order) - return 1; - else if (b->order < a->order) - return -1; - else - return 0; -} - -static gboolean -gst_matroska_demux_encoding_order_unique (GArray * encodings, guint64 order) -{ - gint i; - - if (encodings == NULL || encodings->len == 0) - return TRUE; - - for (i = 0; i < encodings->len; i++) - if (g_array_index (encodings, GstMatroskaTrackEncoding, i).order == order) - return FALSE; - - return TRUE; } static GstFlowReturn -gst_matroska_demux_read_track_encoding (GstMatroskaDemux * demux, - GstEbmlRead * ebml, GstMatroskaTrackContext * context) +gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) { - GstMatroskaTrackEncoding enc = { 0, }; + GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux); + GstMatroskaTrackContext *context; + GstPadTemplate *templ = NULL; + GstCaps *caps = NULL; + gchar *padname = NULL; GstFlowReturn ret; - guint32 id; + guint32 id, riff_fourcc = 0; + guint16 riff_audio_fmt = 0; + GstTagList *list = NULL; + gchar *codec = NULL; - DEBUG_ELEMENT_START (demux, ebml, "ContentEncoding"); - /* Set default values */ - enc.scope = 1; - /* All other default values are 0 */ + DEBUG_ELEMENT_START (demux, ebml, "TrackEntry"); + /* start with the master */ if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "ContentEncoding", ret); + DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); return ret; } + /* allocate generic... if we know the type, we'll g_renew() + * with the precise type */ + context = g_new0 (GstMatroskaTrackContext, 1); + g_ptr_array_add (demux->common.src, context); + context->index = demux->common.num_streams; + context->index_writer_id = -1; + context->type = 0; /* no type yet */ + context->default_duration = 0; + context->pos = 0; +#ifdef MKV_DEMUX_MODIFICATION + context->found_next_kframe = FALSE; +#endif + context->set_discont = TRUE; + context->timecodescale = 1.0; + context->flags = + GST_MATROSKA_TRACK_ENABLED | GST_MATROSKA_TRACK_DEFAULT | + GST_MATROSKA_TRACK_LACING; + context->last_flow = GST_FLOW_OK; + context->to_offset = G_MAXINT64; + context->alignment = 1; + demux->common.num_streams++; + g_assert (demux->common.src->len == demux->common.num_streams); + +#ifdef MKV_DEMUX_MODIFICATION + context->queue = g_queue_new (); +// context->found_key_frame = FALSE; + context->last_ts = GST_CLOCK_TIME_NONE; +// context->avg_duration = GST_CLOCK_TIME_NONE; +// context->intra_gap = 0; +#endif + + GST_DEBUG_OBJECT (demux, "Stream number %d", context->index); + + /* try reading the trackentry headers */ while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) break; switch (id) { - case GST_MATROSKA_ID_CONTENTENCODINGORDER:{ + /* track number (unique stream ID) */ + case GST_MATROSKA_ID_TRACKNUMBER:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (!gst_matroska_demux_encoding_order_unique (context->encodings, num)) { - GST_ERROR_OBJECT (demux, "ContentEncodingOrder %" G_GUINT64_FORMAT - "is not unique for track %d", num, context->num); + if (num == 0) { + GST_ERROR_OBJECT (demux, "Invalid TrackNumber 0"); + ret = GST_FLOW_ERROR; + break; + } else if (!gst_matroska_read_common_tracknumber_unique (&demux->common, + num)) { + GST_ERROR_OBJECT (demux, "TrackNumber %" G_GUINT64_FORMAT + " is not unique", num); ret = GST_FLOW_ERROR; break; } - GST_DEBUG_OBJECT (demux, "ContentEncodingOrder: %" G_GUINT64_FORMAT, - num); - enc.order = num; + GST_DEBUG_OBJECT (demux, "TrackNumber: %" G_GUINT64_FORMAT, num); + context->num = num; break; } - case GST_MATROSKA_ID_CONTENTENCODINGSCOPE:{ + /* track UID (unique identifier) */ + case GST_MATROSKA_ID_TRACKUID:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (num > 7 && num == 0) { - GST_ERROR_OBJECT (demux, "Invalid ContentEncodingScope %" - G_GUINT64_FORMAT, num); + if (num == 0) { + GST_ERROR_OBJECT (demux, "Invalid TrackUID 0"); ret = GST_FLOW_ERROR; break; } - GST_DEBUG_OBJECT (demux, "ContentEncodingScope: %" G_GUINT64_FORMAT, - num); - enc.scope = num; - + GST_DEBUG_OBJECT (demux, "TrackUID: %" G_GUINT64_FORMAT, num); + context->uid = num; break; } - case GST_MATROSKA_ID_CONTENTENCODINGTYPE:{ - guint64 num; - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + /* track type (video, audio, combined, subtitle, etc.) */ + case GST_MATROSKA_ID_TRACKTYPE:{ + guint64 track_type; + + if ((ret = gst_ebml_read_uint (ebml, &id, &track_type)) != GST_FLOW_OK) { break; + } - if (num > 1) { - GST_ERROR_OBJECT (demux, "Invalid ContentEncodingType %" - G_GUINT64_FORMAT, num); - ret = GST_FLOW_ERROR; + if (context->type != 0 && context->type != track_type) { + GST_WARNING_OBJECT (demux, + "More than one tracktype defined in a TrackEntry - skipping"); break; - } else if (num != 0) { - GST_ERROR_OBJECT (demux, "Encrypted tracks are not supported yet"); - ret = GST_FLOW_ERROR; + } else if (track_type < 1 || track_type > 254) { + GST_WARNING_OBJECT (demux, "Invalid TrackType %" G_GUINT64_FORMAT, + track_type); break; } - GST_DEBUG_OBJECT (demux, "ContentEncodingType: %" G_GUINT64_FORMAT, - num); - enc.type = num; + + GST_DEBUG_OBJECT (demux, "TrackType: %" G_GUINT64_FORMAT, track_type); + + /* ok, so we're actually going to reallocate this thing */ + switch (track_type) { + case GST_MATROSKA_TRACK_TYPE_VIDEO: + gst_matroska_track_init_video_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_AUDIO: + gst_matroska_track_init_audio_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_SUBTITLE: + gst_matroska_track_init_subtitle_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_COMPLEX: + case GST_MATROSKA_TRACK_TYPE_LOGO: + case GST_MATROSKA_TRACK_TYPE_BUTTONS: + case GST_MATROSKA_TRACK_TYPE_CONTROL: + default: + GST_WARNING_OBJECT (demux, + "Unknown or unsupported TrackType %" G_GUINT64_FORMAT, + track_type); + context->type = 0; + break; + } + g_ptr_array_index (demux->common.src, demux->common.num_streams - 1) + = context; break; } - case GST_MATROSKA_ID_CONTENTCOMPRESSION:{ - DEBUG_ELEMENT_START (demux, ebml, "ContentCompression"); + /* tracktype specific stuff for video */ + case GST_MATROSKA_ID_TRACKVIDEO:{ + GstMatroskaTrackVideoContext *videocontext; + + DEBUG_ELEMENT_START (demux, ebml, "TrackVideo"); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) + if (!gst_matroska_track_init_video_context (&context)) { + GST_WARNING_OBJECT (demux, + "TrackVideo element in non-video track - ignoring track"); + ret = GST_FLOW_ERROR; break; + } else if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + break; + } + videocontext = (GstMatroskaTrackVideoContext *) context; + g_ptr_array_index (demux->common.src, demux->common.num_streams - 1) + = context; while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { @@ -750,3495 +717,1743 @@ gst_matroska_demux_read_track_encoding (GstMatroskaDemux * demux, break; switch (id) { - case GST_MATROSKA_ID_CONTENTCOMPALGO:{ + /* Should be one level up but some broken muxers write it here. */ + case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ guint64 num; - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) { + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - } - if (num > 3) { - GST_ERROR_OBJECT (demux, "Invalid ContentCompAlgo %" - G_GUINT64_FORMAT, num); - ret = GST_FLOW_ERROR; + + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackDefaultDuration 0"); break; } - GST_DEBUG_OBJECT (demux, "ContentCompAlgo: %" G_GUINT64_FORMAT, - num); - enc.comp_algo = num; + GST_DEBUG_OBJECT (demux, + "TrackDefaultDuration: %" G_GUINT64_FORMAT, num); + context->default_duration = num; break; } - case GST_MATROSKA_ID_CONTENTCOMPSETTINGS:{ - guint8 *data; - guint64 size; - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, - &size)) != GST_FLOW_OK) { + /* video framerate */ + /* NOTE: This one is here only for backward compatibility. + * Use _TRACKDEFAULDURATION one level up. */ + case GST_MATROSKA_ID_VIDEOFRAMERATE:{ + gdouble num; + + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num <= 0.0) { + GST_WARNING_OBJECT (demux, "Invalid TrackVideoFPS %lf", num); break; } - enc.comp_settings = data; - enc.comp_settings_length = size; - GST_DEBUG_OBJECT (demux, - "ContentCompSettings of size %" G_GUINT64_FORMAT, size); + + GST_DEBUG_OBJECT (demux, "TrackVideoFrameRate: %lf", num); + if (context->default_duration == 0) + context->default_duration = + gst_gdouble_to_guint64 ((gdouble) GST_SECOND * (1.0 / num)); + videocontext->default_fps = num; break; } - default: - GST_WARNING_OBJECT (demux, - "Unknown ContentCompression subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); - break; - } - } - DEBUG_ELEMENT_STOP (demux, ebml, "ContentCompression", ret); - break; - } - case GST_MATROSKA_ID_CONTENTENCRYPTION: - GST_ERROR_OBJECT (demux, "Encrypted tracks not yet supported"); - gst_ebml_read_skip (ebml); - ret = GST_FLOW_ERROR; - break; - default: - GST_WARNING_OBJECT (demux, - "Unknown ContentEncoding subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); - break; - } - } + /* width of the size to display the video at */ + case GST_MATROSKA_ID_VIDEODISPLAYWIDTH:{ + guint64 num; - DEBUG_ELEMENT_STOP (demux, ebml, "ContentEncoding", ret); - if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) - return ret; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - /* TODO: Check if the combination of values is valid */ + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackVideoDisplayWidth 0"); + break; + } - g_array_append_val (context->encodings, enc); + GST_DEBUG_OBJECT (demux, + "TrackVideoDisplayWidth: %" G_GUINT64_FORMAT, num); + videocontext->display_width = num; + break; + } - return ret; -} + /* height of the size to display the video at */ + case GST_MATROSKA_ID_VIDEODISPLAYHEIGHT:{ + guint64 num; -static gboolean -gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc, - guint8 ** data_out, guint * size_out, - GstMatroskaTrackCompressionAlgorithm algo) -{ - guint8 *new_data = NULL; - guint new_size = 0; - guint8 *data = *data_out; - guint size = *size_out; - gboolean ret = TRUE; - - if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_ZLIB) { -#ifdef HAVE_ZLIB - /* zlib encoded data */ - z_stream zstream; - guint orig_size; - int result; - - orig_size = size; - zstream.zalloc = (alloc_func) 0; - zstream.zfree = (free_func) 0; - zstream.opaque = (voidpf) 0; - if (inflateInit (&zstream) != Z_OK) { - GST_WARNING ("zlib initialization failed."); - ret = FALSE; - goto out; - } - zstream.next_in = (Bytef *) data; - zstream.avail_in = orig_size; - new_size = orig_size; - new_data = g_malloc (new_size); - zstream.avail_out = new_size; - zstream.next_out = (Bytef *) new_data; - - do { - result = inflate (&zstream, Z_NO_FLUSH); - if (result != Z_OK && result != Z_STREAM_END) { - GST_WARNING ("zlib decompression failed."); - g_free (new_data); - inflateEnd (&zstream); - break; - } - new_size += 4000; - new_data = g_realloc (new_data, new_size); - zstream.next_out = (Bytef *) (new_data + zstream.total_out); - zstream.avail_out += 4000; - } while (zstream.avail_in != 0 && result != Z_STREAM_END); - - if (result != Z_STREAM_END) { - ret = FALSE; - goto out; - } else { - new_size = zstream.total_out; - inflateEnd (&zstream); - } -#else - GST_WARNING ("zlib encoded tracks not supported."); - ret = FALSE; - goto out; -#endif - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_BZLIB) { -#ifdef HAVE_BZ2 - /* bzip2 encoded data */ - bz_stream bzstream; - guint orig_size; - int result; - - bzstream.bzalloc = NULL; - bzstream.bzfree = NULL; - bzstream.opaque = NULL; - orig_size = size; - - if (BZ2_bzDecompressInit (&bzstream, 0, 0) != BZ_OK) { - GST_WARNING ("bzip2 initialization failed."); - ret = FALSE; - goto out; - } + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - bzstream.next_in = (char *) data; - bzstream.avail_in = orig_size; - new_size = orig_size; - new_data = g_malloc (new_size); - bzstream.avail_out = new_size; - bzstream.next_out = (char *) new_data; - - do { - result = BZ2_bzDecompress (&bzstream); - if (result != BZ_OK && result != BZ_STREAM_END) { - GST_WARNING ("bzip2 decompression failed."); - g_free (new_data); - BZ2_bzDecompressEnd (&bzstream); - break; - } - new_size += 4000; - new_data = g_realloc (new_data, new_size); - bzstream.next_out = (char *) (new_data + bzstream.total_out_lo32); - bzstream.avail_out += 4000; - } while (bzstream.avail_in != 0 && result != BZ_STREAM_END); - - if (result != BZ_STREAM_END) { - ret = FALSE; - goto out; - } else { - new_size = bzstream.total_out_lo32; - BZ2_bzDecompressEnd (&bzstream); - } -#else - GST_WARNING ("bzip2 encoded tracks not supported."); - ret = FALSE; - goto out; -#endif - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_LZO1X) { - /* lzo encoded data */ - int result; - int orig_size, out_size; + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackVideoDisplayHeight 0"); + break; + } - orig_size = size; - out_size = size; - new_size = size; - new_data = g_malloc (new_size); + GST_DEBUG_OBJECT (demux, + "TrackVideoDisplayHeight: %" G_GUINT64_FORMAT, num); + videocontext->display_height = num; + break; + } - do { - orig_size = size; - out_size = new_size; + /* width of the video in the file */ + case GST_MATROSKA_ID_VIDEOPIXELWIDTH:{ + guint64 num; - result = lzo1x_decode (new_data, &out_size, data, &orig_size); + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - if (orig_size > 0) { - new_size += 4000; - new_data = g_realloc (new_data, new_size); - } - } while (orig_size > 0 && result == LZO_OUTPUT_FULL); + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackVideoPixelWidth 0"); + break; + } - new_size -= out_size; + GST_DEBUG_OBJECT (demux, + "TrackVideoPixelWidth: %" G_GUINT64_FORMAT, num); + videocontext->pixel_width = num; + break; + } - if (result != LZO_OUTPUT_FULL) { - GST_WARNING ("lzo decompression failed"); - g_free (new_data); + /* height of the video in the file */ + case GST_MATROSKA_ID_VIDEOPIXELHEIGHT:{ + guint64 num; - ret = FALSE; - goto out; - } + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_HEADERSTRIP) { - /* header stripped encoded data */ - if (enc->comp_settings_length > 0) { - new_data = g_malloc (size + enc->comp_settings_length); - new_size = size + enc->comp_settings_length; + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackVideoPixelHeight 0"); + break; + } - memcpy (new_data, enc->comp_settings, enc->comp_settings_length); - memcpy (new_data + enc->comp_settings_length, data, size); - } - } else { - GST_ERROR ("invalid compression algorithm %d", algo); - ret = FALSE; - } + GST_DEBUG_OBJECT (demux, + "TrackVideoPixelHeight: %" G_GUINT64_FORMAT, num); + videocontext->pixel_height = num; + break; + } -out: + /* whether the video is interlaced */ + case GST_MATROSKA_ID_VIDEOFLAGINTERLACED:{ + guint64 num; - if (!ret) { - *data_out = NULL; - *size_out = 0; - } else { - *data_out = new_data; - *size_out = new_size; - } + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - return ret; -} + if (num) + context->flags |= GST_MATROSKA_VIDEOTRACK_INTERLACED; + else + context->flags &= ~GST_MATROSKA_VIDEOTRACK_INTERLACED; + GST_DEBUG_OBJECT (demux, "TrackVideoInterlaced: %d", + (context->flags & GST_MATROSKA_VIDEOTRACK_INTERLACED) ? 1 : + 0); + break; + } -static gboolean -gst_matroska_decode_data (GArray * encodings, guint8 ** data_out, - guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free) -{ - guint8 *data; - guint size; - gboolean ret = TRUE; - gint i; + /* aspect ratio behaviour */ + case GST_MATROSKA_ID_VIDEOASPECTRATIOTYPE:{ + guint64 num; - g_return_val_if_fail (encodings != NULL, FALSE); - g_return_val_if_fail (data_out != NULL && *data_out != NULL, FALSE); - g_return_val_if_fail (size_out != NULL, FALSE); + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - data = *data_out; - size = *size_out; + if (num != GST_MATROSKA_ASPECT_RATIO_MODE_FREE && + num != GST_MATROSKA_ASPECT_RATIO_MODE_KEEP && + num != GST_MATROSKA_ASPECT_RATIO_MODE_FIXED) { + GST_WARNING_OBJECT (demux, + "Unknown TrackVideoAspectRatioType 0x%x", (guint) num); + break; + } + GST_DEBUG_OBJECT (demux, + "TrackVideoAspectRatioType: %" G_GUINT64_FORMAT, num); + videocontext->asr_mode = num; + break; + } - for (i = 0; i < encodings->len; i++) { - GstMatroskaTrackEncoding *enc = - &g_array_index (encodings, GstMatroskaTrackEncoding, i); - guint8 *new_data = NULL; - guint new_size = 0; + /* colourspace (only matters for raw video) fourcc */ + case GST_MATROSKA_ID_VIDEOCOLOURSPACE:{ + guint8 *data; + guint64 datalen; - if ((enc->scope & scope) == 0) - continue; + if ((ret = + gst_ebml_read_binary (ebml, &id, &data, + &datalen)) != GST_FLOW_OK) + break; - /* Encryption not supported yet */ - if (enc->type != 0) { - ret = FALSE; - break; - } + if (datalen != 4) { + g_free (data); + GST_WARNING_OBJECT (demux, + "Invalid TrackVideoColourSpace length %" G_GUINT64_FORMAT, + datalen); + break; + } - new_data = data; - new_size = size; + memcpy (&videocontext->fourcc, data, 4); + GST_DEBUG_OBJECT (demux, + "TrackVideoColourSpace: %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (videocontext->fourcc)); + g_free (data); + break; + } - ret = - gst_matroska_decompress_data (enc, &new_data, &new_size, - enc->comp_algo); + default: + GST_WARNING_OBJECT (demux, + "Unknown TrackVideo subelement 0x%x - ignoring", id); + /* fall through */ + case GST_MATROSKA_ID_VIDEOSTEREOMODE: + case GST_MATROSKA_ID_VIDEODISPLAYUNIT: + case GST_MATROSKA_ID_VIDEOPIXELCROPBOTTOM: + case GST_MATROSKA_ID_VIDEOPIXELCROPTOP: + case GST_MATROSKA_ID_VIDEOPIXELCROPLEFT: + case GST_MATROSKA_ID_VIDEOPIXELCROPRIGHT: + case GST_MATROSKA_ID_VIDEOGAMMAVALUE: + ret = gst_ebml_read_skip (ebml); + break; + } + } - if (!ret) - break; + DEBUG_ELEMENT_STOP (demux, ebml, "TrackVideo", ret); + break; + } - if ((data == *data_out && free) || (data != *data_out)) - g_free (data); + /* tracktype specific stuff for audio */ + case GST_MATROSKA_ID_TRACKAUDIO:{ + GstMatroskaTrackAudioContext *audiocontext; - data = new_data; - size = new_size; - } + DEBUG_ELEMENT_START (demux, ebml, "TrackAudio"); - if (!ret) { - if ((data == *data_out && free) || (data != *data_out)) - g_free (data); + if (!gst_matroska_track_init_audio_context (&context)) { + GST_WARNING_OBJECT (demux, + "TrackAudio element in non-audio track - ignoring track"); + ret = GST_FLOW_ERROR; + break; + } - *data_out = NULL; - *size_out = 0; - } else { - *data_out = data; - *size_out = size; - } + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) + break; - return ret; -} + audiocontext = (GstMatroskaTrackAudioContext *) context; + g_ptr_array_index (demux->common.src, demux->common.num_streams - 1) + = context; -static GstBuffer * -gst_matroska_decode_buffer (GstMatroskaTrackContext * context, GstBuffer * buf) -{ - guint8 *data; - guint size; - GstBuffer *new_buf; + while (ret == GST_FLOW_OK && + gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; - g_return_val_if_fail (GST_IS_BUFFER (buf), NULL); + switch (id) { + /* samplerate */ + case GST_MATROSKA_ID_AUDIOSAMPLINGFREQ:{ + gdouble num; - GST_DEBUG ("decoding buffer %p", buf); + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; - data = GST_BUFFER_DATA (buf); - size = GST_BUFFER_SIZE (buf); - g_return_val_if_fail (data != NULL && size > 0, buf); + if (num <= 0.0) { + GST_WARNING_OBJECT (demux, + "Invalid TrackAudioSamplingFrequency %lf", num); + break; + } - if (gst_matroska_decode_data (context->encodings, &data, &size, - GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME, FALSE)) { - new_buf = gst_buffer_new (); - GST_BUFFER_MALLOCDATA (new_buf) = (guint8 *) data; - GST_BUFFER_DATA (new_buf) = (guint8 *) data; - GST_BUFFER_SIZE (new_buf) = size; + GST_DEBUG_OBJECT (demux, "TrackAudioSamplingFrequency: %lf", num); + audiocontext->samplerate = num; + break; + } - gst_buffer_unref (buf); - buf = new_buf; + /* bitdepth */ + case GST_MATROSKA_ID_AUDIOBITDEPTH:{ + guint64 num; - return buf; - } else { - GST_DEBUG ("decode data failed"); - gst_buffer_unref (buf); - return NULL; - } -} + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; -static GstFlowReturn -gst_matroska_decode_content_encodings (GArray * encodings) -{ - gint i; + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackAudioBitDepth 0"); + break; + } - if (encodings == NULL) - return GST_FLOW_OK; + GST_DEBUG_OBJECT (demux, "TrackAudioBitDepth: %" G_GUINT64_FORMAT, + num); + audiocontext->bitdepth = num; + break; + } - for (i = 0; i < encodings->len; i++) { - GstMatroskaTrackEncoding *enc = - &g_array_index (encodings, GstMatroskaTrackEncoding, i); - GstMatroskaTrackEncoding *enc2; - guint8 *data = NULL; - guint size; + /* channels */ + case GST_MATROSKA_ID_AUDIOCHANNELS:{ + guint64 num; - if ((enc->scope & GST_MATROSKA_TRACK_ENCODING_SCOPE_NEXT_CONTENT_ENCODING) - == 0) - continue; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - /* Encryption not supported yet */ - if (enc->type != 0) - return GST_FLOW_ERROR; + if (num == 0) { + GST_WARNING_OBJECT (demux, "Invalid TrackAudioChannels 0"); + break; + } - if (i + 1 >= encodings->len) - return GST_FLOW_ERROR; + GST_DEBUG_OBJECT (demux, "TrackAudioChannels: %" G_GUINT64_FORMAT, + num); + audiocontext->channels = num; + break; + } - enc2 = &g_array_index (encodings, GstMatroskaTrackEncoding, i + 1); + default: + GST_WARNING_OBJECT (demux, + "Unknown TrackAudio subelement 0x%x - ignoring", id); + /* fall through */ + case GST_MATROSKA_ID_AUDIOCHANNELPOSITIONS: + case GST_MATROSKA_ID_AUDIOOUTPUTSAMPLINGFREQ: + ret = gst_ebml_read_skip (ebml); + break; + } + } - if (enc->comp_settings_length == 0) - continue; + DEBUG_ELEMENT_STOP (demux, ebml, "TrackAudio", ret); - data = enc->comp_settings; - size = enc->comp_settings_length; + break; + } - if (!gst_matroska_decompress_data (enc, &data, &size, enc->comp_algo)) - return GST_FLOW_ERROR; + /* codec identifier */ + case GST_MATROSKA_ID_CODECID:{ + gchar *text; - g_free (enc->comp_settings); + if ((ret = gst_ebml_read_ascii (ebml, &id, &text)) != GST_FLOW_OK) + break; - enc->comp_settings = data; - enc->comp_settings_length = size; - } + GST_DEBUG_OBJECT (demux, "CodecID: %s", GST_STR_NULL (text)); + context->codec_id = text; + break; + } - return GST_FLOW_OK; -} + /* codec private data */ + case GST_MATROSKA_ID_CODECPRIVATE:{ + guint8 *data; + guint64 size; -static GstFlowReturn -gst_matroska_demux_read_track_encodings (GstMatroskaDemux * demux, - GstEbmlRead * ebml, GstMatroskaTrackContext * context) -{ - GstFlowReturn ret; - guint32 id; + if ((ret = + gst_ebml_read_binary (ebml, &id, &data, &size)) != GST_FLOW_OK) + break; - DEBUG_ELEMENT_START (demux, ebml, "ContentEncodings"); + context->codec_priv = data; + context->codec_priv_size = size; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "ContentEncodings", ret); - return ret; - } + GST_DEBUG_OBJECT (demux, "CodecPrivate of size %" G_GUINT64_FORMAT, + size); + break; + } - context->encodings = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaTrackEncoding), 1); + /* name of the codec */ + case GST_MATROSKA_ID_CODECNAME:{ + gchar *text; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; - switch (id) { - case GST_MATROSKA_ID_CONTENTENCODING: - ret = gst_matroska_demux_read_track_encoding (demux, ebml, context); - break; - default: - GST_WARNING_OBJECT (demux, - "Unknown ContentEncodings subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); + GST_DEBUG_OBJECT (demux, "CodecName: %s", GST_STR_NULL (text)); + context->codec_name = text; break; - } - } + } - DEBUG_ELEMENT_STOP (demux, ebml, "ContentEncodings", ret); - if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) - return ret; + /* name of this track */ + case GST_MATROSKA_ID_TRACKNAME:{ + gchar *text; - /* Sort encodings according to their order */ - g_array_sort (context->encodings, - (GCompareFunc) gst_matroska_demux_encoding_cmp); + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; - return gst_matroska_decode_content_encodings (context->encodings); -} + context->name = text; + GST_DEBUG_OBJECT (demux, "TrackName: %s", GST_STR_NULL (text)); + break; + } -static gboolean -gst_matroska_demux_tracknumber_unique (GstMatroskaDemux * demux, guint64 num) -{ - gint i; + /* language (matters for audio/subtitles, mostly) */ + case GST_MATROSKA_ID_TRACKLANGUAGE:{ + gchar *text; - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; - if (context->num == num) - return FALSE; - } - return TRUE; -} + context->language = text; -static GstFlowReturn -gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) -{ - GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux); - GstMatroskaTrackContext *context; - GstPadTemplate *templ = NULL; - GstCaps *caps = NULL; - gchar *padname = NULL; - GstFlowReturn ret; - guint32 id, riff_fourcc = 0; - guint16 riff_audio_fmt = 0; - GstTagList *list = NULL; - gchar *codec = NULL; + /* fre-ca => fre */ + if (strlen (context->language) >= 4 && context->language[3] == '-') + context->language[3] = '\0'; - DEBUG_ELEMENT_START (demux, ebml, "TrackEntry"); + GST_DEBUG_OBJECT (demux, "TrackLanguage: %s", + GST_STR_NULL (context->language)); + break; + } - /* start with the master */ - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); - return ret; - } + /* whether this is actually used */ + case GST_MATROSKA_ID_TRACKFLAGENABLED:{ + guint64 num; - /* allocate generic... if we know the type, we'll g_renew() - * with the precise type */ - context = g_new0 (GstMatroskaTrackContext, 1); - g_ptr_array_add (demux->src, context); - context->index = demux->num_streams; - context->index_writer_id = -1; - context->type = 0; /* no type yet */ - context->default_duration = 0; - context->pos = 0; -#ifdef MKVDEMUX_MODIFICATION - context->found_next_kframe = FALSE; -#endif - context->set_discont = TRUE; - context->timecodescale = 1.0; - context->flags = - GST_MATROSKA_TRACK_ENABLED | GST_MATROSKA_TRACK_DEFAULT | - GST_MATROSKA_TRACK_LACING; - context->last_flow = GST_FLOW_OK; - context->to_offset = G_MAXINT64; - demux->num_streams++; - g_assert (demux->src->len == demux->num_streams); - -#ifdef MKVDEMUX_MODIFICATION - context->queue = g_queue_new (); - context->found_key_frame = FALSE; - context->last_ts = GST_CLOCK_TIME_NONE; - context->avg_duration = GST_CLOCK_TIME_NONE; - context->intra_gap = 0; -#endif + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - GST_DEBUG_OBJECT (demux, "Stream number %d", context->index); + if (num) + context->flags |= GST_MATROSKA_TRACK_ENABLED; + else + context->flags &= ~GST_MATROSKA_TRACK_ENABLED; - /* try reading the trackentry headers */ - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + GST_DEBUG_OBJECT (demux, "TrackEnabled: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } - switch (id) { - /* track number (unique stream ID) */ - case GST_MATROSKA_ID_TRACKNUMBER:{ + /* whether it's the default for this track type */ + case GST_MATROSKA_ID_TRACKFLAGDEFAULT:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (num == 0) { - GST_ERROR_OBJECT (demux, "Invalid TrackNumber 0"); - ret = GST_FLOW_ERROR; + if (num) + context->flags |= GST_MATROSKA_TRACK_DEFAULT; + else + context->flags &= ~GST_MATROSKA_TRACK_DEFAULT; + + GST_DEBUG_OBJECT (demux, "TrackDefault: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } + + /* whether the track must be used during playback */ + case GST_MATROSKA_ID_TRACKFLAGFORCED:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - } else if (!gst_matroska_demux_tracknumber_unique (demux, num)) { - GST_ERROR_OBJECT (demux, "TrackNumber %" G_GUINT64_FORMAT - " is not unique", num); - ret = GST_FLOW_ERROR; + + if (num) + context->flags |= GST_MATROSKA_TRACK_FORCED; + else + context->flags &= ~GST_MATROSKA_TRACK_FORCED; + + GST_DEBUG_OBJECT (demux, "TrackForced: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } + + /* lacing (like MPEG, where blocks don't end/start on frame + * boundaries) */ + case GST_MATROSKA_ID_TRACKFLAGLACING:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - } - GST_DEBUG_OBJECT (demux, "TrackNumber: %" G_GUINT64_FORMAT, num); - context->num = num; + if (num) + context->flags |= GST_MATROSKA_TRACK_LACING; + else + context->flags &= ~GST_MATROSKA_TRACK_LACING; + + GST_DEBUG_OBJECT (demux, "TrackLacing: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); break; } - /* track UID (unique identifier) */ - case GST_MATROSKA_ID_TRACKUID:{ + + /* default length (in time) of one data block in this track */ + case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; + if (num == 0) { - GST_ERROR_OBJECT (demux, "Invalid TrackUID 0"); - ret = GST_FLOW_ERROR; + GST_WARNING_OBJECT (demux, "Invalid TrackDefaultDuration 0"); break; } - GST_DEBUG_OBJECT (demux, "TrackUID: %" G_GUINT64_FORMAT, num); - context->uid = num; + GST_DEBUG_OBJECT (demux, "TrackDefaultDuration: %" G_GUINT64_FORMAT, + num); + context->default_duration = num; break; } - /* track type (video, audio, combined, subtitle, etc.) */ - case GST_MATROSKA_ID_TRACKTYPE:{ - guint64 track_type; + case GST_MATROSKA_ID_CONTENTENCODINGS:{ + ret = gst_matroska_read_common_read_track_encodings (&demux->common, + ebml, context); + break; + } - if ((ret = gst_ebml_read_uint (ebml, &id, &track_type)) != GST_FLOW_OK) { + case GST_MATROSKA_ID_TRACKTIMECODESCALE:{ + gdouble num; + + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num <= 0.0) { + GST_WARNING_OBJECT (demux, "Invalid TrackTimeCodeScale %lf", num); break; } - if (context->type != 0 && context->type != track_type) { - GST_WARNING_OBJECT (demux, - "More than one tracktype defined in a TrackEntry - skipping"); - break; - } else if (track_type < 1 || track_type > 254) { - GST_WARNING_OBJECT (demux, "Invalid TrackType %" G_GUINT64_FORMAT, - track_type); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackType: %" G_GUINT64_FORMAT, track_type); - - /* ok, so we're actually going to reallocate this thing */ - switch (track_type) { - case GST_MATROSKA_TRACK_TYPE_VIDEO: - gst_matroska_track_init_video_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_AUDIO: - gst_matroska_track_init_audio_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_SUBTITLE: - gst_matroska_track_init_subtitle_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_COMPLEX: - case GST_MATROSKA_TRACK_TYPE_LOGO: - case GST_MATROSKA_TRACK_TYPE_BUTTONS: - case GST_MATROSKA_TRACK_TYPE_CONTROL: - default: - GST_WARNING_OBJECT (demux, - "Unknown or unsupported TrackType %" G_GUINT64_FORMAT, - track_type); - context->type = 0; - break; - } - g_ptr_array_index (demux->src, demux->num_streams - 1) = context; - break; - } - - /* tracktype specific stuff for video */ - case GST_MATROSKA_ID_TRACKVIDEO:{ - GstMatroskaTrackVideoContext *videocontext; - - DEBUG_ELEMENT_START (demux, ebml, "TrackVideo"); - - if (!gst_matroska_track_init_video_context (&context)) { - GST_WARNING_OBJECT (demux, - "TrackVideo element in non-video track - ignoring track"); - ret = GST_FLOW_ERROR; - break; - } else if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - break; - } - videocontext = (GstMatroskaTrackVideoContext *) context; - g_ptr_array_index (demux->src, demux->num_streams - 1) = context; - - while (ret == GST_FLOW_OK && - gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* Should be one level up but some broken muxers write it here. */ - case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackDefaultDuration 0"); - break; - } - - GST_DEBUG_OBJECT (demux, - "TrackDefaultDuration: %" G_GUINT64_FORMAT, num); - context->default_duration = num; - break; - } - - /* video framerate */ - /* NOTE: This one is here only for backward compatibility. - * Use _TRACKDEFAULDURATION one level up. */ - case GST_MATROSKA_ID_VIDEOFRAMERATE:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num <= 0.0) { - GST_WARNING_OBJECT (demux, "Invalid TrackVideoFPS %lf", num); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackVideoFrameRate: %lf", num); - if (context->default_duration == 0) - context->default_duration = - gst_gdouble_to_guint64 ((gdouble) GST_SECOND * (1.0 / num)); - videocontext->default_fps = num; - break; - } - - /* width of the size to display the video at */ - case GST_MATROSKA_ID_VIDEODISPLAYWIDTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackVideoDisplayWidth 0"); - break; - } - - GST_DEBUG_OBJECT (demux, - "TrackVideoDisplayWidth: %" G_GUINT64_FORMAT, num); - videocontext->display_width = num; - break; - } - - /* height of the size to display the video at */ - case GST_MATROSKA_ID_VIDEODISPLAYHEIGHT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackVideoDisplayHeight 0"); - break; - } - - GST_DEBUG_OBJECT (demux, - "TrackVideoDisplayHeight: %" G_GUINT64_FORMAT, num); - videocontext->display_height = num; - break; - } - - /* width of the video in the file */ - case GST_MATROSKA_ID_VIDEOPIXELWIDTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackVideoPixelWidth 0"); - break; - } - - GST_DEBUG_OBJECT (demux, - "TrackVideoPixelWidth: %" G_GUINT64_FORMAT, num); - videocontext->pixel_width = num; - break; - } - - /* height of the video in the file */ - case GST_MATROSKA_ID_VIDEOPIXELHEIGHT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackVideoPixelHeight 0"); - break; - } - - GST_DEBUG_OBJECT (demux, - "TrackVideoPixelHeight: %" G_GUINT64_FORMAT, num); - videocontext->pixel_height = num; - break; - } - - /* whether the video is interlaced */ - case GST_MATROSKA_ID_VIDEOFLAGINTERLACED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_VIDEOTRACK_INTERLACED; - else - context->flags &= ~GST_MATROSKA_VIDEOTRACK_INTERLACED; - GST_DEBUG_OBJECT (demux, "TrackVideoInterlaced: %d", - (context->flags & GST_MATROSKA_VIDEOTRACK_INTERLACED) ? 1 : - 0); - break; - } - - /* aspect ratio behaviour */ - case GST_MATROSKA_ID_VIDEOASPECTRATIOTYPE:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num != GST_MATROSKA_ASPECT_RATIO_MODE_FREE && - num != GST_MATROSKA_ASPECT_RATIO_MODE_KEEP && - num != GST_MATROSKA_ASPECT_RATIO_MODE_FIXED) { - GST_WARNING_OBJECT (demux, - "Unknown TrackVideoAspectRatioType 0x%x", (guint) num); - break; - } - GST_DEBUG_OBJECT (demux, - "TrackVideoAspectRatioType: %" G_GUINT64_FORMAT, num); - videocontext->asr_mode = num; - break; - } - - /* colourspace (only matters for raw video) fourcc */ - case GST_MATROSKA_ID_VIDEOCOLOURSPACE:{ - guint8 *data; - guint64 datalen; - - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, - &datalen)) != GST_FLOW_OK) - break; - - if (datalen != 4) { - g_free (data); - GST_WARNING_OBJECT (demux, - "Invalid TrackVideoColourSpace length %" G_GUINT64_FORMAT, - datalen); - break; - } - - memcpy (&videocontext->fourcc, data, 4); - GST_DEBUG_OBJECT (demux, - "TrackVideoColourSpace: %" GST_FOURCC_FORMAT, - GST_FOURCC_ARGS (videocontext->fourcc)); - g_free (data); - break; - } - - default: - GST_WARNING_OBJECT (demux, - "Unknown TrackVideo subelement 0x%x - ignoring", id); - /* fall through */ - case GST_MATROSKA_ID_VIDEOSTEREOMODE: - case GST_MATROSKA_ID_VIDEODISPLAYUNIT: - case GST_MATROSKA_ID_VIDEOPIXELCROPBOTTOM: - case GST_MATROSKA_ID_VIDEOPIXELCROPTOP: - case GST_MATROSKA_ID_VIDEOPIXELCROPLEFT: - case GST_MATROSKA_ID_VIDEOPIXELCROPRIGHT: - case GST_MATROSKA_ID_VIDEOGAMMAVALUE: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (demux, ebml, "TrackVideo", ret); - break; - } - - /* tracktype specific stuff for audio */ - case GST_MATROSKA_ID_TRACKAUDIO:{ - GstMatroskaTrackAudioContext *audiocontext; - - DEBUG_ELEMENT_START (demux, ebml, "TrackAudio"); - - if (!gst_matroska_track_init_audio_context (&context)) { - GST_WARNING_OBJECT (demux, - "TrackAudio element in non-audio track - ignoring track"); - ret = GST_FLOW_ERROR; - break; - } - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) - break; - - audiocontext = (GstMatroskaTrackAudioContext *) context; - g_ptr_array_index (demux->src, demux->num_streams - 1) = context; - - while (ret == GST_FLOW_OK && - gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* samplerate */ - case GST_MATROSKA_ID_AUDIOSAMPLINGFREQ:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - - if (num <= 0.0) { - GST_WARNING_OBJECT (demux, - "Invalid TrackAudioSamplingFrequency %lf", num); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackAudioSamplingFrequency: %lf", num); - audiocontext->samplerate = num; - break; - } - - /* bitdepth */ - case GST_MATROSKA_ID_AUDIOBITDEPTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackAudioBitDepth 0"); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackAudioBitDepth: %" G_GUINT64_FORMAT, - num); - audiocontext->bitdepth = num; - break; - } - - /* channels */ - case GST_MATROSKA_ID_AUDIOCHANNELS:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackAudioChannels 0"); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackAudioChannels: %" G_GUINT64_FORMAT, - num); - audiocontext->channels = num; - break; - } - - default: - GST_WARNING_OBJECT (demux, - "Unknown TrackAudio subelement 0x%x - ignoring", id); - /* fall through */ - case GST_MATROSKA_ID_AUDIOCHANNELPOSITIONS: - case GST_MATROSKA_ID_AUDIOOUTPUTSAMPLINGFREQ: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (demux, ebml, "TrackAudio", ret); - - break; - } - - /* codec identifier */ - case GST_MATROSKA_ID_CODECID:{ - gchar *text; - - if ((ret = gst_ebml_read_ascii (ebml, &id, &text)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (demux, "CodecID: %s", GST_STR_NULL (text)); - context->codec_id = text; - break; - } - - /* codec private data */ - case GST_MATROSKA_ID_CODECPRIVATE:{ - guint8 *data; - guint64 size; - - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, &size)) != GST_FLOW_OK) - break; - - context->codec_priv = data; - context->codec_priv_size = size; - - GST_DEBUG_OBJECT (demux, "CodecPrivate of size %" G_GUINT64_FORMAT, - size); - break; - } - - /* name of the codec */ - case GST_MATROSKA_ID_CODECNAME:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (demux, "CodecName: %s", GST_STR_NULL (text)); - context->codec_name = text; - break; - } - - /* name of this track */ - case GST_MATROSKA_ID_TRACKNAME:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - context->name = text; - GST_DEBUG_OBJECT (demux, "TrackName: %s", GST_STR_NULL (text)); - break; - } - - /* language (matters for audio/subtitles, mostly) */ - case GST_MATROSKA_ID_TRACKLANGUAGE:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - - context->language = text; - - /* fre-ca => fre */ - if (strlen (context->language) >= 4 && context->language[3] == '-') - context->language[3] = '\0'; - - GST_DEBUG_OBJECT (demux, "TrackLanguage: %s", - GST_STR_NULL (context->language)); - break; - } - - /* whether this is actually used */ - case GST_MATROSKA_ID_TRACKFLAGENABLED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_ENABLED; - else - context->flags &= ~GST_MATROSKA_TRACK_ENABLED; - - GST_DEBUG_OBJECT (demux, "TrackEnabled: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* whether it's the default for this track type */ - case GST_MATROSKA_ID_TRACKFLAGDEFAULT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_DEFAULT; - else - context->flags &= ~GST_MATROSKA_TRACK_DEFAULT; - - GST_DEBUG_OBJECT (demux, "TrackDefault: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* whether the track must be used during playback */ - case GST_MATROSKA_ID_TRACKFLAGFORCED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_FORCED; - else - context->flags &= ~GST_MATROSKA_TRACK_FORCED; - - GST_DEBUG_OBJECT (demux, "TrackForced: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* lacing (like MPEG, where blocks don't end/start on frame - * boundaries) */ - case GST_MATROSKA_ID_TRACKFLAGLACING:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_LACING; - else - context->flags &= ~GST_MATROSKA_TRACK_LACING; - - GST_DEBUG_OBJECT (demux, "TrackLacing: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* default length (in time) of one data block in this track */ - case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid TrackDefaultDuration 0"); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackDefaultDuration: %" G_GUINT64_FORMAT, - num); - context->default_duration = num; - break; - } - - case GST_MATROSKA_ID_CONTENTENCODINGS:{ - ret = gst_matroska_demux_read_track_encodings (demux, ebml, context); - break; - } - - case GST_MATROSKA_ID_TRACKTIMECODESCALE:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num <= 0.0) { - GST_WARNING_OBJECT (demux, "Invalid TrackTimeCodeScale %lf", num); - break; - } - - GST_DEBUG_OBJECT (demux, "TrackTimeCodeScale: %lf", num); - context->timecodescale = num; - break; - } - - default: - GST_WARNING ("Unknown TrackEntry subelement 0x%x - ignoring", id); - /* pass-through */ - - /* we ignore these because they're nothing useful (i.e. crap) - * or simply not implemented yet. */ - case GST_MATROSKA_ID_TRACKMINCACHE: - case GST_MATROSKA_ID_TRACKMAXCACHE: - case GST_MATROSKA_ID_MAXBLOCKADDITIONID: - case GST_MATROSKA_ID_TRACKATTACHMENTLINK: - case GST_MATROSKA_ID_TRACKOVERLAY: - case GST_MATROSKA_ID_TRACKTRANSLATE: - case GST_MATROSKA_ID_TRACKOFFSET: - case GST_MATROSKA_ID_CODECSETTINGS: - case GST_MATROSKA_ID_CODECINFOURL: - case GST_MATROSKA_ID_CODECDOWNLOADURL: - case GST_MATROSKA_ID_CODECDECODEALL: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); - - /* Decode codec private data if necessary */ - if (context->encodings && context->encodings->len > 0 && context->codec_priv - && context->codec_priv_size > 0) { - if (!gst_matroska_decode_data (context->encodings, - &context->codec_priv, &context->codec_priv_size, - GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA, TRUE)) { - GST_WARNING_OBJECT (demux, "Decoding codec private data failed"); - ret = GST_FLOW_ERROR; - } - } - - if (context->type == 0 || context->codec_id == NULL || (ret != GST_FLOW_OK - && ret != GST_FLOW_UNEXPECTED)) { - if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) - GST_WARNING_OBJECT (ebml, "Unknown stream/codec in track entry header"); - - demux->num_streams--; - g_ptr_array_remove_index (demux->src, demux->num_streams); - g_assert (demux->src->len == demux->num_streams); - if (context) { - gst_matroska_track_free (context); - } - - return ret; - } - - /* now create the GStreamer connectivity */ - switch (context->type) { - case GST_MATROSKA_TRACK_TYPE_VIDEO:{ - GstMatroskaTrackVideoContext *videocontext = - (GstMatroskaTrackVideoContext *) context; - - padname = g_strdup_printf ("video_%02d", demux->num_v_streams++); - templ = gst_element_class_get_pad_template (klass, "video_%02d"); - caps = gst_matroska_demux_video_caps (videocontext, - context->codec_id, (guint8 *) context->codec_priv, - context->codec_priv_size, &codec, &riff_fourcc); - - if (codec) { - list = gst_tag_list_new (); - gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, - GST_TAG_VIDEO_CODEC, codec, NULL); - g_free (codec); - } - break; - } - - case GST_MATROSKA_TRACK_TYPE_AUDIO:{ - GstMatroskaTrackAudioContext *audiocontext = - (GstMatroskaTrackAudioContext *) context; - - padname = g_strdup_printf ("audio_%02d", demux->num_a_streams++); - templ = gst_element_class_get_pad_template (klass, "audio_%02d"); - caps = gst_matroska_demux_audio_caps (audiocontext, - context->codec_id, context->codec_priv, context->codec_priv_size, - &codec, &riff_audio_fmt); - - if (codec) { - list = gst_tag_list_new (); - gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, - GST_TAG_AUDIO_CODEC, codec, NULL); - g_free (codec); - } - break; - } - - case GST_MATROSKA_TRACK_TYPE_SUBTITLE:{ - GstMatroskaTrackSubtitleContext *subtitlecontext = - (GstMatroskaTrackSubtitleContext *) context; - - padname = g_strdup_printf ("subtitle_%02d", demux->num_t_streams++); - templ = gst_element_class_get_pad_template (klass, "subtitle_%02d"); - caps = gst_matroska_demux_subtitle_caps (subtitlecontext, - context->codec_id, context->codec_priv, context->codec_priv_size); - break; - } - - case GST_MATROSKA_TRACK_TYPE_COMPLEX: - case GST_MATROSKA_TRACK_TYPE_LOGO: - case GST_MATROSKA_TRACK_TYPE_BUTTONS: - case GST_MATROSKA_TRACK_TYPE_CONTROL: - default: - /* we should already have quit by now */ - g_assert_not_reached (); - } - - if ((context->language == NULL || *context->language == '\0') && - (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO || - context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)) { - GST_LOG ("stream %d: language=eng (assuming default)", context->index); - context->language = g_strdup ("eng"); - } - - if (context->language) { - const gchar *lang; - - if (!list) - list = gst_tag_list_new (); - - /* Matroska contains ISO 639-2B codes, we want ISO 639-1 */ - lang = gst_tag_get_language_code (context->language); - gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, - GST_TAG_LANGUAGE_CODE, (lang) ? lang : context->language, NULL); - } - - if (caps == NULL) { - GST_WARNING_OBJECT (demux, "could not determine caps for stream with " - "codec_id='%s'", context->codec_id); - switch (context->type) { - case GST_MATROSKA_TRACK_TYPE_VIDEO: - caps = gst_caps_new_simple ("video/x-unknown", NULL); - break; - case GST_MATROSKA_TRACK_TYPE_AUDIO: - caps = gst_caps_new_simple ("audio/x-unknown", NULL); - break; - case GST_MATROSKA_TRACK_TYPE_SUBTITLE: - caps = gst_caps_new_simple ("application/x-subtitle-unknown", NULL); - break; - case GST_MATROSKA_TRACK_TYPE_COMPLEX: - default: - caps = gst_caps_new_simple ("application/x-matroska-unknown", NULL); - break; - } - gst_caps_set_simple (caps, "codec-id", G_TYPE_STRING, context->codec_id, - NULL); - - /* add any unrecognised riff fourcc / audio format, but after codec-id */ - if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO && riff_audio_fmt != 0) - gst_caps_set_simple (caps, "format", G_TYPE_INT, riff_audio_fmt, NULL); - else if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO && riff_fourcc != 0) - gst_caps_set_simple (caps, "fourcc", GST_TYPE_FOURCC, riff_fourcc, NULL); - } - - /* the pad in here */ - context->pad = gst_pad_new_from_template (templ, padname); - context->caps = caps; - - gst_pad_set_event_function (context->pad, - GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_event)); - gst_pad_set_query_type_function (context->pad, - GST_DEBUG_FUNCPTR (gst_matroska_demux_get_src_query_types)); - gst_pad_set_query_function (context->pad, - GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_query)); - - GST_INFO_OBJECT (demux, "Adding pad '%s' with caps %" GST_PTR_FORMAT, - padname, caps); - - context->pending_tags = list; - - gst_pad_set_element_private (context->pad, context); - - gst_pad_use_fixed_caps (context->pad); - gst_pad_set_caps (context->pad, context->caps); - gst_pad_set_active (context->pad, TRUE); - gst_element_add_pad (GST_ELEMENT (demux), context->pad); - - g_free (padname); - -#ifdef MKVDEMUX_MODIFICATION - if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO) - demux->audio_stream = context; - if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - demux->video = TRUE; -#endif - - /* tadaah! */ - return ret; -} - -static const GstQueryType * -gst_matroska_demux_get_src_query_types (GstPad * pad) -{ - static const GstQueryType query_types[] = { - GST_QUERY_POSITION, - GST_QUERY_DURATION, - GST_QUERY_SEEKING, - 0 - }; - - return query_types; -} - -static gboolean -gst_matroska_demux_query (GstMatroskaDemux * demux, GstPad * pad, - GstQuery * query) -{ - gboolean res = FALSE; - GstMatroskaTrackContext *context = NULL; - - if (pad) { - context = gst_pad_get_element_private (pad); - } - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_POSITION: - { - GstFormat format; - - gst_query_parse_position (query, &format, NULL); - - if (format == GST_FORMAT_TIME) { - GST_OBJECT_LOCK (demux); - if (context) - gst_query_set_position (query, GST_FORMAT_TIME, context->pos); - else - gst_query_set_position (query, GST_FORMAT_TIME, - demux->segment.last_stop); - GST_OBJECT_UNLOCK (demux); - } else if (format == GST_FORMAT_DEFAULT && context - && context->default_duration) { - GST_OBJECT_LOCK (demux); - gst_query_set_position (query, GST_FORMAT_DEFAULT, - context->pos / context->default_duration); - GST_OBJECT_UNLOCK (demux); - } else { - GST_DEBUG_OBJECT (demux, - "only position query in TIME and DEFAULT format is supported"); - } - - res = TRUE; - break; - } - case GST_QUERY_DURATION: - { - GstFormat format; - - gst_query_parse_duration (query, &format, NULL); - - if (format == GST_FORMAT_TIME) { - GST_OBJECT_LOCK (demux); - gst_query_set_duration (query, GST_FORMAT_TIME, - demux->segment.duration); - GST_OBJECT_UNLOCK (demux); - } else if (format == GST_FORMAT_DEFAULT && context - && context->default_duration) { - GST_OBJECT_LOCK (demux); - gst_query_set_duration (query, GST_FORMAT_DEFAULT, - demux->segment.duration / context->default_duration); - GST_OBJECT_UNLOCK (demux); - } else { - GST_DEBUG_OBJECT (demux, - "only duration query in TIME and DEFAULT format is supported"); - } - - res = TRUE; - break; - } - - case GST_QUERY_SEEKING: - { - GstFormat fmt; - - gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); - if (fmt == GST_FORMAT_TIME) { - gboolean seekable; - - if (demux->streaming) { - /* assuming we'll be able to get an index ... */ - seekable = demux->seekable; - } else { - seekable = ! !demux->index; - } - - gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, - 0, demux->segment.duration); - res = TRUE; - } - break; - } - default: - res = gst_pad_query_default (pad, query); - break; - } - - return res; -} - -static gboolean -gst_matroska_demux_element_query (GstElement * element, GstQuery * query) -{ - return gst_matroska_demux_query (GST_MATROSKA_DEMUX (element), NULL, query); -} - -static gboolean -gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query) -{ - gboolean ret; - GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (gst_pad_get_parent (pad)); - - ret = gst_matroska_demux_query (demux, pad, query); - - gst_object_unref (demux); - - return ret; -} - -static gint -gst_matroska_index_seek_find (GstMatroskaIndex * i1, GstClockTime * time, - gpointer user_data) -{ - if (i1->time < *time) - return -1; - else if (i1->time > *time) - return 1; - else - return 0; -} - -static GstMatroskaIndex * -gst_matroskademux_do_index_seek (GstMatroskaDemux * demux, - GstMatroskaTrackContext * track, gint64 seek_pos, gint64 segment_stop, - gboolean keyunit) -{ - GstMatroskaIndex *entry = NULL; - GArray *index; - - if (!demux->index || !demux->index->len) - return NULL; - - /* find entry just before or at the requested position */ - if (track && track->index_table) - index = track->index_table; - else - index = demux->index; - - entry = - gst_util_array_binary_search (index->data, index->len, - sizeof (GstMatroskaIndex), - (GCompareDataFunc) gst_matroska_index_seek_find, GST_SEARCH_MODE_BEFORE, - &seek_pos, NULL); - - if (entry == NULL) - entry = &g_array_index (index, GstMatroskaIndex, 0); - - return entry; -} - -/* takes ownership of taglist */ -static void -gst_matroska_demux_found_global_tag (GstMatroskaDemux * demux, - GstTagList * taglist) -{ - if (demux->global_tags) { - /* nothing sent yet, add to cache */ - gst_tag_list_insert (demux->global_tags, taglist, GST_TAG_MERGE_APPEND); - gst_tag_list_free (taglist); - } else { - /* hm, already sent, no need to cache and wait anymore */ - GST_DEBUG_OBJECT (demux, "Sending late global tags %" GST_PTR_FORMAT, - taglist); - gst_element_found_tags (GST_ELEMENT (demux), taglist); - } -} - -/* returns FALSE if there are no pads to deliver event to, - * otherwise TRUE (whatever the outcome of event sending), - * takes ownership of the passed event! */ -static gboolean -gst_matroska_demux_send_event (GstMatroskaDemux * demux, GstEvent * event) -{ - gboolean is_newsegment; - gboolean ret = FALSE; - gint i; - - g_return_val_if_fail (event != NULL, FALSE); - - GST_INFO_OBJECT (demux, "Sending event of type %s to all source pads", - GST_EVENT_TYPE_NAME (event)); - - is_newsegment = (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT); - - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *stream; - - stream = g_ptr_array_index (demux->src, i); - gst_event_ref (event); - gst_pad_push_event (stream->pad, event); - ret = TRUE; - - /* FIXME: send global tags before stream tags */ - if (G_UNLIKELY (is_newsegment && stream->pending_tags != NULL)) { - GST_DEBUG_OBJECT (demux, "Sending pending_tags %p for pad %s:%s : %" - GST_PTR_FORMAT, stream->pending_tags, - GST_DEBUG_PAD_NAME (stream->pad), stream->pending_tags); - gst_element_found_tags_for_pad (GST_ELEMENT (demux), stream->pad, - stream->pending_tags); - stream->pending_tags = NULL; - } - } - - if (G_UNLIKELY (is_newsegment && demux->global_tags != NULL)) { - gst_tag_list_add (demux->global_tags, GST_TAG_MERGE_REPLACE, - GST_TAG_CONTAINER_FORMAT, "Matroska", NULL); - GST_DEBUG_OBJECT (demux, "Sending global_tags %p : %" GST_PTR_FORMAT, - demux->global_tags, demux->global_tags); - gst_element_found_tags (GST_ELEMENT (demux), demux->global_tags); - demux->global_tags = NULL; - } - - gst_event_unref (event); - return ret; -} - -static gboolean -gst_matroska_demux_element_send_event (GstElement * element, GstEvent * event) -{ - GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (element); - gboolean res; - - g_return_val_if_fail (event != NULL, FALSE); - - if (GST_EVENT_TYPE (event) == GST_EVENT_SEEK) { - res = gst_matroska_demux_handle_seek_event (demux, NULL, event); - } else { - GST_WARNING_OBJECT (demux, "Unhandled event of type %s", - GST_EVENT_TYPE_NAME (event)); - res = FALSE; - } - gst_event_unref (event); - return res; -} - -#ifdef MKVDEMUX_MODIFICATION -static GstMatroskaIndex * -gst_matroskademux_get_next_index (GstMatroskaDemux * demux, GstMatroskaTrackContext * track, GstMatroskaIndex *entry) -{ - - int i =0; - GArray *index; - GstMatroskaIndex *tmp = NULL; - - /* find entry just before or at the requested position */ - if (track && track->index_table) - index = track->index_table; - else - index = demux->index; - - for (i=0; i < index->len; i++) - { - tmp = &g_array_index (index, GstMatroskaIndex, i); - if ((tmp->time == entry->time) && (tmp->pos == entry->pos)) - { - if ((index->len - i) == 1) - { - GST_DEBUG_OBJECT (demux, "entry found in last index...returning last index"); - } - else - { - GST_DEBUG_OBJECT (demux, "Found entry at index = %d"); - i = i+1; - tmp = &g_array_index (index, GstMatroskaIndex, i); - } - return tmp; - } - } - return NULL; -} -#endif - -/* determine track to seek in */ -static GstMatroskaTrackContext * -gst_matroska_demux_get_seek_track (GstMatroskaDemux * demux, - GstMatroskaTrackContext * track) -{ - gint i; - - if (track && track->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - return track; - - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *stream; - - stream = g_ptr_array_index (demux->src, i); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && stream->index_table) - track = stream; - } - - return track; -} - -static void -gst_matroska_demux_reset_streams (GstMatroskaDemux * demux, GstClockTime time, - gboolean full) -{ - gint i; - - GST_DEBUG_OBJECT (demux, "resetting stream state"); - - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); - context->pos = time; - context->set_discont = TRUE; - context->eos = FALSE; - context->from_time = GST_CLOCK_TIME_NONE; -#ifdef MKVDEMUX_MODIFICATION - context->found_next_kframe = FALSE; - context->num_frames_bw_keyframes = 0; - context->avg_duration_bw_keyframes = GST_CLOCK_TIME_NONE; - context->frames_to_show_bw_keyframes = 0; - context->prev_kframe_timestamp = GST_CLOCK_TIME_NONE; - context->next_kframe_timestamp = GST_CLOCK_TIME_NONE; - context->last_ts = GST_CLOCK_TIME_NONE; -#endif - if (full) - context->last_flow = GST_FLOW_OK; - if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { - GstMatroskaTrackVideoContext *videocontext = - (GstMatroskaTrackVideoContext *) context; - /* demux object lock held by caller */ - videocontext->earliest_time = GST_CLOCK_TIME_NONE; - } - } -} - -static gboolean -gst_matroska_demux_move_to_entry (GstMatroskaDemux * demux, - GstMatroskaIndex * entry, gboolean reset) -{ - gint i; - - GST_OBJECT_LOCK (demux); - - /* seek (relative to matroska segment) */ - /* position might be invalid; will error when streaming resumes ... */ - demux->offset = entry->pos + demux->ebml_segment_start; - - GST_DEBUG_OBJECT (demux, "Seeked to offset %" G_GUINT64_FORMAT ", block %d, " - "time %" GST_TIME_FORMAT, entry->pos + demux->ebml_segment_start, - entry->block, GST_TIME_ARGS (entry->time)); - - /* update the time */ - gst_matroska_demux_reset_streams (demux, entry->time, TRUE); - demux->segment.last_stop = entry->time; - demux->seek_block = entry->block; - demux->seek_first = TRUE; - demux->last_stop_end = GST_CLOCK_TIME_NONE; - - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); - - if (reset) { - stream->to_offset = G_MAXINT64; - } else { - if (stream->from_offset != -1) - stream->to_offset = stream->from_offset; - } - stream->from_offset = -1; - } - - GST_OBJECT_UNLOCK (demux); - - return TRUE; -} - -static gint -gst_matroska_cluster_compare (gint64 * i1, gint64 * i2) -{ - if (*i1 < *i2) - return -1; - else if (*i1 > *i2) - return 1; - else - return 0; -} - -/* searches for a cluster start from @pos, - * return GST_FLOW_OK and cluster position in @pos if found */ -static GstFlowReturn -gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos) -{ - gint64 newpos = *pos; - gint64 orig_offset; - GstFlowReturn ret = GST_FLOW_OK; - const guint chunk = 64 * 1024; - GstBuffer *buf = NULL; - guint64 length; - guint32 id; - guint needed; - - orig_offset = demux->offset; - - GST_LOG_OBJECT (demux, "searching cluster following offset %" G_GINT64_FORMAT, - *pos); - - if (demux->clusters) { - gint64 *cpos; - - cpos = gst_util_array_binary_search (demux->clusters->data, - demux->clusters->len, sizeof (gint64), - (GCompareDataFunc) gst_matroska_cluster_compare, - GST_SEARCH_MODE_AFTER, pos, NULL); - /* sanity check */ - if (cpos) { - GST_DEBUG_OBJECT (demux, - "cluster reported at offset %" G_GINT64_FORMAT, *cpos); - demux->offset = *cpos; - ret = - gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); - if (ret == GST_FLOW_OK && id == GST_MATROSKA_ID_CLUSTER) { - newpos = *cpos; - goto exit; - } - } - } - - /* read in at newpos and scan for ebml cluster id */ - while (1) { - GstByteReader reader; - gint cluster_pos; - - ret = gst_pad_pull_range (demux->sinkpad, newpos, chunk, &buf); - if (ret != GST_FLOW_OK) - break; - GST_DEBUG_OBJECT (demux, "read buffer size %d at offset %" G_GINT64_FORMAT, - GST_BUFFER_SIZE (buf), newpos); - gst_byte_reader_init_from_buffer (&reader, buf); - resume: - cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, - GST_MATROSKA_ID_CLUSTER, 0, gst_byte_reader_get_remaining (&reader)); - if (cluster_pos >= 0) { - newpos += cluster_pos; - /* prepare resuming at next byte */ - gst_byte_reader_skip (&reader, cluster_pos + 1); - GST_DEBUG_OBJECT (demux, - "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos); - /* extra checks whether we really sync'ed to a cluster: - * - either it is the first and only cluster - * - either there is a cluster after this one - * - either cluster length is undefined - */ - /* ok if first cluster (there may not a subsequent one) */ - if (newpos == demux->first_cluster_offset) { - GST_DEBUG_OBJECT (demux, "cluster is first cluster -> OK"); - break; - } - demux->offset = newpos; - ret = - gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); - if (ret != GST_FLOW_OK) - goto resume; - g_assert (id == GST_MATROSKA_ID_CLUSTER); - GST_DEBUG_OBJECT (demux, "cluster size %" G_GUINT64_FORMAT ", prefix %d", - length, needed); - /* ok if undefined length or first cluster */ - if (length == G_MAXUINT64) { - GST_DEBUG_OBJECT (demux, "cluster has undefined length -> OK"); - break; - } - /* skip cluster */ - demux->offset += length + needed; - ret = - gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); - if (ret != GST_FLOW_OK) - goto resume; - GST_DEBUG_OBJECT (demux, "next element is %scluster", - id == GST_MATROSKA_ID_CLUSTER ? "" : "not "); - if (id == GST_MATROSKA_ID_CLUSTER) - break; - /* not ok, resume */ - goto resume; - } else { - /* partial cluster id may have been in tail of buffer */ - newpos += MAX (gst_byte_reader_get_remaining (&reader), 4) - 3; - gst_buffer_unref (buf); - buf = NULL; - } - } - - if (buf) { - gst_buffer_unref (buf); - buf = NULL; - } - -exit: - demux->offset = orig_offset; - *pos = newpos; - return ret; -} - -/* bisect and scan through file for cluster starting before @time, - * returns fake index entry with corresponding info on cluster */ -static GstMatroskaIndex * -gst_matroska_demux_search_pos (GstMatroskaDemux * demux, GstClockTime time) -{ - GstMatroskaIndex *entry = NULL; - GstMatroskaDemuxState current_state; - GstClockTime otime, prev_cluster_time, current_cluster_time, cluster_time; - gint64 opos, newpos, startpos = 0, current_offset; - gint64 prev_cluster_offset = -1, current_cluster_offset, cluster_offset; - const guint chunk = 64 * 1024; - GstBuffer *buf = NULL; - GstFlowReturn ret; - guint64 length; - guint32 id; - guint needed; - - /* (under)estimate new position, resync using cluster ebml id, - * and scan forward to appropriate cluster - * (and re-estimate if need to go backward) */ - - prev_cluster_time = GST_CLOCK_TIME_NONE; - - /* store some current state */ - current_state = demux->state; - g_return_val_if_fail (current_state == GST_MATROSKA_DEMUX_STATE_DATA, NULL); - - current_cluster_offset = demux->cluster_offset; - current_cluster_time = demux->cluster_time; - current_offset = demux->offset; - - demux->state = GST_MATROSKA_DEMUX_STATE_SCANNING; - - /* estimate using start and current position */ - opos = demux->offset - demux->ebml_segment_start; - otime = demux->segment.last_stop; - -retry: - GST_LOG_OBJECT (demux, - "opos: %" G_GUINT64_FORMAT ", otime: %" GST_TIME_FORMAT, opos, - GST_TIME_ARGS (otime)); - newpos = gst_util_uint64_scale (opos, time, otime) - chunk; - if (newpos < 0) - newpos = 0; - /* favour undershoot */ - newpos = newpos * 90 / 100; - newpos += demux->ebml_segment_start; - - GST_DEBUG_OBJECT (demux, - "estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT, - GST_TIME_ARGS (time), newpos); - - /* and at least start scanning before previous scan start to avoid looping */ - startpos = startpos * 90 / 100; - if (startpos && startpos < newpos) - newpos = startpos; - - /* read in at newpos and scan for ebml cluster id */ - startpos = newpos; - while (1) { - - ret = gst_matroska_demux_search_cluster (demux, &newpos); - if (ret == GST_FLOW_UNEXPECTED) { - /* heuristic HACK */ - newpos = startpos * 80 / 100; - GST_DEBUG_OBJECT (demux, "EOS; " - "new estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT, - GST_TIME_ARGS (time), newpos); - startpos = newpos; - continue; - } else if (ret != GST_FLOW_OK) { - goto exit; - } else { - break; - } - } - - /* then start scanning and parsing for cluster time, - * re-estimate if overshoot, otherwise next cluster and so on */ - demux->offset = newpos; - demux->cluster_time = cluster_time = GST_CLOCK_TIME_NONE; - while (1) { - guint64 cluster_size = 0; - - /* peek and parse some elements */ - ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); - if (ret != GST_FLOW_OK) - goto error; - GST_LOG_OBJECT (demux, "Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " - "size %" G_GUINT64_FORMAT ", needed %d", demux->offset, id, - length, needed); - ret = gst_matroska_demux_parse_id (demux, id, length, needed); - if (ret != GST_FLOW_OK) - goto error; - - if (id == GST_MATROSKA_ID_CLUSTER) { - cluster_time = GST_CLOCK_TIME_NONE; - if (length == G_MAXUINT64) - cluster_size = 0; - else - cluster_size = length + needed; - } - if (demux->cluster_time != GST_CLOCK_TIME_NONE && - cluster_time == GST_CLOCK_TIME_NONE) { - cluster_time = demux->cluster_time * demux->time_scale; - cluster_offset = demux->cluster_offset; - GST_DEBUG_OBJECT (demux, "found cluster at offset %" G_GINT64_FORMAT - " with time %" GST_TIME_FORMAT, cluster_offset, - GST_TIME_ARGS (cluster_time)); - if (cluster_time > time) { - GST_DEBUG_OBJECT (demux, "overshot target"); - /* cluster overshoots */ - if (cluster_offset == demux->first_cluster_offset) { - /* but no prev one */ - GST_DEBUG_OBJECT (demux, "but using first cluster anyway"); - prev_cluster_time = cluster_time; - prev_cluster_offset = cluster_offset; - break; - } - if (prev_cluster_time != GST_CLOCK_TIME_NONE) { - /* prev cluster did not overshoot, so prev cluster is target */ - break; - } else { - /* re-estimate using this new position info */ - opos = cluster_offset; - otime = cluster_time; - goto retry; - } - } else { - /* cluster undershoots, goto next one */ - prev_cluster_time = cluster_time; - prev_cluster_offset = cluster_offset; - /* skip cluster if length is defined, - * otherwise will be skippingly parsed into */ - if (cluster_size) { - GST_DEBUG_OBJECT (demux, "skipping to next cluster"); - demux->offset = cluster_offset + cluster_size; - demux->cluster_time = GST_CLOCK_TIME_NONE; - } else { - GST_DEBUG_OBJECT (demux, "parsing/skipping cluster elements"); - } - } - } - continue; - - error: - if (ret == GST_FLOW_UNEXPECTED) { - if (prev_cluster_time != GST_CLOCK_TIME_NONE) - break; - } - goto exit; - } - - entry = g_new0 (GstMatroskaIndex, 1); - entry->time = prev_cluster_time; - entry->pos = prev_cluster_offset - demux->ebml_segment_start; - GST_DEBUG_OBJECT (demux, "simulated index entry; time %" GST_TIME_FORMAT - ", pos %" G_GUINT64_FORMAT, GST_TIME_ARGS (entry->time), entry->pos); - -exit: - if (buf) - gst_buffer_unref (buf); - - /* restore some state */ - demux->cluster_offset = current_cluster_offset; - demux->cluster_time = current_cluster_time; - demux->offset = current_offset; - demux->state = current_state; - - return entry; -} - -static gboolean -gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux, - GstPad * pad, GstEvent * event) -{ - GstMatroskaIndex *entry = NULL; - GstMatroskaIndex scan_entry; -#ifdef MKVDEMUX_MODIFICATION - GstMatroskaIndex *next_entry = NULL; -#endif - GstSeekFlags flags; - GstSeekType cur_type, stop_type; - GstFormat format; - gboolean flush, keyunit; - gdouble rate; - gint64 cur, stop; - gint i; - GstMatroskaTrackContext *track = NULL; - GstSegment seeksegment = { 0, }; - gboolean update; - guint64 offset; - - if (pad) - track = gst_pad_get_element_private (pad); - - //track = gst_matroska_demux_get_seek_track (demux, track); - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, - &stop_type, &stop); - - /* we can only seek on time */ - if (format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (demux, "Can only seek on TIME"); - return FALSE; - } - -#ifndef MKVDEMUX_MODIFICATION - /* cannot yet do backwards playback */ - if (rate <= 0.0) { - GST_DEBUG_OBJECT (demux, "Can only seek with positive rate"); - return FALSE; - } -#endif - /* copy segment, we need this because we still need the old - * segment when we close the current segment. */ - memcpy (&seeksegment, &demux->segment, sizeof (GstSegment)); - - if (event) { - GST_DEBUG_OBJECT (demux, "configuring seek"); - gst_segment_set_seek (&seeksegment, rate, format, flags, - cur_type, cur, stop_type, stop, &update); - } - - GST_INFO_OBJECT (demux, "New segment %" GST_SEGMENT_FORMAT, &seeksegment); - - /* check sanity before we start flushing and all that */ - GST_OBJECT_LOCK (demux); - - if ((entry = - gst_matroskademux_do_index_seek (demux, track, - seeksegment.last_stop, -1, FALSE)) == NULL) { - /* pull mode without index can scan later on */ - - GST_INFO_OBJECT (demux, "No matching seek entry in index"); - GST_OBJECT_UNLOCK (demux); - return FALSE; - } -#ifdef MKVDEMUX_MODIFICATION - if (seeksegment.rate < 0.0) - { - next_entry = gst_matroskademux_get_next_index (demux, track, entry); - if (next_entry == NULL) - { - GST_ERROR ("Entry Not found...."); - return FALSE; - } - } -#endif - GST_DEBUG_OBJECT (demux, "Seek position looks sane"); - GST_OBJECT_UNLOCK (demux); - - if (demux->streaming) { - /* need to seek to cluster start to pick up cluster time */ - /* upstream takes care of flushing and all that - * ... and newsegment event handling takes care of the rest */ - return perform_seek_to_offset (demux, - entry->pos + demux->ebml_segment_start); - } - - flush = ! !(flags & GST_SEEK_FLAG_FLUSH); - keyunit = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); - -#ifdef MKVDEMUX_MODIFICATION - keyunit = TRUE;//intentionally making it as true -#endif - - if (flush) { - gst_pad_push_event (demux->sinkpad, gst_event_new_flush_start ()); - gst_matroska_demux_send_event (demux, gst_event_new_flush_start ()); - } else { - gst_pad_pause_task (demux->sinkpad); - } - - /* now grab the stream lock so that streaming cannot continue, for - * non flushing seeks when the element is in PAUSED this could block - * forever. */ - GST_INFO_OBJECT (demux, "Waiting for streaming to stop"); - GST_PAD_STREAM_LOCK (demux->sinkpad); - - if (!demux->streaming && !demux->index) - { - - - GST_OBJECT_LOCK (demux); - - offset = entry->pos + demux->ebml_segment_start; - if (offset >= gst_matroska_demux_get_length(demux)) - { - GST_INFO_OBJECT (demux, " Seek failed"); - goto seek_error; - } - demux->offset = offset; - - GST_OBJECT_UNLOCK (demux); - - } - - if (keyunit) { - GST_INFO_OBJECT (demux, "seek to key unit, adjusting segment start to %" - GST_TIME_FORMAT, GST_TIME_ARGS (entry->time)); -#ifdef MKVDEMUX_MODIFICATION - if (seeksegment.stop == -1) - { - seeksegment.stop = seeksegment.duration; - } - if (seeksegment.rate > 0.0) - { -#endif - seeksegment.start = entry->time; - seeksegment.last_stop = entry->time; - seeksegment.time = entry->time; -#ifdef MKVDEMUX_MODIFICATION - } - else if (seeksegment.rate < 0.0) /* Reverse trick play */ - { - seeksegment.start = 0.0; - seeksegment.stop = next_entry->time; - seeksegment.last_stop = next_entry->time; - seeksegment.time = 0.0; - } -#endif - } - - - - if (flush) { - GST_DEBUG_OBJECT (demux, "Stopping flush"); - gst_pad_push_event (demux->sinkpad, gst_event_new_flush_stop ()); - gst_matroska_demux_send_event (demux, gst_event_new_flush_stop ()); - } else if (demux->segment_running) { - GST_DEBUG_OBJECT (demux, "Closing currently running segment"); - - GST_OBJECT_LOCK (demux); - if (demux->close_segment) - gst_event_unref (demux->close_segment); - - demux->close_segment = gst_event_new_new_segment (TRUE, - demux->segment.rate, GST_FORMAT_TIME, demux->segment.start, - demux->segment.last_stop, demux->segment.time); - GST_OBJECT_UNLOCK (demux); - } - - GST_OBJECT_LOCK (demux); - /* now update the real segment info */ - memcpy (&demux->segment, &seeksegment, sizeof (GstSegment)); - GST_OBJECT_UNLOCK (demux); - - /* update some (segment) state */ - if (!gst_matroska_demux_move_to_entry (demux, entry, TRUE)) - goto seek_error; - - /* notify start of new segment */ - if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) { - GstMessage *msg; - - msg = gst_message_new_segment_start (GST_OBJECT (demux), - GST_FORMAT_TIME, demux->segment.start); - gst_element_post_message (GST_ELEMENT (demux), msg); - } - - GST_OBJECT_LOCK (demux); - if (demux->new_segment) - gst_event_unref (demux->new_segment); -#ifdef MKVDEMUX_MODIFICATION - if (demux->segment.rate > 0.0) - { -#endif - demux->new_segment = gst_event_new_new_segment_full (FALSE, - demux->segment.rate, demux->segment.applied_rate, demux->segment.format, - demux->segment.last_stop, demux->segment.stop, demux->segment.time); -#ifdef MKVDEMUX_MODIFICATION - } - else if (demux->segment.rate < 0.0) - { - /* Reverse trick play */ - demux->new_segment = gst_event_new_new_segment_full (FALSE, - demux->segment.rate, demux->segment.applied_rate, demux->segment.format, - demux->segment.start, demux->segment.last_stop, demux->segment.time); - } -#endif - GST_OBJECT_UNLOCK (demux); - - /* update the time */ - g_assert (demux->src->len == demux->num_streams); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); - context->pos = entry->time; - context->set_discont = TRUE; - context->last_flow = GST_FLOW_OK; - context->eos = FALSE; - } -#ifdef MKVDEMUX_MODIFICATION - if (demux->segment.rate > 0.0) - { -#endif - demux->segment.last_stop = entry->time; -#ifdef MKVDEMUX_MODIFICATION - } - else if (demux->segment.rate < 0.0) - { - demux->segment.last_stop = next_entry->time; - } - #endif - demux->seek_block = entry->block; - demux->last_stop_end = GST_CLOCK_TIME_NONE; - - /* restart our task since it might have been stopped when we did the - * flush. */ - demux->segment_running = TRUE; - gst_pad_start_task (demux->sinkpad, (GstTaskFunction) gst_matroska_demux_loop, - demux->sinkpad); - -#ifdef MKVDEMUX_MODIFICATION - track->found_key_frame = FALSE; - track->intra_gap = 0; - while (!g_queue_is_empty (track->queue)) { - GstBuffer* buf = g_queue_pop_head (track->queue); - gst_buffer_unref (buf); - } -#endif - - /* streaming can continue now */ - GST_PAD_STREAM_UNLOCK (demux->sinkpad); - - return TRUE; - -seek_error: - { - GST_PAD_STREAM_UNLOCK (demux->sinkpad); - GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), ("Got a seek error")); - return FALSE; - } -} - -/* - * Handle whether we can perform the seek event or if we have to let the chain - * function handle seeks to build the seek indexes first. - */ -static gboolean -gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, GstPad * pad, - GstEvent * event) -{ - GstSeekFlags flags; - GstSeekType cur_type, stop_type; - GstFormat format; - gdouble rate; - gint64 cur, stop; - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, - &stop_type, &stop); - - /* sanity checks */ - - /* we can only seek on time */ - if (format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (demux, "Can only seek on TIME"); - return FALSE; - } - - if (stop_type != GST_SEEK_TYPE_NONE && stop != GST_CLOCK_TIME_NONE) { - GST_DEBUG_OBJECT (demux, "Seek end-time not supported in streaming mode"); - return FALSE; - } - - if (!(flags & GST_SEEK_FLAG_FLUSH)) { - GST_DEBUG_OBJECT (demux, - "Non-flushing seek not supported in streaming mode"); - return FALSE; - } - - if (flags & GST_SEEK_FLAG_SEGMENT) { - GST_DEBUG_OBJECT (demux, "Segment seek not supported in streaming mode"); - return FALSE; - } - - /* check for having parsed index already */ - if (!demux->index_parsed) { - gboolean building_index; - guint64 offset = 0; - - if (!demux->index_offset) { - GST_DEBUG_OBJECT (demux, "no index (location); no seek in push mode"); - return FALSE; - } - - GST_OBJECT_LOCK (demux); - /* handle the seek event in the chain function */ - demux->state = GST_MATROSKA_DEMUX_STATE_SEEK; - /* no more seek can be issued until state reset to _DATA */ - - /* copy the event */ - if (demux->seek_event) - gst_event_unref (demux->seek_event); - demux->seek_event = gst_event_ref (event); - - /* set the building_index flag so that only one thread can setup the - * structures for index seeking. */ - building_index = demux->building_index; - if (!building_index) { - demux->building_index = TRUE; - offset = demux->index_offset; - } - GST_OBJECT_UNLOCK (demux); - - if (!building_index) { - /* seek to the first subindex or legacy index */ - GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset); - return perform_seek_to_offset (demux, offset); - } - - /* well, we are handling it already */ - return TRUE; - } - - /* delegate to tweaked regular seek */ - return gst_matroska_demux_handle_seek_event (demux, pad, event); -} - -static gboolean -gst_matroska_demux_handle_src_event (GstPad * pad, GstEvent * event) -{ - GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (gst_pad_get_parent (pad)); - gboolean res = TRUE; - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_SEEK: - /* no seeking until we are (safely) ready */ - if (demux->state != GST_MATROSKA_DEMUX_STATE_DATA) { - GST_DEBUG_OBJECT (demux, "not ready for seeking yet"); - return FALSE; - } - if (!demux->streaming) - res = gst_matroska_demux_handle_seek_event (demux, pad, event); - else - res = gst_matroska_demux_handle_seek_push (demux, pad, event); - gst_event_unref (event); - break; - - case GST_EVENT_QOS: - { - GstMatroskaTrackContext *context = gst_pad_get_element_private (pad); - if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { - GstMatroskaTrackVideoContext *videocontext = - (GstMatroskaTrackVideoContext *) context; - gdouble proportion; - GstClockTimeDiff diff; - GstClockTime timestamp; - - gst_event_parse_qos (event, &proportion, &diff, ×tamp); - - GST_OBJECT_LOCK (demux); - videocontext->earliest_time = timestamp + diff; - GST_OBJECT_UNLOCK (demux); + GST_DEBUG_OBJECT (demux, "TrackTimeCodeScale: %lf", num); + context->timecodescale = num; + break; } - res = TRUE; - gst_event_unref (event); - break; - } - - /* events we don't need to handle */ - case GST_EVENT_NAVIGATION: - gst_event_unref (event); - res = FALSE; - break; - - case GST_EVENT_LATENCY: - default: - res = gst_pad_push_event (demux->sinkpad, event); - break; - } - - gst_object_unref (demux); - - return res; -} - -static GstFlowReturn -gst_matroska_demux_seek_to_previous_keyframe (GstMatroskaDemux * demux) -{ - GstFlowReturn ret = GST_FLOW_UNEXPECTED; - gboolean done = TRUE; - gint i; - - g_return_val_if_fail (demux->seek_index, GST_FLOW_UNEXPECTED); - g_return_val_if_fail (demux->seek_entry < demux->seek_index->len, - GST_FLOW_UNEXPECTED); - GST_DEBUG_OBJECT (demux, "locating previous keyframe"); + default: + GST_WARNING ("Unknown TrackEntry subelement 0x%x - ignoring", id); + /* pass-through */ - if (!demux->seek_entry) { - GST_DEBUG_OBJECT (demux, "no earlier index entry"); - goto exit; + /* we ignore these because they're nothing useful (i.e. crap) + * or simply not implemented yet. */ + case GST_MATROSKA_ID_TRACKMINCACHE: + case GST_MATROSKA_ID_TRACKMAXCACHE: + case GST_MATROSKA_ID_MAXBLOCKADDITIONID: + case GST_MATROSKA_ID_TRACKATTACHMENTLINK: + case GST_MATROSKA_ID_TRACKOVERLAY: + case GST_MATROSKA_ID_TRACKTRANSLATE: + case GST_MATROSKA_ID_TRACKOFFSET: + case GST_MATROSKA_ID_CODECSETTINGS: + case GST_MATROSKA_ID_CODECINFOURL: + case GST_MATROSKA_ID_CODECDOWNLOADURL: + case GST_MATROSKA_ID_CODECDECODEALL: + ret = gst_ebml_read_skip (ebml); + break; + } } - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); + DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret); - GST_DEBUG_OBJECT (demux, "segment start %" GST_TIME_FORMAT - ", stream %d at %" GST_TIME_FORMAT, - GST_TIME_ARGS (demux->segment.start), stream->index, - GST_TIME_ARGS (stream->from_time)); - if (GST_CLOCK_TIME_IS_VALID (stream->from_time)) { - if (stream->from_time > demux->segment.start) { - GST_DEBUG_OBJECT (demux, "stream %d not finished yet", stream->index); - done = FALSE; - } - } else { - /* nothing pushed for this stream; - * likely seek entry did not start at keyframe, so all was skipped. - * So we need an earlier entry */ - done = FALSE; + /* Decode codec private data if necessary */ + if (context->encodings && context->encodings->len > 0 && context->codec_priv + && context->codec_priv_size > 0) { + if (!gst_matroska_decode_data (context->encodings, + &context->codec_priv, &context->codec_priv_size, + GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA, TRUE)) { + GST_WARNING_OBJECT (demux, "Decoding codec private data failed"); + ret = GST_FLOW_ERROR; } } - if (!done) { - GstMatroskaIndex *entry; + if (context->type == 0 || context->codec_id == NULL || (ret != GST_FLOW_OK + && ret != GST_FLOW_UNEXPECTED)) { + if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) + GST_WARNING_OBJECT (ebml, "Unknown stream/codec in track entry header"); - entry = &g_array_index (demux->seek_index, GstMatroskaIndex, - --demux->seek_entry); - if (!gst_matroska_demux_move_to_entry (demux, entry, FALSE)) - goto exit; + demux->common.num_streams--; + g_ptr_array_remove_index (demux->common.src, demux->common.num_streams); + g_assert (demux->common.src->len == demux->common.num_streams); + if (context) { + gst_matroska_track_free (context); + } - ret = GST_FLOW_OK; + return ret; } -exit: - return ret; -} + /* now create the GStreamer connectivity */ + switch (context->type) { + case GST_MATROSKA_TRACK_TYPE_VIDEO:{ + GstMatroskaTrackVideoContext *videocontext = + (GstMatroskaTrackVideoContext *) context; -/* skip unknown or alike element */ -static GstFlowReturn -gst_matroska_demux_parse_skip (GstMatroskaDemux * demux, GstEbmlRead * ebml, - const gchar * parent_name, guint id) -{ - if (id == GST_EBML_ID_VOID) { - GST_DEBUG_OBJECT (demux, "Skipping EBML Void element"); - } else if (id == GST_EBML_ID_CRC32) { - GST_DEBUG_OBJECT (demux, "Skipping EBML CRC32 element"); - } else { - GST_WARNING_OBJECT (demux, - "Unknown %s subelement 0x%x - ignoring", parent_name, id); - } + padname = g_strdup_printf ("video_%02d", demux->num_v_streams++); + templ = gst_element_class_get_pad_template (klass, "video_%02d"); + caps = gst_matroska_demux_video_caps (videocontext, + context->codec_id, (guint8 *) context->codec_priv, + context->codec_priv_size, &codec, &riff_fourcc); - return gst_ebml_read_skip (ebml); -} + if (codec) { + list = gst_tag_list_new (); + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_VIDEO_CODEC, codec, NULL); + g_free (codec); + } + break; + } -static GstFlowReturn -gst_matroska_demux_parse_header (GstMatroskaDemux * demux, GstEbmlRead * ebml) -{ - GstFlowReturn ret; - gchar *doctype; - guint version; - guint32 id; + case GST_MATROSKA_TRACK_TYPE_AUDIO:{ + GstMatroskaTrackAudioContext *audiocontext = + (GstMatroskaTrackAudioContext *) context; - /* this function is the first to be called */ + padname = g_strdup_printf ("audio_%02d", demux->num_a_streams++); + templ = gst_element_class_get_pad_template (klass, "audio_%02d"); + caps = gst_matroska_demux_audio_caps (audiocontext, + context->codec_id, context->codec_priv, context->codec_priv_size, + &codec, &riff_audio_fmt); - /* default init */ - doctype = NULL; - version = 1; + if (codec) { + list = gst_tag_list_new (); + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_AUDIO_CODEC, codec, NULL); + g_free (codec); + } + break; + } - ret = gst_ebml_peek_id (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + case GST_MATROSKA_TRACK_TYPE_SUBTITLE:{ + GstMatroskaTrackSubtitleContext *subtitlecontext = + (GstMatroskaTrackSubtitleContext *) context; - GST_DEBUG_OBJECT (demux, "id: %08x", id); + padname = g_strdup_printf ("subtitle_%02d", demux->num_t_streams++); + templ = gst_element_class_get_pad_template (klass, "subtitle_%02d"); + caps = gst_matroska_demux_subtitle_caps (subtitlecontext, + context->codec_id, context->codec_priv, context->codec_priv_size); + break; + } - if (id != GST_EBML_ID_HEADER) { - GST_ERROR_OBJECT (demux, "Failed to read header"); - goto exit; + case GST_MATROSKA_TRACK_TYPE_COMPLEX: + case GST_MATROSKA_TRACK_TYPE_LOGO: + case GST_MATROSKA_TRACK_TYPE_BUTTONS: + case GST_MATROSKA_TRACK_TYPE_CONTROL: + default: + /* we should already have quit by now */ + g_assert_not_reached (); } - ret = gst_ebml_read_master (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + if ((context->language == NULL || *context->language == '\0') && + (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO || + context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)) { + GST_LOG ("stream %d: language=eng (assuming default)", context->index); + context->language = g_strdup ("eng"); + } - while (gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - ret = gst_ebml_peek_id (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + if (context->language) { + const gchar *lang; - switch (id) { - /* is our read version uptodate? */ - case GST_EBML_ID_EBMLREADVERSION:{ - guint64 num; + if (!list) + list = gst_tag_list_new (); - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num != GST_EBML_VERSION) { - GST_ERROR_OBJECT (ebml, "Unsupported EBML version %" G_GUINT64_FORMAT, - num); - return GST_FLOW_ERROR; - } + /* Matroska contains ISO 639-2B codes, we want ISO 639-1 */ + lang = gst_tag_get_language_code (context->language); + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_LANGUAGE_CODE, (lang) ? lang : context->language, NULL); + } - GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); + if (caps == NULL) { + GST_WARNING_OBJECT (demux, "could not determine caps for stream with " + "codec_id='%s'", context->codec_id); + switch (context->type) { + case GST_MATROSKA_TRACK_TYPE_VIDEO: + caps = gst_caps_new_simple ("video/x-unknown", NULL); break; - } - - /* we only handle 8 byte lengths at max */ - case GST_EBML_ID_EBMLMAXSIZELENGTH:{ - guint64 num; - - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num > sizeof (guint64)) { - GST_ERROR_OBJECT (ebml, - "Unsupported EBML maximum size %" G_GUINT64_FORMAT, num); - return GST_FLOW_ERROR; - } - GST_DEBUG_OBJECT (ebml, "EbmlMaxSizeLength: %" G_GUINT64_FORMAT, num); + case GST_MATROSKA_TRACK_TYPE_AUDIO: + caps = gst_caps_new_simple ("audio/x-unknown", NULL); break; - } - - /* we handle 4 byte IDs at max */ - case GST_EBML_ID_EBMLMAXIDLENGTH:{ - guint64 num; - - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num > sizeof (guint32)) { - GST_ERROR_OBJECT (ebml, - "Unsupported EBML maximum ID %" G_GUINT64_FORMAT, num); - return GST_FLOW_ERROR; - } - GST_DEBUG_OBJECT (ebml, "EbmlMaxIdLength: %" G_GUINT64_FORMAT, num); + case GST_MATROSKA_TRACK_TYPE_SUBTITLE: + caps = gst_caps_new_simple ("application/x-subtitle-unknown", NULL); break; - } - - case GST_EBML_ID_DOCTYPE:{ - gchar *text; + case GST_MATROSKA_TRACK_TYPE_COMPLEX: + default: + caps = gst_caps_new_simple ("application/x-matroska-unknown", NULL); + break; + } + gst_caps_set_simple (caps, "codec-id", G_TYPE_STRING, context->codec_id, + NULL); - ret = gst_ebml_read_ascii (ebml, &id, &text); - if (ret != GST_FLOW_OK) - return ret; + /* add any unrecognised riff fourcc / audio format, but after codec-id */ + if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO && riff_audio_fmt != 0) + gst_caps_set_simple (caps, "format", G_TYPE_INT, riff_audio_fmt, NULL); + else if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO && riff_fourcc != 0) + gst_caps_set_simple (caps, "fourcc", GST_TYPE_FOURCC, riff_fourcc, NULL); + } - GST_DEBUG_OBJECT (ebml, "EbmlDocType: %s", GST_STR_NULL (text)); + /* the pad in here */ + context->pad = gst_pad_new_from_template (templ, padname); + context->caps = caps; - if (doctype) - g_free (doctype); - doctype = text; - break; - } + gst_pad_set_event_function (context->pad, + GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_event)); + gst_pad_set_query_type_function (context->pad, + GST_DEBUG_FUNCPTR (gst_matroska_demux_get_src_query_types)); + gst_pad_set_query_function (context->pad, + GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_src_query)); - case GST_EBML_ID_DOCTYPEREADVERSION:{ - guint64 num; + GST_INFO_OBJECT (demux, "Adding pad '%s' with caps %" GST_PTR_FORMAT, + padname, caps); - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - version = num; - GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); - break; - } + context->pending_tags = list; - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "EBML header", id); - if (ret != GST_FLOW_OK) - return ret; - break; + gst_pad_set_element_private (context->pad, context); - /* we ignore these two, as they don't tell us anything we care about */ - case GST_EBML_ID_EBMLVERSION: - case GST_EBML_ID_DOCTYPEVERSION: - ret = gst_ebml_read_skip (ebml); - if (ret != GST_FLOW_OK) - return ret; - break; - } - } + gst_pad_use_fixed_caps (context->pad); + gst_pad_set_caps (context->pad, context->caps); + gst_pad_set_active (context->pad, TRUE); + gst_element_add_pad (GST_ELEMENT (demux), context->pad); -exit: + g_free (padname); - if ((doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_MATROSKA)) || - (doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_WEBM)) || - (doctype == NULL)) { - if (version <= 2) { - if (doctype) { - GST_INFO_OBJECT (demux, "Input is %s version %d", doctype, version); - } else { - GST_WARNING_OBJECT (demux, "Input is EBML without doctype, assuming " - "matroska (version %d)", version); - } - ret = GST_FLOW_OK; - } else { - GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), - ("Demuxer version (2) is too old to read %s version %d", - GST_STR_NULL (doctype), version)); - ret = GST_FLOW_ERROR; - } - g_free (doctype); - } else { - GST_ELEMENT_ERROR (demux, STREAM, WRONG_TYPE, (NULL), - ("Input is not a matroska stream (doctype=%s)", doctype)); - ret = GST_FLOW_ERROR; - g_free (doctype); - } +#ifdef MKV_DEMUX_MODIFICATION + if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO) + demux->audio_stream = context; + if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) + demux->video = TRUE; +#endif + /* tadaah! */ return ret; } -static GstFlowReturn -gst_matroska_demux_parse_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml) +static const GstQueryType * +gst_matroska_demux_get_src_query_types (GstPad * pad) { - GstFlowReturn ret = GST_FLOW_OK; - guint32 id; - - DEBUG_ELEMENT_START (demux, ebml, "Tracks"); - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret); - return ret; - } + static const GstQueryType query_types[] = { + GST_QUERY_POSITION, + GST_QUERY_DURATION, + GST_QUERY_SEEKING, + 0 + }; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + return query_types; +} - switch (id) { - /* one track within the "all-tracks" header */ - case GST_MATROSKA_ID_TRACKENTRY: - ret = gst_matroska_demux_add_stream (demux, ebml); - break; +static gboolean +gst_matroska_demux_query (GstMatroskaDemux * demux, GstPad * pad, + GstQuery * query) +{ + gboolean res = FALSE; + GstMatroskaTrackContext *context = NULL; - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "Track", id); - break; - } + if (pad) { + context = gst_pad_get_element_private (pad); } - DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret); - demux->tracks_parsed = TRUE; + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + { + GstFormat format; - return ret; -} + gst_query_parse_position (query, &format, NULL); -static GstFlowReturn -gst_matroska_demux_parse_index_cuetrack (GstMatroskaDemux * demux, - GstEbmlRead * ebml, guint * nentries) -{ - guint32 id; - GstFlowReturn ret; - GstMatroskaIndex idx; + if (format == GST_FORMAT_TIME) { + GST_OBJECT_LOCK (demux); + if (context) + gst_query_set_position (query, GST_FORMAT_TIME, + MAX (context->pos, demux->stream_start_time) - + demux->stream_start_time); + else + gst_query_set_position (query, GST_FORMAT_TIME, + MAX (demux->common.segment.last_stop, demux->stream_start_time) - + demux->stream_start_time); + GST_OBJECT_UNLOCK (demux); + } else if (format == GST_FORMAT_DEFAULT && context + && context->default_duration) { + GST_OBJECT_LOCK (demux); + gst_query_set_position (query, GST_FORMAT_DEFAULT, + context->pos / context->default_duration); + GST_OBJECT_UNLOCK (demux); + } else { + GST_DEBUG_OBJECT (demux, + "only position query in TIME and DEFAULT format is supported"); + } - idx.pos = (guint64) - 1; - idx.track = 0; - idx.time = GST_CLOCK_TIME_NONE; - idx.block = 1; + res = TRUE; + break; + } + case GST_QUERY_DURATION: + { + GstFormat format; - DEBUG_ELEMENT_START (demux, ebml, "CueTrackPositions"); + gst_query_parse_duration (query, &format, NULL); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "CueTrackPositions", ret); - return ret; - } + if (format == GST_FORMAT_TIME) { + GST_OBJECT_LOCK (demux); + gst_query_set_duration (query, GST_FORMAT_TIME, + demux->common.segment.duration); + GST_OBJECT_UNLOCK (demux); + } else if (format == GST_FORMAT_DEFAULT && context + && context->default_duration) { + GST_OBJECT_LOCK (demux); + gst_query_set_duration (query, GST_FORMAT_DEFAULT, + demux->common.segment.duration / context->default_duration); + GST_OBJECT_UNLOCK (demux); + } else { + GST_DEBUG_OBJECT (demux, + "only duration query in TIME and DEFAULT format is supported"); + } - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + res = TRUE; break; + } - switch (id) { - /* track number */ - case GST_MATROSKA_ID_CUETRACK: - { - guint64 num; + case GST_QUERY_SEEKING: + { + GstFormat fmt; - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + GST_OBJECT_LOCK (demux); + if (fmt == GST_FORMAT_TIME) { + gboolean seekable; - if (num == 0) { - idx.track = 0; - GST_WARNING_OBJECT (demux, "Invalid CueTrack 0"); - break; + if (demux->streaming) { + /* assuming we'll be able to get an index ... */ + seekable = demux->seekable; + } else { + seekable = TRUE; } - GST_DEBUG_OBJECT (demux, "CueTrack: %" G_GUINT64_FORMAT, num); - idx.track = num; - break; + gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, + 0, demux->common.segment.duration); + res = TRUE; } + GST_OBJECT_UNLOCK (demux); + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } - /* position in file */ - case GST_MATROSKA_ID_CUECLUSTERPOSITION: - { - guint64 num; + return res; +} - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; +static gboolean +gst_matroska_demux_element_query (GstElement * element, GstQuery * query) +{ + return gst_matroska_demux_query (GST_MATROSKA_DEMUX (element), NULL, query); +} - if (num > G_MAXINT64) { - GST_WARNING_OBJECT (demux, "CueClusterPosition %" G_GUINT64_FORMAT - " too large", num); - break; - } +static gboolean +gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query) +{ + gboolean ret; + GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (gst_pad_get_parent (pad)); - idx.pos = num; - break; - } + ret = gst_matroska_demux_query (demux, pad, query); - /* number of block in the cluster */ - case GST_MATROSKA_ID_CUEBLOCKNUMBER: - { - guint64 num; + gst_object_unref (demux); - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + return ret; +} - if (num == 0) { - GST_WARNING_OBJECT (demux, "Invalid CueBlockNumber 0"); - break; - } +/* returns FALSE if there are no pads to deliver event to, + * otherwise TRUE (whatever the outcome of event sending), + * takes ownership of the passed event! */ +static gboolean +gst_matroska_demux_send_event (GstMatroskaDemux * demux, GstEvent * event) +{ + gboolean is_newsegment; + gboolean ret = FALSE; + gint i; - GST_DEBUG_OBJECT (demux, "CueBlockNumber: %" G_GUINT64_FORMAT, num); - idx.block = num; + g_return_val_if_fail (event != NULL, FALSE); - /* mild sanity check, disregard strange cases ... */ - if (idx.block > G_MAXUINT16) { - GST_DEBUG_OBJECT (demux, "... looks suspicious, ignoring"); - idx.block = 1; - } - break; - } + GST_DEBUG_OBJECT (demux, "Sending event of type %s to all source pads", + GST_EVENT_TYPE_NAME (event)); - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "CueTrackPositions", - id); - break; + is_newsegment = (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT); - case GST_MATROSKA_ID_CUECODECSTATE: - case GST_MATROSKA_ID_CUEREFERENCE: - ret = gst_ebml_read_skip (ebml); - break; + g_assert (demux->common.src->len == demux->common.num_streams); + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream; + + stream = g_ptr_array_index (demux->common.src, i); + gst_event_ref (event); + gst_pad_push_event (stream->pad, event); + ret = TRUE; + + /* FIXME: send global tags before stream tags */ + if (G_UNLIKELY (is_newsegment && stream->pending_tags != NULL)) { + GST_DEBUG_OBJECT (demux, "Sending pending_tags %p for pad %s:%s : %" + GST_PTR_FORMAT, stream->pending_tags, + GST_DEBUG_PAD_NAME (stream->pad), stream->pending_tags); + gst_element_found_tags_for_pad (GST_ELEMENT (demux), stream->pad, + stream->pending_tags); + stream->pending_tags = NULL; } } - DEBUG_ELEMENT_STOP (demux, ebml, "CueTrackPositions", ret); - - if ((ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) - && idx.pos != (guint64) - 1 && idx.track > 0) { - g_array_append_val (demux->index, idx); - (*nentries)++; - } else if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) { - GST_DEBUG_OBJECT (demux, "CueTrackPositions without valid content"); + if (G_UNLIKELY (is_newsegment && demux->common.global_tags != NULL)) { + gst_tag_list_add (demux->common.global_tags, GST_TAG_MERGE_REPLACE, + GST_TAG_CONTAINER_FORMAT, "Matroska", NULL); + GST_DEBUG_OBJECT (demux, "Sending global_tags %p : %" GST_PTR_FORMAT, + demux->common.global_tags, demux->common.global_tags); + gst_element_found_tags (GST_ELEMENT (demux), demux->common.global_tags); + demux->common.global_tags = NULL; } + gst_event_unref (event); return ret; } -static GstFlowReturn -gst_matroska_demux_parse_index_pointentry (GstMatroskaDemux * demux, - GstEbmlRead * ebml) +static gboolean +gst_matroska_demux_element_send_event (GstElement * element, GstEvent * event) { - guint32 id; - GstFlowReturn ret; - GstClockTime time = GST_CLOCK_TIME_NONE; - guint nentries = 0; + GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (element); + gboolean res; - DEBUG_ELEMENT_START (demux, ebml, "CuePoint"); + g_return_val_if_fail (event != NULL, FALSE); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "CuePoint", ret); - return ret; + if (GST_EVENT_TYPE (event) == GST_EVENT_SEEK) { + res = gst_matroska_demux_handle_seek_event (demux, NULL, event); + } else { + GST_WARNING_OBJECT (demux, "Unhandled event of type %s", + GST_EVENT_TYPE_NAME (event)); + res = FALSE; } + gst_event_unref (event); + return res; +} - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* one single index entry ('point') */ - case GST_MATROSKA_ID_CUETIME: - { - if ((ret = gst_ebml_read_uint (ebml, &id, &time)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (demux, "CueTime: %" G_GUINT64_FORMAT, time); - time = time * demux->time_scale; - break; - } +static gboolean +gst_matroska_demux_move_to_entry (GstMatroskaDemux * demux, + GstMatroskaIndex * entry, gboolean reset) +{ + gint i; - /* position in the file + track to which it belongs */ - case GST_MATROSKA_ID_CUETRACKPOSITIONS: - { - if ((ret = - gst_matroska_demux_parse_index_cuetrack (demux, ebml, - &nentries)) != GST_FLOW_OK) - break; - break; - } + GST_OBJECT_LOCK (demux); - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "CuePoint", id); - break; - } - } + /* seek (relative to matroska segment) */ + /* position might be invalid; will error when streaming resumes ... */ + demux->common.offset = entry->pos + demux->common.ebml_segment_start; - DEBUG_ELEMENT_STOP (demux, ebml, "CuePoint", ret); + GST_DEBUG_OBJECT (demux, "Seeked to offset %" G_GUINT64_FORMAT ", block %d, " + "time %" GST_TIME_FORMAT, entry->pos + demux->common.ebml_segment_start, + entry->block, GST_TIME_ARGS (entry->time)); - if (nentries > 0) { - if (time == GST_CLOCK_TIME_NONE) { - GST_WARNING_OBJECT (demux, "CuePoint without valid time"); - g_array_remove_range (demux->index, demux->index->len - nentries, - nentries); - } else { - gint i; + /* update the time */ + gst_matroska_read_common_reset_streams (&demux->common, entry->time, TRUE); + demux->common.segment.last_stop = entry->time; + demux->seek_block = entry->block; + demux->seek_first = TRUE; + demux->last_stop_end = GST_CLOCK_TIME_NONE; - for (i = demux->index->len - nentries; i < demux->index->len; i++) { - GstMatroskaIndex *idx = - &g_array_index (demux->index, GstMatroskaIndex, i); + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); - idx->time = time; - GST_DEBUG_OBJECT (demux, "Index entry: pos=%" G_GUINT64_FORMAT - ", time=%" GST_TIME_FORMAT ", track=%u, block=%u", idx->pos, - GST_TIME_ARGS (idx->time), (guint) idx->track, (guint) idx->block); - } + if (reset) { + stream->to_offset = G_MAXINT64; + } else { + if (stream->from_offset != -1) + stream->to_offset = stream->from_offset; } - } else { - GST_DEBUG_OBJECT (demux, "Empty CuePoint"); + stream->from_offset = -1; } - return ret; + GST_OBJECT_UNLOCK (demux); + + return TRUE; } static gint -gst_matroska_index_compare (GstMatroskaIndex * i1, GstMatroskaIndex * i2) +gst_matroska_cluster_compare (gint64 * i1, gint64 * i2) { - if (i1->time < i2->time) - return -1; - else if (i1->time > i2->time) - return 1; - else if (i1->block < i2->block) + if (*i1 < *i2) return -1; - else if (i1->block > i2->block) + else if (*i1 > *i2) return 1; else return 0; } +/* searches for a cluster start from @pos, + * return GST_FLOW_OK and cluster position in @pos if found */ static GstFlowReturn -gst_matroska_demux_parse_index (GstMatroskaDemux * demux, GstEbmlRead * ebml) +gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos) { - guint32 id; + gint64 newpos = *pos; + gint64 orig_offset; GstFlowReturn ret = GST_FLOW_OK; - guint i; - - if (demux->index) - g_array_free (demux->index, TRUE); - demux->index = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); - - DEBUG_ELEMENT_START (demux, ebml, "Cues"); + const guint chunk = 64 * 1024; + GstBuffer *buf = NULL; + guint64 length; + guint32 id; + guint needed; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Cues", ret); - return ret; - } + orig_offset = demux->common.offset; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + GST_LOG_OBJECT (demux, "searching cluster following offset %" G_GINT64_FORMAT, + *pos); - switch (id) { - /* one single index entry ('point') */ - case GST_MATROSKA_ID_POINTENTRY: - ret = gst_matroska_demux_parse_index_pointentry (demux, ebml); - break; + if (demux->clusters) { + gint64 *cpos; - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "Cues", id); - break; + cpos = gst_util_array_binary_search (demux->clusters->data, + demux->clusters->len, sizeof (gint64), + (GCompareDataFunc) gst_matroska_cluster_compare, + GST_SEARCH_MODE_AFTER, pos, NULL); + /* sanity check */ + if (cpos) { + GST_DEBUG_OBJECT (demux, + "cluster reported at offset %" G_GINT64_FORMAT, *cpos); + demux->common.offset = *cpos; + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); + if (ret == GST_FLOW_OK && id == GST_MATROSKA_ID_CLUSTER) { + newpos = *cpos; + goto exit; + } } } - DEBUG_ELEMENT_STOP (demux, ebml, "Cues", ret); - - /* Sort index by time, smallest time first, for easier searching */ - g_array_sort (demux->index, (GCompareFunc) gst_matroska_index_compare); - - /* Now sort the track specific index entries into their own arrays */ - for (i = 0; i < demux->index->len; i++) { - GstMatroskaIndex *idx = &g_array_index (demux->index, GstMatroskaIndex, i); - gint track_num; - GstMatroskaTrackContext *ctx; - if (demux->element_index) { - gint writer_id; - - if (idx->track != 0 && - (track_num = - gst_matroska_demux_stream_from_num (demux, idx->track)) != -1) { - ctx = g_ptr_array_index (demux->src, track_num); + /* read in at newpos and scan for ebml cluster id */ + while (1) { + GstByteReader reader; + gint cluster_pos; - if (ctx->index_writer_id == -1) - gst_index_get_writer_id (demux->element_index, GST_OBJECT (ctx->pad), - &ctx->index_writer_id); - writer_id = ctx->index_writer_id; - } else { - if (demux->element_index_writer_id == -1) - gst_index_get_writer_id (demux->element_index, GST_OBJECT (demux), - &demux->element_index_writer_id); - writer_id = demux->element_index_writer_id; + if (buf != NULL) { + gst_buffer_unref (buf); + buf = NULL; + } + ret = gst_pad_pull_range (demux->common.sinkpad, newpos, chunk, &buf); + if (ret != GST_FLOW_OK) + break; + GST_DEBUG_OBJECT (demux, "read buffer size %d at offset %" G_GINT64_FORMAT, + GST_BUFFER_SIZE (buf), newpos); + gst_byte_reader_init_from_buffer (&reader, buf); + resume: + cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, + GST_MATROSKA_ID_CLUSTER, 0, gst_byte_reader_get_remaining (&reader)); + if (cluster_pos >= 0) { + newpos += cluster_pos; + /* prepare resuming at next byte */ + gst_byte_reader_skip (&reader, cluster_pos + 1); + GST_DEBUG_OBJECT (demux, + "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos); + /* extra checks whether we really sync'ed to a cluster: + * - either it is the first and only cluster + * - either there is a cluster after this one + * - either cluster length is undefined + */ + /* ok if first cluster (there may not a subsequent one) */ + if (newpos == demux->first_cluster_offset) { + GST_DEBUG_OBJECT (demux, "cluster is first cluster -> OK"); + break; } - - GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %" - G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (idx->time), - idx->pos, writer_id); - gst_index_add_association (demux->element_index, writer_id, - GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, idx->time, - GST_FORMAT_BYTES, idx->pos + demux->ebml_segment_start, NULL); + demux->common.offset = newpos; + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); + if (ret != GST_FLOW_OK) { + GST_DEBUG_OBJECT (demux, "need more data -> continue"); + continue; + } + g_assert (id == GST_MATROSKA_ID_CLUSTER); + GST_DEBUG_OBJECT (demux, "cluster size %" G_GUINT64_FORMAT ", prefix %d", + length, needed); + /* ok if undefined length or first cluster */ + if (length == GST_EBML_SIZE_UNKNOWN || length == G_MAXUINT64) { + GST_DEBUG_OBJECT (demux, "cluster has undefined length -> OK"); + break; + } + /* skip cluster */ + demux->common.offset += length + needed; + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); + if (ret != GST_FLOW_OK) + goto resume; + GST_DEBUG_OBJECT (demux, "next element is %scluster", + id == GST_MATROSKA_ID_CLUSTER ? "" : "not "); + if (id == GST_MATROSKA_ID_CLUSTER) + break; + /* not ok, resume */ + goto resume; + } else { + /* partial cluster id may have been in tail of buffer */ + newpos += MAX (gst_byte_reader_get_remaining (&reader), 4) - 3; } - - if (idx->track == 0) - continue; - - track_num = gst_matroska_demux_stream_from_num (demux, idx->track); - if (track_num == -1) - continue; - - ctx = g_ptr_array_index (demux->src, track_num); - - if (ctx->index_table == NULL) - ctx->index_table = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); - - g_array_append_vals (ctx->index_table, idx, 1); } - demux->index_parsed = TRUE; - - /* sanity check; empty index normalizes to no index */ - if (demux->index->len == 0) { - g_array_free (demux->index, TRUE); - demux->index = NULL; + if (buf) { + gst_buffer_unref (buf); + buf = NULL; } +exit: + demux->common.offset = orig_offset; + *pos = newpos; return ret; } -static GstFlowReturn -gst_matroska_demux_parse_info (GstMatroskaDemux * demux, GstEbmlRead * ebml) +/* bisect and scan through file for cluster starting before @time, + * returns fake index entry with corresponding info on cluster */ +static GstMatroskaIndex * +gst_matroska_demux_search_pos (GstMatroskaDemux * demux, GstClockTime time) { - GstFlowReturn ret = GST_FLOW_OK; + GstMatroskaIndex *entry = NULL; + GstMatroskaReadState current_state; + GstClockTime otime, prev_cluster_time, current_cluster_time, cluster_time; + gint64 opos, newpos, startpos = 0, current_offset; + gint64 prev_cluster_offset = -1, current_cluster_offset, cluster_offset; + const guint chunk = 64 * 1024; + GstFlowReturn ret; + guint64 length; guint32 id; + guint needed; - DEBUG_ELEMENT_START (demux, ebml, "SegmentInfo"); - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "SegmentInfo", ret); - return ret; - } - - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* cluster timecode */ - case GST_MATROSKA_ID_TIMECODESCALE:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + /* (under)estimate new position, resync using cluster ebml id, + * and scan forward to appropriate cluster + * (and re-estimate if need to go backward) */ + prev_cluster_time = GST_CLOCK_TIME_NONE; - GST_DEBUG_OBJECT (demux, "TimeCodeScale: %" G_GUINT64_FORMAT, num); - demux->time_scale = num; - break; - } + /* store some current state */ + current_state = demux->common.state; + g_return_val_if_fail (current_state == GST_MATROSKA_READ_STATE_DATA, NULL); - case GST_MATROSKA_ID_DURATION:{ - gdouble num; - GstClockTime dur; + current_cluster_offset = demux->cluster_offset; + current_cluster_time = demux->cluster_time; + current_offset = demux->common.offset; - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; + demux->common.state = GST_MATROSKA_READ_STATE_SCANNING; - if (num <= 0.0) { - GST_WARNING_OBJECT (demux, "Invalid duration %lf", num); - break; - } + /* estimate using start and current position */ + GST_OBJECT_LOCK (demux); + opos = demux->common.offset - demux->common.ebml_segment_start; + otime = demux->common.segment.last_stop; + GST_OBJECT_UNLOCK (demux); - GST_DEBUG_OBJECT (demux, "Duration: %lf", num); + /* sanitize */ + time = MAX (time, demux->stream_start_time); - dur = gst_gdouble_to_guint64 (num * - gst_guint64_to_gdouble (demux->time_scale)); - if (GST_CLOCK_TIME_IS_VALID (dur) && dur <= G_MAXINT64) - { - demux->duration = dur; -#ifdef MKVDEMUX_MODIFICATION - gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, demux->duration); -#endif - } - break; - } + /* avoid division by zero in first estimation below */ + if (otime <= demux->stream_start_time) + otime = time; - case GST_MATROSKA_ID_WRITINGAPP:{ - gchar *text; +retry: + GST_LOG_OBJECT (demux, + "opos: %" G_GUINT64_FORMAT ", otime: %" GST_TIME_FORMAT ", %" + GST_TIME_FORMAT " in stream time (start %" GST_TIME_FORMAT "), time %" + GST_TIME_FORMAT, opos, GST_TIME_ARGS (otime), + GST_TIME_ARGS (otime - demux->stream_start_time), + GST_TIME_ARGS (demux->stream_start_time), GST_TIME_ARGS (time)); + newpos = + gst_util_uint64_scale (opos - demux->common.ebml_segment_start, + time - demux->stream_start_time, + otime - demux->stream_start_time) - chunk; + if (newpos < 0) + newpos = 0; + /* favour undershoot */ + newpos = newpos * 90 / 100; + newpos += demux->common.ebml_segment_start; - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; + GST_DEBUG_OBJECT (demux, + "estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT, + GST_TIME_ARGS (time), newpos); - GST_DEBUG_OBJECT (demux, "WritingApp: %s", GST_STR_NULL (text)); - demux->writing_app = text; - break; - } + /* and at least start scanning before previous scan start to avoid looping */ + startpos = startpos * 90 / 100; + if (startpos && startpos < newpos) + newpos = startpos; - case GST_MATROSKA_ID_MUXINGAPP:{ - gchar *text; + /* read in at newpos and scan for ebml cluster id */ + startpos = newpos; + while (1) { - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; + ret = gst_matroska_demux_search_cluster (demux, &newpos); + if (ret == GST_FLOW_UNEXPECTED) { + /* heuristic HACK */ + newpos = startpos * 80 / 100; + GST_DEBUG_OBJECT (demux, "EOS; " + "new estimated offset for %" GST_TIME_FORMAT ": %" G_GINT64_FORMAT, + GST_TIME_ARGS (time), newpos); + startpos = newpos; + continue; + } else if (ret != GST_FLOW_OK) { + goto exit; + } else { + break; + } + } - GST_DEBUG_OBJECT (demux, "MuxingApp: %s", GST_STR_NULL (text)); - demux->muxing_app = text; - break; - } + /* then start scanning and parsing for cluster time, + * re-estimate if overshoot, otherwise next cluster and so on */ + demux->common.offset = newpos; + demux->cluster_time = cluster_time = GST_CLOCK_TIME_NONE; + while (1) { + guint64 cluster_size = 0; - case GST_MATROSKA_ID_DATEUTC:{ - gint64 time; + /* peek and parse some elements */ + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); + if (ret != GST_FLOW_OK) + goto error; + GST_LOG_OBJECT (demux, "Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " + "size %" G_GUINT64_FORMAT ", needed %d", demux->common.offset, id, + length, needed); + ret = gst_matroska_demux_parse_id (demux, id, length, needed); + if (ret != GST_FLOW_OK) + goto error; - if ((ret = gst_ebml_read_date (ebml, &id, &time)) != GST_FLOW_OK) + if (id == GST_MATROSKA_ID_CLUSTER) { + cluster_time = GST_CLOCK_TIME_NONE; + if (length == G_MAXUINT64) + cluster_size = 0; + else + cluster_size = length + needed; + } + if (demux->cluster_time != GST_CLOCK_TIME_NONE && + cluster_time == GST_CLOCK_TIME_NONE) { + cluster_time = demux->cluster_time * demux->common.time_scale; + cluster_offset = demux->cluster_offset; + GST_DEBUG_OBJECT (demux, "found cluster at offset %" G_GINT64_FORMAT + " with time %" GST_TIME_FORMAT, cluster_offset, + GST_TIME_ARGS (cluster_time)); + if (cluster_time > time) { + GST_DEBUG_OBJECT (demux, "overshot target"); + /* cluster overshoots */ + if (cluster_offset == demux->first_cluster_offset) { + /* but no prev one */ + GST_DEBUG_OBJECT (demux, "but using first cluster anyway"); + prev_cluster_time = cluster_time; + prev_cluster_offset = cluster_offset; break; - - GST_DEBUG_OBJECT (demux, "DateUTC: %" G_GINT64_FORMAT, time); - demux->created = time; - break; - } - - case GST_MATROSKA_ID_TITLE:{ - gchar *text; - GstTagList *taglist; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + } + if (prev_cluster_time != GST_CLOCK_TIME_NONE) { + /* prev cluster did not overshoot, so prev cluster is target */ break; - - GST_DEBUG_OBJECT (demux, "Title: %s", GST_STR_NULL (text)); - taglist = gst_tag_list_new (); - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, text, - NULL); - gst_matroska_demux_found_global_tag (demux, taglist); - g_free (text); - break; + } else { + /* re-estimate using this new position info */ + opos = cluster_offset; + otime = cluster_time; + goto retry; + } + } else { + /* cluster undershoots, goto next one */ + prev_cluster_time = cluster_time; + prev_cluster_offset = cluster_offset; + /* skip cluster if length is defined, + * otherwise will be skippingly parsed into */ + if (cluster_size) { + GST_DEBUG_OBJECT (demux, "skipping to next cluster"); + demux->common.offset = cluster_offset + cluster_size; + demux->cluster_time = GST_CLOCK_TIME_NONE; + } else { + GST_DEBUG_OBJECT (demux, "parsing/skipping cluster elements"); + } } + } + continue; - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "SegmentInfo", id); - break; - - /* fall through */ - case GST_MATROSKA_ID_SEGMENTUID: - case GST_MATROSKA_ID_SEGMENTFILENAME: - case GST_MATROSKA_ID_PREVUID: - case GST_MATROSKA_ID_PREVFILENAME: - case GST_MATROSKA_ID_NEXTUID: - case GST_MATROSKA_ID_NEXTFILENAME: - case GST_MATROSKA_ID_SEGMENTFAMILY: - case GST_MATROSKA_ID_CHAPTERTRANSLATE: - ret = gst_ebml_read_skip (ebml); + error: + if (ret == GST_FLOW_UNEXPECTED) { + if (prev_cluster_time != GST_CLOCK_TIME_NONE) break; } + goto exit; } - DEBUG_ELEMENT_STOP (demux, ebml, "SegmentInfo", ret); + entry = g_new0 (GstMatroskaIndex, 1); + entry->time = prev_cluster_time; + entry->pos = prev_cluster_offset - demux->common.ebml_segment_start; + GST_DEBUG_OBJECT (demux, "simulated index entry; time %" GST_TIME_FORMAT + ", pos %" G_GUINT64_FORMAT, GST_TIME_ARGS (entry->time), entry->pos); + +exit: - demux->segmentinfo_parsed = TRUE; + /* restore some state */ + demux->cluster_offset = current_cluster_offset; + demux->cluster_time = current_cluster_time; + demux->common.offset = current_offset; + demux->common.state = current_state; - return ret; + return entry; } -static GstFlowReturn -gst_matroska_demux_parse_metadata_id_simple_tag (GstMatroskaDemux * demux, - GstEbmlRead * ebml, GstTagList ** p_taglist) +static gboolean +gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux, + GstPad * pad, GstEvent * event) { - /* FIXME: check if there are more useful mappings */ - struct - { - const gchar *matroska_tagname; - const gchar *gstreamer_tagname; - } - tag_conv[] = { - { - GST_MATROSKA_TAG_ID_TITLE, GST_TAG_TITLE}, { - GST_MATROSKA_TAG_ID_ARTIST, GST_TAG_ARTIST}, { - GST_MATROSKA_TAG_ID_AUTHOR, GST_TAG_ARTIST}, { - GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, { - GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, { - GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, { - GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, { - GST_MATROSKA_TAG_ID_ENCODER, GST_TAG_ENCODER}, { - GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, { - GST_MATROSKA_TAG_ID_ISRC, GST_TAG_ISRC}, { - GST_MATROSKA_TAG_ID_COPYRIGHT, GST_TAG_COPYRIGHT}, { - GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, { - GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}, { - GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, { - GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, { - GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE} - }; - GstFlowReturn ret; - guint32 id; - gchar *value = NULL; - gchar *tag = NULL; + GstMatroskaIndex *entry = NULL; + GstMatroskaIndex scan_entry; +#ifdef MKV_DEMUX_MODIFICATION + GstMatroskaIndex *next_entry = NULL; +#endif + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + GstFormat format; + gboolean flush, keyunit; + gdouble rate; + gint64 cur, stop; + GstMatroskaTrackContext *track = NULL; + GstSegment seeksegment = { 0, }; + gboolean update = TRUE; - DEBUG_ELEMENT_START (demux, ebml, "SimpleTag"); + if (pad) + track = gst_pad_get_element_private (pad); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "SimpleTag", ret); - return ret; - } + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ + /* we can only seek on time */ + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (demux, "Can only seek on TIME"); + return FALSE; + } - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; +#ifndef MKV_DEMUX_MODIFICATION + /* cannot yet do backwards playback */ + if (rate <= 0.0) { + GST_DEBUG_OBJECT (demux, "Can only seek with positive rate"); + return FALSE; + } +#endif - switch (id) { - case GST_MATROSKA_ID_TAGNAME: - g_free (tag); - tag = NULL; - ret = gst_ebml_read_ascii (ebml, &id, &tag); - GST_DEBUG_OBJECT (demux, "TagName: %s", GST_STR_NULL (tag)); - break; + /* copy segment, we need this because we still need the old + * segment when we close the current segment. */ + memcpy (&seeksegment, &demux->common.segment, sizeof (GstSegment)); - case GST_MATROSKA_ID_TAGSTRING: - g_free (value); - value = NULL; - ret = gst_ebml_read_utf8 (ebml, &id, &value); - GST_DEBUG_OBJECT (demux, "TagString: %s", GST_STR_NULL (value)); - break; +#ifdef MKV_DEMUX_MODIFICATION + gst_segment_set_last_stop (&seeksegment, GST_FORMAT_TIME, cur); +#endif - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "SimpleTag", id); - break; - /* fall-through */ + /* pull mode without index means that the actual duration is not known, + * we might be playing a file that's still being recorded + * so, invalidate our current duration, which is only a moving target, + * and should not be used to clamp anything */ + if (!demux->streaming && !demux->common.index && + demux->invalid_duration) { + gst_segment_set_duration (&seeksegment, GST_FORMAT_TIME, + GST_CLOCK_TIME_NONE); + } - case GST_MATROSKA_ID_TAGLANGUAGE: - case GST_MATROSKA_ID_TAGDEFAULT: - case GST_MATROSKA_ID_TAGBINARY: - ret = gst_ebml_read_skip (ebml); - break; + if (event) { + GST_DEBUG_OBJECT (demux, "configuring seek"); + gst_segment_set_seek (&seeksegment, rate, format, flags, + cur_type, cur, stop_type, stop, &update); + /* compensate for clip start time */ + if (GST_CLOCK_TIME_IS_VALID (demux->stream_start_time)) { + seeksegment.last_stop += demux->stream_start_time; + seeksegment.start += demux->stream_start_time; + if (GST_CLOCK_TIME_IS_VALID (seeksegment.stop)) + seeksegment.stop += demux->stream_start_time; + /* note that time should stay at indicated position */ } } - DEBUG_ELEMENT_STOP (demux, ebml, "SimpleTag", ret); - - if (tag && value) { - guint i; - - for (i = 0; i < G_N_ELEMENTS (tag_conv); i++) { - const gchar *tagname_gst = tag_conv[i].gstreamer_tagname; - - const gchar *tagname_mkv = tag_conv[i].matroska_tagname; + /* restore segment duration (if any effect), + * would be determined again when parsing, but anyway ... */ +#ifndef MKV_DEMUX_MODIFICATION + gst_segment_set_duration (&seeksegment, GST_FORMAT_TIME, + demux->common.segment.duration); +#endif - if (strcmp (tagname_mkv, tag) == 0) { - GValue dest = { 0, }; - GType dest_type = gst_tag_get_type (tagname_gst); + flush = ! !(flags & GST_SEEK_FLAG_FLUSH); + keyunit = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); - /* Ensure that any date string is complete */ - if (dest_type == GST_TYPE_DATE) { - guint year = 1901, month = 1, day = 1; + GST_DEBUG_OBJECT (demux, "New segment %" GST_SEGMENT_FORMAT, &seeksegment); - /* Dates can be yyyy-MM-dd, yyyy-MM or yyyy, but we need - * the first type */ - if (sscanf (value, "%04u-%02u-%02u", &year, &month, &day) != 0) { - g_free (value); - value = g_strdup_printf ("%04u-%02u-%02u", year, month, day); - } - } +#ifndef MKV_DEMUX_MODIFICATION + if (!update) { + /* only have to update some segment, + * but also still have to honour flush and so on */ + GST_DEBUG_OBJECT (demux, "... no update"); + /* bad goto, bad ... */ + goto next; + } +#endif - g_value_init (&dest, dest_type); - if (gst_value_deserialize (&dest, value)) { - gst_tag_list_add_values (*p_taglist, GST_TAG_MERGE_APPEND, - tagname_gst, &dest, NULL); - } else { - GST_WARNING_OBJECT (demux, "Can't transform tag '%s' with " - "value '%s' to target type '%s'", tag, value, - g_type_name (dest_type)); - } - g_value_unset (&dest); - break; - } + /* check sanity before we start flushing and all that */ + GST_OBJECT_LOCK (demux); + track = gst_matroska_read_common_get_seek_track (&demux->common, track); + if ((entry = gst_matroska_read_common_do_index_seek (&demux->common, track, + seeksegment.last_stop, &demux->seek_index, &demux->seek_entry)) == + NULL) { + /* pull mode without index can scan later on */ + if (demux->streaming) { + GST_DEBUG_OBJECT (demux, "No matching seek entry in index"); + GST_OBJECT_UNLOCK (demux); + return FALSE; } } - g_free (tag); - g_free (value); - - return ret; -} +#ifdef MKV_DEMUX_MODIFICATION + if (entry == NULL) + return FALSE; -static GstFlowReturn -gst_matroska_demux_parse_metadata_id_tag (GstMatroskaDemux * demux, - GstEbmlRead * ebml, GstTagList ** p_taglist) -{ - guint32 id; - GstFlowReturn ret; + if (seeksegment.rate < 0.0) { + GST_INFO("Current Index is %"GST_TIME_FORMAT, GST_TIME_ARGS(entry->time)); + next_entry = gst_matroska_demux_get_next_index (demux, track, entry); + if (next_entry == NULL) { + GST_ERROR ("Entry Not found...."); + return FALSE; + } + GST_INFO("Next Index is %"GST_TIME_FORMAT, GST_TIME_ARGS(next_entry->time)); + } +#endif - DEBUG_ELEMENT_START (demux, ebml, "Tag"); + GST_DEBUG_OBJECT (demux, "Seek position looks sane"); + GST_OBJECT_UNLOCK (demux); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Tag", ret); - return ret; + if (demux->streaming) { + /* need to seek to cluster start to pick up cluster time */ + /* upstream takes care of flushing and all that + * ... and newsegment event handling takes care of the rest */ + return perform_seek_to_offset (demux, + entry->pos + demux->common.ebml_segment_start); } - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ +#ifdef MKV_DEMUX_MODIFICATION + keyunit = TRUE;//intentionally making it as true. need to check +#endif - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; +next: + if (flush) { + GST_DEBUG_OBJECT (demux, "Starting flush"); + gst_pad_push_event (demux->common.sinkpad, gst_event_new_flush_start ()); + gst_matroska_demux_send_event (demux, gst_event_new_flush_start ()); + } else { + GST_DEBUG_OBJECT (demux, "Non-flushing seek, pausing task"); + gst_pad_pause_task (demux->common.sinkpad); + } - switch (id) { - case GST_MATROSKA_ID_SIMPLETAG: - ret = gst_matroska_demux_parse_metadata_id_simple_tag (demux, ebml, - p_taglist); - break; +#ifndef MKV_DEMUX_MODIFICATION + /* ouch */ + if (!update) + goto exit; +#endif - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "Tag", id); - break; + /* now grab the stream lock so that streaming cannot continue, for + * non flushing seeks when the element is in PAUSED this could block + * forever. */ + GST_DEBUG_OBJECT (demux, "Waiting for streaming to stop"); + GST_PAD_STREAM_LOCK (demux->common.sinkpad); + + /* pull mode without index can do some scanning */ + if (!demux->streaming && !entry) { + /* need to stop flushing upstream as we need it next */ + if (flush) + gst_pad_push_event (demux->common.sinkpad, gst_event_new_flush_stop ()); + entry = gst_matroska_demux_search_pos (demux, seeksegment.last_stop); + /* keep local copy */ + if (entry) { + scan_entry = *entry; + g_free (entry); + entry = &scan_entry; + } else { + GST_DEBUG_OBJECT (demux, "Scan failed to find matching position"); + if (flush) + gst_matroska_demux_send_event (demux, gst_event_new_flush_stop ()); + goto seek_error; } } - DEBUG_ELEMENT_STOP (demux, ebml, "Tag", ret); + if (keyunit) { + GST_DEBUG_OBJECT (demux, "seek to key unit, adjusting segment start to %" + GST_TIME_FORMAT, GST_TIME_ARGS (entry->time)); +#ifdef MKV_DEMUX_MODIFICATION + if (seeksegment.stop == -1) { + seeksegment.stop = seeksegment.duration; + } + if (seeksegment.rate > 0.0) { + seeksegment.start = cur; + seeksegment.time = cur; + seeksegment.last_stop = cur; + seeksegment.stop = seeksegment.duration; + } else if (seeksegment.rate < 0.0) {/* Reverse trick play */ + seeksegment.start = 0.0; + seeksegment.stop = next_entry->time; + seeksegment.last_stop = cur + GST_MSECOND; + seeksegment.time = 0.0; + demux->next_keyframe_ts = cur; + GST_INFO("next_keyframe_ts %"GST_TIME_FORMAT, GST_TIME_ARGS(demux->next_keyframe_ts)); + } +#else + seeksegment.start = MAX (entry->time, demux->stream_start_time); + seeksegment.last_stop = seeksegment.start; + seeksegment.time = seeksegment.start - demux->stream_start_time; +#endif + } - return ret; -} +exit: + if (flush) { + GST_DEBUG_OBJECT (demux, "Stopping flush"); + gst_pad_push_event (demux->common.sinkpad, gst_event_new_flush_stop ()); + gst_matroska_demux_send_event (demux, gst_event_new_flush_stop ()); +#ifdef MKV_DEMUX_MODIFICATION + } else if (demux->segment_running) { +#else + } else if (demux->segment_running && update) { +#endif + GST_DEBUG_OBJECT (demux, "Closing currently running segment"); -static GstFlowReturn -gst_matroska_demux_parse_metadata (GstMatroskaDemux * demux, GstEbmlRead * ebml) -{ - GstTagList *taglist; - GstFlowReturn ret = GST_FLOW_OK; - guint32 id; - GList *l; - guint64 curpos; + GST_OBJECT_LOCK (demux); + if (demux->close_segment) + gst_event_unref (demux->close_segment); - curpos = gst_ebml_read_get_pos (ebml); + demux->close_segment = gst_event_new_new_segment (TRUE, + demux->common.segment.rate, GST_FORMAT_TIME, + demux->common.segment.start, demux->common.segment.last_stop, + demux->common.segment.time); + GST_OBJECT_UNLOCK (demux); + } - /* Make sure we don't parse a tags element twice and - * post it's tags twice */ - curpos = gst_ebml_read_get_pos (ebml); - for (l = demux->tags_parsed; l; l = l->next) { - guint64 *pos = l->data; + GST_OBJECT_LOCK (demux); + /* now update the real segment info */ + GST_DEBUG_OBJECT (demux, "Committing new seek segment"); + memcpy (&demux->common.segment, &seeksegment, sizeof (GstSegment)); + GST_OBJECT_UNLOCK (demux); - if (*pos == curpos) { - GST_DEBUG_OBJECT (demux, "Skipping already parsed Tags at offset %" - G_GUINT64_FORMAT, curpos); - return GST_FLOW_OK; - } - } + /* update some (segment) state */ +#ifdef MKV_DEMUX_MODIFICATION + if (!gst_matroska_demux_move_to_entry (demux, entry, TRUE)) +#else + if (update && !gst_matroska_demux_move_to_entry (demux, entry, TRUE)) +#endif + goto seek_error; - demux->tags_parsed = - g_list_prepend (demux->tags_parsed, g_slice_new (guint64)); - *((guint64 *) demux->tags_parsed->data) = curpos; - /* fall-through */ + /* notify start of new segment */ + if (demux->common.segment.flags & GST_SEEK_FLAG_SEGMENT) { + GstMessage *msg; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Tags", ret); - return ret; + msg = gst_message_new_segment_start (GST_OBJECT (demux), + GST_FORMAT_TIME, demux->common.segment.start); + gst_element_post_message (GST_ELEMENT (demux), msg); } - taglist = gst_tag_list_new (); + GST_OBJECT_LOCK (demux); + if (demux->new_segment) + gst_event_unref (demux->new_segment); +#ifdef MKV_DEMUX_MODIFICATION + if (demux->common.segment.rate > 0.0) { + demux->new_segment = gst_event_new_new_segment_full (FALSE, + demux->common.segment.rate, demux->common.segment.applied_rate, + demux->common.segment.format, seeksegment.last_stop, + demux->common.segment.stop, demux->common.segment.time); + + } else if (demux->common.segment.rate < 0.0) { + /* Reverse trick play */ + demux->new_segment = gst_event_new_new_segment_full (FALSE, + demux->common.segment.rate, demux->common.segment.applied_rate, + demux->common.segment.format, demux->common.segment.start, + seeksegment.last_stop, demux->common.segment.time); + } +#else + demux->new_segment = gst_event_new_new_segment_full (!update, + demux->common.segment.rate, demux->common.segment.applied_rate, + demux->common.segment.format, demux->common.segment.start, + demux->common.segment.stop, demux->common.segment.time); +#endif + GST_OBJECT_UNLOCK (demux); - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; +#ifdef MKV_DEMUX_MODIFICATION + if (demux->common.segment.rate > 0.0) { + demux->common.segment.last_stop = entry->time; + } else if (demux->common.segment.rate < 0.0) { + demux->common.segment.last_stop = next_entry->time; + } +#endif - switch (id) { - case GST_MATROSKA_ID_TAG: - ret = gst_matroska_demux_parse_metadata_id_tag (demux, ebml, &taglist); - break; + /* restart our task since it might have been stopped when we did the + * flush. */ + demux->segment_running = TRUE; + gst_pad_start_task (demux->common.sinkpad, + (GstTaskFunction) gst_matroska_demux_loop, demux->common.sinkpad); - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "Tags", id); - break; - /* FIXME: Use to limit the tags to specific pads */ - case GST_MATROSKA_ID_TARGETS: - ret = gst_ebml_read_skip (ebml); - break; - } +#ifdef MKV_DEMUX_MODIFICATION + while (!g_queue_is_empty (track->queue)) { + GstBuffer* buf = g_queue_pop_head (track->queue); + gst_buffer_unref (buf); } +#endif - DEBUG_ELEMENT_STOP (demux, ebml, "Tags", ret); + /* streaming can continue now */ + GST_PAD_STREAM_UNLOCK (demux->common.sinkpad); - gst_matroska_demux_found_global_tag (demux, taglist); + return TRUE; - return ret; +seek_error: + { + GST_PAD_STREAM_UNLOCK (demux->common.sinkpad); + GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), ("Got a seek error")); + return FALSE; + } } -static GstFlowReturn -gst_matroska_demux_parse_attached_file (GstMatroskaDemux * demux, - GstEbmlRead * ebml, GstTagList * taglist) +/* + * Handle whether we can perform the seek event or if we have to let the chain + * function handle seeks to build the seek indexes first. + */ +static gboolean +gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, GstPad * pad, + GstEvent * event) { - guint32 id; - GstFlowReturn ret; - gchar *description = NULL; - gchar *filename = NULL; - gchar *mimetype = NULL; - guint8 *data = NULL; - guint64 datalen = 0; + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + GstFormat format; + gdouble rate; + gint64 cur, stop; + + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); - DEBUG_ELEMENT_START (demux, ebml, "AttachedFile"); + /* sanity checks */ - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "AttachedFile", ret); - return ret; + /* we can only seek on time */ + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (demux, "Can only seek on TIME"); + return FALSE; } - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ + if (stop_type != GST_SEEK_TYPE_NONE && stop != GST_CLOCK_TIME_NONE) { + GST_DEBUG_OBJECT (demux, "Seek end-time not supported in streaming mode"); + return FALSE; + } - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if (!(flags & GST_SEEK_FLAG_FLUSH)) { + GST_DEBUG_OBJECT (demux, + "Non-flushing seek not supported in streaming mode"); + return FALSE; + } - switch (id) { - case GST_MATROSKA_ID_FILEDESCRIPTION: - if (description) { - GST_WARNING_OBJECT (demux, "FileDescription can only appear once"); - break; - } + if (flags & GST_SEEK_FLAG_SEGMENT) { + GST_DEBUG_OBJECT (demux, "Segment seek not supported in streaming mode"); + return FALSE; + } - ret = gst_ebml_read_utf8 (ebml, &id, &description); - GST_DEBUG_OBJECT (demux, "FileDescription: %s", - GST_STR_NULL (description)); - break; - case GST_MATROSKA_ID_FILENAME: - if (filename) { - GST_WARNING_OBJECT (demux, "FileName can only appear once"); - break; - } + /* check for having parsed index already */ + if (!demux->common.index_parsed) { + gboolean building_index; + guint64 offset = 0; - ret = gst_ebml_read_utf8 (ebml, &id, &filename); + if (!demux->index_offset) { + GST_DEBUG_OBJECT (demux, "no index (location); no seek in push mode"); + return FALSE; + } - GST_DEBUG_OBJECT (demux, "FileName: %s", GST_STR_NULL (filename)); - break; - case GST_MATROSKA_ID_FILEMIMETYPE: - if (mimetype) { - GST_WARNING_OBJECT (demux, "FileMimeType can only appear once"); - break; - } + GST_OBJECT_LOCK (demux); + /* handle the seek event in the chain function */ + demux->common.state = GST_MATROSKA_READ_STATE_SEEK; + /* no more seek can be issued until state reset to _DATA */ - ret = gst_ebml_read_ascii (ebml, &id, &mimetype); - GST_DEBUG_OBJECT (demux, "FileMimeType: %s", GST_STR_NULL (mimetype)); - break; - case GST_MATROSKA_ID_FILEDATA: - if (data) { - GST_WARNING_OBJECT (demux, "FileData can only appear once"); - break; - } + /* copy the event */ + if (demux->seek_event) + gst_event_unref (demux->seek_event); + demux->seek_event = gst_event_ref (event); - ret = gst_ebml_read_binary (ebml, &id, &data, &datalen); - GST_DEBUG_OBJECT (demux, "FileData of size %" G_GUINT64_FORMAT, - datalen); - break; + /* set the building_index flag so that only one thread can setup the + * structures for index seeking. */ + building_index = demux->building_index; + if (!building_index) { + demux->building_index = TRUE; + offset = demux->index_offset; + } + GST_OBJECT_UNLOCK (demux); - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "AttachedFile", id); - break; - case GST_MATROSKA_ID_FILEUID: - ret = gst_ebml_read_skip (ebml); - break; + if (!building_index) { + /* seek to the first subindex or legacy index */ + GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset); + return perform_seek_to_offset (demux, offset); } - } - DEBUG_ELEMENT_STOP (demux, ebml, "AttachedFile", ret); + /* well, we are handling it already */ + return TRUE; + } - if (filename && mimetype && data && datalen > 0) { - GstTagImageType image_type = GST_TAG_IMAGE_TYPE_NONE; - GstBuffer *tagbuffer = NULL; - GstCaps *caps; - gchar *filename_lc = g_utf8_strdown (filename, -1); + /* delegate to tweaked regular seek */ + return gst_matroska_demux_handle_seek_event (demux, pad, event); +} - GST_DEBUG_OBJECT (demux, "Creating tag for attachment with filename '%s', " - "mimetype '%s', description '%s', size %" G_GUINT64_FORMAT, filename, - mimetype, GST_STR_NULL (description), datalen); +static gboolean +gst_matroska_demux_handle_src_event (GstPad * pad, GstEvent * event) +{ + GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (gst_pad_get_parent (pad)); + gboolean res = TRUE; - /* TODO: better heuristics for different image types */ - if (strstr (filename_lc, "cover")) { - if (strstr (filename_lc, "back")) - image_type = GST_TAG_IMAGE_TYPE_BACK_COVER; + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + /* no seeking until we are (safely) ready */ + if (demux->common.state != GST_MATROSKA_READ_STATE_DATA) { + GST_DEBUG_OBJECT (demux, "not ready for seeking yet"); + return FALSE; + } + if (!demux->streaming) + res = gst_matroska_demux_handle_seek_event (demux, pad, event); else - image_type = GST_TAG_IMAGE_TYPE_FRONT_COVER; - } else if (g_str_has_prefix (mimetype, "image/") || - g_str_has_suffix (filename_lc, "png") || - g_str_has_suffix (filename_lc, "jpg") || - g_str_has_suffix (filename_lc, "jpeg") || - g_str_has_suffix (filename_lc, "gif") || - g_str_has_suffix (filename_lc, "bmp")) { - image_type = GST_TAG_IMAGE_TYPE_UNDEFINED; - } - g_free (filename_lc); - - /* First try to create an image tag buffer from this */ - if (image_type != GST_TAG_IMAGE_TYPE_NONE) { - tagbuffer = - gst_tag_image_data_to_image_buffer (data, datalen, image_type); - - if (!tagbuffer) - image_type = GST_TAG_IMAGE_TYPE_NONE; - } + res = gst_matroska_demux_handle_seek_push (demux, pad, event); + gst_event_unref (event); + break; - /* if this failed create an attachment buffer */ - if (!tagbuffer) { - tagbuffer = gst_buffer_new_and_alloc (datalen); + case GST_EVENT_QOS: + { + GstMatroskaTrackContext *context = gst_pad_get_element_private (pad); + if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + GstMatroskaTrackVideoContext *videocontext = + (GstMatroskaTrackVideoContext *) context; + gdouble proportion; + GstClockTimeDiff diff; + GstClockTime timestamp; - memcpy (GST_BUFFER_DATA (tagbuffer), data, datalen); - GST_BUFFER_SIZE (tagbuffer) = datalen; + gst_event_parse_qos (event, &proportion, &diff, ×tamp); - caps = gst_type_find_helper_for_buffer (NULL, tagbuffer, NULL); - if (caps == NULL) - caps = gst_caps_new_simple (mimetype, NULL); - gst_buffer_set_caps (tagbuffer, caps); - gst_caps_unref (caps); + GST_OBJECT_LOCK (demux); + videocontext->earliest_time = timestamp + diff; + GST_OBJECT_UNLOCK (demux); + } + res = TRUE; + gst_event_unref (event); + break; } - /* Set filename and description on the caps */ - caps = GST_BUFFER_CAPS (tagbuffer); - gst_caps_set_simple (caps, "filename", G_TYPE_STRING, filename, NULL); - if (description) - gst_caps_set_simple (caps, "description", G_TYPE_STRING, description, - NULL); - - GST_DEBUG_OBJECT (demux, - "Created attachment buffer with caps: %" GST_PTR_FORMAT, caps); + /* events we don't need to handle */ + case GST_EVENT_NAVIGATION: + gst_event_unref (event); + res = FALSE; + break; - /* and append to the tag list */ - if (image_type != GST_TAG_IMAGE_TYPE_NONE) - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, tagbuffer, - NULL); - else - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ATTACHMENT, - tagbuffer, NULL); + case GST_EVENT_LATENCY: + default: + res = gst_pad_push_event (demux->common.sinkpad, event); + break; } - g_free (filename); - g_free (mimetype); - g_free (data); - g_free (description); + gst_object_unref (demux); - return ret; + return res; } static GstFlowReturn -gst_matroska_demux_parse_attachments (GstMatroskaDemux * demux, - GstEbmlRead * ebml) +gst_matroska_demux_seek_to_previous_keyframe (GstMatroskaDemux * demux) { - guint32 id; - GstFlowReturn ret = GST_FLOW_OK; - GstTagList *taglist; - - DEBUG_ELEMENT_START (demux, ebml, "Attachments"); + GstFlowReturn ret = GST_FLOW_UNEXPECTED; + gboolean done = TRUE; + gint i; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Attachments", ret); - return ret; - } + g_return_val_if_fail (demux->seek_index, GST_FLOW_UNEXPECTED); + g_return_val_if_fail (demux->seek_entry < demux->seek_index->len, + GST_FLOW_UNEXPECTED); - taglist = gst_tag_list_new (); + GST_DEBUG_OBJECT (demux, "locating previous keyframe"); - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if (!demux->seek_entry) { + GST_DEBUG_OBJECT (demux, "no earlier index entry"); + goto exit; + } - switch (id) { - case GST_MATROSKA_ID_ATTACHEDFILE: - ret = gst_matroska_demux_parse_attached_file (demux, ebml, taglist); - break; + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); - default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "Attachments", id); - break; + GST_DEBUG_OBJECT (demux, "segment start %" GST_TIME_FORMAT + ", stream %d at %" GST_TIME_FORMAT, + GST_TIME_ARGS (demux->common.segment.start), stream->index, + GST_TIME_ARGS (stream->from_time)); + if (GST_CLOCK_TIME_IS_VALID (stream->from_time)) { + if (stream->from_time > demux->common.segment.start) { + GST_DEBUG_OBJECT (demux, "stream %d not finished yet", stream->index); + done = FALSE; + } + } else { + /* nothing pushed for this stream; + * likely seek entry did not start at keyframe, so all was skipped. + * So we need an earlier entry */ + done = FALSE; } } - DEBUG_ELEMENT_STOP (demux, ebml, "Attachments", ret); - if (gst_structure_n_fields (GST_STRUCTURE (taglist)) > 0) { - GST_DEBUG_OBJECT (demux, "Storing attachment tags"); - gst_matroska_demux_found_global_tag (demux, taglist); - } else { - GST_DEBUG_OBJECT (demux, "No valid attachments found"); - gst_tag_list_free (taglist); - } + if (!done) { + GstMatroskaIndex *entry; + + entry = &g_array_index (demux->seek_index, GstMatroskaIndex, + --demux->seek_entry); + if (!gst_matroska_demux_move_to_entry (demux, entry, FALSE)) + goto exit; - demux->attachments_parsed = TRUE; + ret = GST_FLOW_OK; + } +exit: return ret; } static GstFlowReturn -gst_matroska_demux_parse_chapters (GstMatroskaDemux * demux, GstEbmlRead * ebml) +gst_matroska_demux_parse_tracks (GstMatroskaDemux * demux, GstEbmlRead * ebml) { - guint32 id; GstFlowReturn ret = GST_FLOW_OK; + guint32 id; - GST_WARNING_OBJECT (demux, "Parsing of chapters not implemented yet"); - - /* TODO: implement parsing of chapters */ - - DEBUG_ELEMENT_START (demux, ebml, "Chapters"); + DEBUG_ELEMENT_START (demux, ebml, "Tracks"); if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (demux, ebml, "Chapters", ret); + DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret); return ret; } @@ -4247,13 +2462,21 @@ gst_matroska_demux_parse_chapters (GstMatroskaDemux * demux, GstEbmlRead * ebml) break; switch (id) { + /* one track within the "all-tracks" header */ + case GST_MATROSKA_ID_TRACKENTRY: + ret = gst_matroska_demux_add_stream (demux, ebml); + break; + default: - ret = gst_ebml_read_skip (ebml); + ret = gst_matroska_read_common_parse_skip (&demux->common, ebml, + "Track", id); break; } } + DEBUG_ELEMENT_STOP (demux, ebml, "Tracks", ret); + + demux->tracks_parsed = TRUE; - DEBUG_ELEMENT_STOP (demux, ebml, "Chapters", ret); return ret; } @@ -4328,14 +2551,16 @@ gst_matroska_demux_sync_streams (GstMatroskaDemux * demux) { gint stream_nr; + GST_OBJECT_LOCK (demux); + GST_LOG_OBJECT (demux, "Sync to %" GST_TIME_FORMAT, - GST_TIME_ARGS (demux->segment.last_stop)); + GST_TIME_ARGS (demux->common.segment.last_stop)); - g_assert (demux->num_streams == demux->src->len); - for (stream_nr = 0; stream_nr < demux->src->len; stream_nr++) { + g_assert (demux->common.num_streams == demux->common.src->len); + for (stream_nr = 0; stream_nr < demux->common.src->len; stream_nr++) { GstMatroskaTrackContext *context; - context = g_ptr_array_index (demux->src, stream_nr); + context = g_ptr_array_index (demux->common.src, stream_nr); GST_LOG_OBJECT (demux, "Checking for resync on stream %d (%" GST_TIME_FORMAT ")", stream_nr, @@ -4345,18 +2570,19 @@ gst_matroska_demux_sync_streams (GstMatroskaDemux * demux) GST_LOG_OBJECT (demux, "Skipping sync on non-subtitle stream"); continue; } -#ifndef MKVDEMUX_MODIFICATION +#ifndef MKV_DEMUX_MODIFICATION /* does it lag? 0.5 seconds is a random threshold... * lag need only be considered if we have advanced into requested segment */ if (GST_CLOCK_TIME_IS_VALID (context->pos) && - GST_CLOCK_TIME_IS_VALID (demux->segment.last_stop) && - demux->segment.last_stop > demux->segment.start && - context->pos + (GST_SECOND / 2) < demux->segment.last_stop) { + GST_CLOCK_TIME_IS_VALID (demux->common.segment.last_stop) && + demux->common.segment.last_stop > demux->common.segment.start && + context->pos + (GST_SECOND / 2) < demux->common.segment.last_stop) { gint64 new_start; + GstEvent *event; - new_start = demux->segment.last_stop - (GST_SECOND / 2); - if (GST_CLOCK_TIME_IS_VALID (demux->segment.stop)) - new_start = MIN (new_start, demux->segment.stop); + new_start = demux->common.segment.last_stop - (GST_SECOND / 2); + if (GST_CLOCK_TIME_IS_VALID (demux->common.segment.stop)) + new_start = MIN (new_start, demux->common.segment.stop); GST_DEBUG_OBJECT (demux, "Synchronizing stream %d with others by advancing time " "from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT, stream_nr, @@ -4365,13 +2591,17 @@ gst_matroska_demux_sync_streams (GstMatroskaDemux * demux) context->pos = new_start; /* advance stream time */ - gst_pad_push_event (context->pad, - gst_event_new_new_segment (TRUE, demux->segment.rate, - demux->segment.format, new_start, - demux->segment.stop, new_start)); + event = gst_event_new_new_segment (TRUE, demux->common.segment.rate, + demux->common.segment.format, new_start, demux->common.segment.stop, + new_start); + GST_OBJECT_UNLOCK (demux); + gst_pad_push_event (context->pad, event); + GST_OBJECT_LOCK (demux); } #endif } + + GST_OBJECT_UNLOCK (demux); } static GstFlowReturn @@ -4781,6 +3011,38 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, return GST_FLOW_OK; } +/* @text must be null-terminated */ +static gboolean +gst_matroska_demux_subtitle_chunk_has_tag (GstElement * element, + const gchar * text) +{ + gchar *tag; + + /* yes, this might all lead to false positives ... */ + tag = (gchar *) text; + while ((tag = strchr (tag, '<'))) { + tag++; + if (*tag != '\0' && *(tag + 1) == '>') { + /* some common convenience ones */ + /* maybe any character will do here ? */ + switch (*tag) { + case 'b': + case 'i': + case 'u': + case 's': + return TRUE; + default: + return FALSE; + } + } + } + + if (strstr (text, "invalid_utf8) { if (g_utf8_validate (data, size, NULL)) { - return GST_FLOW_OK; + goto next; } GST_WARNING_OBJECT (element, "subtitle stream %d is not valid UTF-8, this " "is broken according to the matroska specification", stream->num); @@ -4841,56 +3103,37 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element, GST_BUFFER_MALLOCDATA (newbuf) = (guint8 *) utf8; GST_BUFFER_DATA (newbuf) = (guint8 *) utf8; GST_BUFFER_SIZE (newbuf) = strlen (utf8); - gst_buffer_copy_metadata (newbuf, *buf, - GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS); + gst_buffer_copy_metadata (newbuf, *buf, GST_BUFFER_COPY_ALL); gst_buffer_unref (*buf); *buf = newbuf; - return GST_FLOW_OK; -} + data = (const gchar *) GST_BUFFER_DATA (*buf); + size = GST_BUFFER_SIZE (*buf); -#ifdef MKVDEMUX_MODIFICATION -static GstFlowReturn -gst_matroska_rewind_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer* sub) -{ - GstFlowReturn ret = GST_FLOW_OK; - - /* Reverse trick play...*/ - g_queue_push_tail (stream->queue, sub); - - if ((demux->found_videokeyframe == TRUE) && (demux->found_audioframe == TRUE)) - { - //reached condition...so display in reverse direction - GstBuffer *QBuf; - int i = 0; - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *tmp = g_ptr_array_index (demux->src, i); - - /* make sure that we empty the queue */ - while (!g_queue_is_empty (tmp->queue)) - { - QBuf = g_queue_pop_tail (tmp->queue); - GST_DEBUG_OBJECT (demux, - "Pushing data of size %d for stream %d, time=%" - GST_TIME_FORMAT " and duration=%" GST_TIME_FORMAT, - GST_BUFFER_SIZE (QBuf), tmp->type, - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (QBuf)), - GST_TIME_ARGS (GST_BUFFER_DURATION (QBuf))); - - ret = gst_pad_push(tmp->pad, QBuf); - - if (ret != GST_FLOW_OK) - { - GST_DEBUG_OBJECT (demux, "Error in pad_push. Reason : %s\n", gst_flow_get_name (ret)); - } - } - } - } - - return ret; +next: + + if (sub_stream->check_markup) { + /* caps claim markup text, so we need to escape text, + * except if text is already markup and then needs no further escaping */ + sub_stream->seen_markup_tag = sub_stream->seen_markup_tag || + gst_matroska_demux_subtitle_chunk_has_tag (element, data); + + if (!sub_stream->seen_markup_tag) { + utf8 = g_markup_escape_text (data, size); + + newbuf = gst_buffer_new (); + GST_BUFFER_MALLOCDATA (newbuf) = (guint8 *) utf8; + GST_BUFFER_DATA (newbuf) = (guint8 *) utf8; + GST_BUFFER_SIZE (newbuf) = strlen (utf8); + gst_buffer_copy_metadata (newbuf, *buf, GST_BUFFER_COPY_ALL); + gst_buffer_unref (*buf); + + *buf = newbuf; + } + } + + return GST_FLOW_OK; } -#endif static GstFlowReturn gst_matroska_demux_check_aac (GstElement * element, @@ -4935,7 +3178,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GstFlowReturn ret = GST_FLOW_OK; gboolean readblock = FALSE; guint32 id; - guint64 block_duration = 0; + guint64 block_duration = -1; GstBuffer *buf = NULL; gint stream_num = -1, n, laces = 0; guint size = 0; @@ -4983,14 +3226,15 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, size -= n; /* fetch stream from num */ - stream_num = gst_matroska_demux_stream_from_num (demux, num); + stream_num = gst_matroska_read_common_stream_from_num (&demux->common, + num); if (G_UNLIKELY (size < 3)) { GST_WARNING_OBJECT (demux, "Invalid size %u", size); /* non-fatal, try next block(group) */ ret = GST_FLOW_OK; goto done; } else if (G_UNLIKELY (stream_num < 0 || - stream_num >= demux->num_streams)) { + stream_num >= demux->common.num_streams)) { /* let's not give up on a stray invalid track number */ GST_WARNING_OBJECT (demux, "Invalid stream %d for track number %" G_GUINT64_FORMAT @@ -4998,18 +3242,17 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, goto done; } - stream = g_ptr_array_index (demux->src, stream_num); - -#ifdef MKVDEMUX_MODIFICATION - if (demux->segment.rate < 0.0) - { - if ((stream_num+1) == GST_MATROSKA_TRACK_TYPE_AUDIO) - { - /* found at least one audio block */ - demux->found_audioframe = TRUE; - } - } -#endif + stream = g_ptr_array_index (demux->common.src, stream_num); + +#ifdef MKV_DEMUX_MODIFICATION + if (demux->common.segment.rate < 0.0) { + if ((stream_num+1) == GST_MATROSKA_TRACK_TYPE_AUDIO) { + /* found at least one audio block */ + demux->found_audioframe = TRUE; + } + } +#endif + /* time (relative to cluster time) */ time = ((gint16) GST_READ_UINT16_BE (data)); data += 2; @@ -5168,7 +3411,8 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, } default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "BlockGroup", id); + ret = gst_matroska_read_common_parse_skip (&demux->common, ebml, + "BlockGroup", id); break; case GST_MATROSKA_ID_BLOCKVIRTUAL: @@ -5195,7 +3439,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, gint64 lace_time = 0; gboolean delta_unit; - stream = g_ptr_array_index (demux->src, stream_num); + stream = g_ptr_array_index (demux->common.src, stream_num); if (cluster_time != GST_CLOCK_TIME_NONE) { /* FIXME: What to do with negative timestamps? Give timestamp 0 or -1? @@ -5204,11 +3448,11 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, lace_time = 0; } else { if (stream->timecodescale == 1.0) - lace_time = (cluster_time + time) * demux->time_scale; + lace_time = (cluster_time + time) * demux->common.time_scale; else lace_time = gst_util_guint64_to_gdouble ((cluster_time + time) * - demux->time_scale) * stream->timecodescale; + demux->common.time_scale) * stream->timecodescale; } } else { lace_time = GST_CLOCK_TIME_NONE; @@ -5216,27 +3460,37 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, /* need to refresh segment info ASAP */ if (GST_CLOCK_TIME_IS_VALID (lace_time) && demux->need_newsegment) { + guint64 clace_time; + GST_DEBUG_OBJECT (demux, "generating segment starting at %" GST_TIME_FORMAT, GST_TIME_ARGS (lace_time)); - /* pretend we seeked here */ - gst_segment_set_seek (&demux->segment, demux->segment.rate, - GST_FORMAT_TIME, 0, GST_SEEK_TYPE_SET, lace_time, - GST_SEEK_TYPE_SET, GST_CLOCK_TIME_NONE, NULL); + if (!GST_CLOCK_TIME_IS_VALID (demux->stream_start_time)) { + demux->stream_start_time = lace_time; + GST_DEBUG_OBJECT (demux, + "Setting stream start time to %" GST_TIME_FORMAT, + GST_TIME_ARGS (lace_time)); + } + clace_time = MAX (lace_time, demux->stream_start_time); + gst_segment_set_newsegment (&demux->common.segment, FALSE, + demux->common.segment.rate, GST_FORMAT_TIME, clace_time, + GST_CLOCK_TIME_NONE, clace_time - demux->stream_start_time); /* now convey our segment notion downstream */ gst_matroska_demux_send_event (demux, gst_event_new_new_segment (FALSE, - demux->segment.rate, demux->segment.format, demux->segment.start, - demux->segment.stop, demux->segment.start)); + demux->common.segment.rate, demux->common.segment.format, + demux->common.segment.start, demux->common.segment.stop, + demux->common.segment.start)); demux->need_newsegment = FALSE; } - if (block_duration) { + if (block_duration != -1) { if (stream->timecodescale == 1.0) - duration = gst_util_uint64_scale (block_duration, demux->time_scale, 1); + duration = gst_util_uint64_scale (block_duration, + demux->common.time_scale, 1); else duration = gst_util_gdouble_to_guint64 (gst_util_guint64_to_gdouble - (gst_util_uint64_scale (block_duration, demux->time_scale, + (gst_util_uint64_scale (block_duration, demux->common.time_scale, 1)) * stream->timecodescale); } else if (stream->default_duration) { duration = stream->default_duration * laces; @@ -5258,7 +3512,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, for (n = 0; n < laces; n++) { GstBuffer *sub; -#ifdef MKVDEMUX_MODIFICATION +#ifdef MKV_DEMUX_MODIFICATION gboolean skip_flag = FALSE; #endif @@ -5272,7 +3526,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, will instad skip until the next keyframe. */ if (GST_CLOCK_TIME_IS_VALID (lace_time) && stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && - stream->index_table && demux->segment.rate > 0.0) { + stream->index_table && demux->common.segment.rate > 0.0) { GstMatroskaTrackVideoContext *videocontext = (GstMatroskaTrackVideoContext *) stream; GstClockTime earliest_time; @@ -5281,7 +3535,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GST_OBJECT_LOCK (demux); earliest_time = videocontext->earliest_time; GST_OBJECT_UNLOCK (demux); - earliest_stream_time = gst_segment_to_position (&demux->segment, + earliest_stream_time = gst_segment_to_position (&demux->common.segment, GST_FORMAT_TIME, earliest_time); if (GST_CLOCK_TIME_IS_VALID (lace_time) && @@ -5328,13 +3582,13 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, if (GST_CLOCK_TIME_IS_VALID (lace_time)) { GstClockTime last_stop_end; -#ifndef MKVDEMUX_MODIFICATION +#ifndef MKV_DEMUX_MODIFICATION /* Check if this stream is after segment stop */ - if (GST_CLOCK_TIME_IS_VALID (demux->segment.stop) && - lace_time >= demux->segment.stop) { + if (GST_CLOCK_TIME_IS_VALID (demux->common.segment.stop) && + lace_time >= demux->common.segment.stop) { GST_DEBUG_OBJECT (demux, "Stream %d after segment stop %" GST_TIME_FORMAT, stream->index, - GST_TIME_ARGS (demux->segment.stop)); + GST_TIME_ARGS (demux->common.segment.stop)); gst_buffer_unref (sub); goto eos; } @@ -5346,19 +3600,33 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, } #endif - /* handle gaps, e.g. non-zero start-time, or an cue index entry - * that landed us with timestamps not quite intended */ - if (GST_CLOCK_TIME_IS_VALID (demux->segment.last_stop) && - demux->segment.rate > 0.0) { + /* handle gaps, e.g. non-zero start-time, or an cue index entry + * that landed us with timestamps not quite intended */ + GST_OBJECT_LOCK (demux); + if (demux->max_gap_time && +#ifdef MKV_DEMUX_MODIFICATION + GST_CLOCK_TIME_IS_VALID (/*demux->last_stop_end*/demux->common.segment.last_stop) && + demux->common.segment.rate > 0.0) { +#else + GST_CLOCK_TIME_IS_VALID (demux->last_stop_end) && + demux->common.segment.rate > 0.0) { +#endif + GstClockTimeDiff diff; + GstEvent *event1, *event2; /* only send newsegments with increasing start times, * otherwise if these go back and forth downstream (sinks) increase * accumulated time and running_time */ - diff = GST_CLOCK_DIFF (demux->segment.last_stop, lace_time); - if (diff > 2 * GST_SECOND && lace_time > demux->segment.start && - (!GST_CLOCK_TIME_IS_VALID (demux->segment.stop) || - lace_time < demux->segment.stop)) { +#ifdef MKV_DEMUX_MODIFICATION + diff = GST_CLOCK_DIFF (/*demux->last_stop_end*/demux->common.segment.last_stop, lace_time); +#else + diff = GST_CLOCK_DIFF (demux->last_stop_end, lace_time); +#endif + if (diff > 0 && diff > demux->max_gap_time + && lace_time > demux->common.segment.start + && (!GST_CLOCK_TIME_IS_VALID (demux->common.segment.stop) + || lace_time < demux->common.segment.stop)) { GST_DEBUG_OBJECT (demux, "Gap of %" G_GINT64_FORMAT " ns detected in" "stream %d (%" GST_TIME_FORMAT " -> %" GST_TIME_FORMAT "). " @@ -5368,28 +3636,33 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, /* send newsegment events such that the gap is not accounted in * accum time, hence running_time */ /* close ahead of gap */ - gst_matroska_demux_send_event (demux, - gst_event_new_new_segment (TRUE, demux->segment.rate, - demux->segment.format, demux->segment.last_stop, - demux->segment.last_stop, demux->segment.last_stop)); + event1 = gst_event_new_new_segment (TRUE, + demux->common.segment.rate, demux->common.segment.format, + demux->last_stop_end, demux->last_stop_end, + demux->last_stop_end); /* skip gap */ - gst_matroska_demux_send_event (demux, - gst_event_new_new_segment (FALSE, demux->segment.rate, - demux->segment.format, lace_time, demux->segment.stop, - lace_time)); + event2 = gst_event_new_new_segment (FALSE, + demux->common.segment.rate, + demux->common.segment.format, lace_time, + demux->common.segment.stop, lace_time); + GST_OBJECT_UNLOCK (demux); + gst_matroska_demux_send_event (demux, event1); + gst_matroska_demux_send_event (demux, event2); + GST_OBJECT_LOCK (demux); /* align segment view with downstream, * prevents double-counting accum when closing segment */ - gst_segment_set_newsegment (&demux->segment, FALSE, - demux->segment.rate, demux->segment.format, lace_time, - demux->segment.stop, lace_time); - demux->segment.last_stop = lace_time; + gst_segment_set_newsegment (&demux->common.segment, FALSE, + demux->common.segment.rate, demux->common.segment.format, + lace_time, demux->common.segment.stop, lace_time); + demux->common.segment.last_stop = lace_time; } } - if (!GST_CLOCK_TIME_IS_VALID (demux->segment.last_stop) - || demux->segment.last_stop < lace_time) { - demux->segment.last_stop = lace_time; + if (!GST_CLOCK_TIME_IS_VALID (demux->common.segment.last_stop) + || demux->common.segment.last_stop < lace_time) { + demux->common.segment.last_stop = lace_time; } + GST_OBJECT_UNLOCK (demux); last_stop_end = lace_time; if (duration) { @@ -5401,13 +3674,21 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, demux->last_stop_end < last_stop_end) demux->last_stop_end = last_stop_end; - if (demux->segment.duration == -1 || - demux->segment.duration < lace_time) { - gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, - last_stop_end); - gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_duration (GST_OBJECT_CAST (demux), - GST_FORMAT_TIME, GST_CLOCK_TIME_NONE)); + GST_OBJECT_LOCK (demux); + if (demux->common.segment.duration == -1 || + demux->stream_start_time + demux->common.segment.duration < + last_stop_end) { + gst_segment_set_duration (&demux->common.segment, GST_FORMAT_TIME, + last_stop_end - demux->stream_start_time); + GST_OBJECT_UNLOCK (demux); + if (!demux->invalid_duration) { + gst_element_post_message (GST_ELEMENT_CAST (demux), + gst_message_new_duration (GST_OBJECT_CAST (demux), + GST_FORMAT_TIME, GST_CLOCK_TIME_NONE)); + demux->invalid_duration = TRUE; + } + } else { + GST_OBJECT_UNLOCK (demux); } } @@ -5427,23 +3708,20 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, if (stream->from_offset == -1) stream->from_offset = offset; - -#ifdef MKVDEMUX_MODIFICATION - if ((demux->segment.rate < 0.0) && ((stream_num+1) == GST_MATROSKA_TRACK_TYPE_VIDEO)) - { - if (GST_BUFFER_FLAG_IS_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT)) - { - GST_DEBUG_OBJECT (demux, "skipping delta unit"); - gst_buffer_unref (sub); - goto done; - } - else - { - /* found key frame*/ - demux->found_videokeyframe = TRUE; - } - } +#ifdef MKV_DEMUX_MODIFICATION + if ((demux->common.segment.rate < 0.0) && ((stream_num+1) == GST_MATROSKA_TRACK_TYPE_VIDEO)) { + if (GST_BUFFER_FLAG_IS_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT)) { + GST_DEBUG_OBJECT (demux, "skipping delta unit"); + gst_buffer_unref (sub); + goto done; + } else { + /* found key frame*/ + demux->found_videokeyframe = TRUE; + } + } + demux->current_ts = GST_BUFFER_TIMESTAMP (sub); #endif + GST_DEBUG_OBJECT (demux, "Pushing lace %d, data of size %d for stream %d, time=%" GST_TIME_FORMAT " and duration=%" GST_TIME_FORMAT, n, @@ -5451,16 +3729,16 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (sub)), GST_TIME_ARGS (GST_BUFFER_DURATION (sub))); - if (demux->element_index) { + if (demux->common.element_index) { if (stream->index_writer_id == -1) - gst_index_get_writer_id (demux->element_index, + gst_index_get_writer_id (demux->common.element_index, GST_OBJECT (stream->pad), &stream->index_writer_id); GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %" G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (sub)), cluster_offset, stream->index_writer_id); - gst_index_add_association (demux->element_index, + gst_index_add_association (demux->common.element_index, stream->index_writer_id, GST_BUFFER_FLAG_IS_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT) ? 0 : GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (sub), GST_FORMAT_BYTES, @@ -5474,32 +3752,52 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GST_LOG_OBJECT (demux, "running post process"); ret = stream->postprocess_frame (GST_ELEMENT (demux), stream, &sub); } -#ifdef MKVDEMUX_MODIFICATION - if (demux->video && demux->segment.rate > 1.0 && - stream->type <= GST_MATROSKA_TRACK_TYPE_AUDIO) - { + +#ifdef MKV_DEMUX_MODIFICATION + if (demux->video && demux->common.segment.rate > 1.0 + && stream->type <= GST_MATROSKA_TRACK_TYPE_AUDIO) { skip_flag = FALSE; - ret = gst_sec_matroska_forward_trickplay (demux, stream, sub, &skip_flag); - if (skip_flag == FALSE) - { - ret = gst_pad_push (stream->pad, sub); - } - else - { + if(GST_BUFFER_TIMESTAMP(sub) >= demux->common.segment.start) { + GST_BUFFER_FLAG_UNSET(sub, GST_BUFFER_FLAG_DELTA_UNIT); + GST_INFO("Entering into forward Trickplay"); + ret = gst_matroska_demux_forward_trickplay (demux, stream, sub, &skip_flag); + } + if (skip_flag == FALSE) { + GST_INFO("buffer pushed %"GST_TIME_FORMAT, GST_TIME_ARGS(GST_BUFFER_TIMESTAMP(sub))); + ret = gst_pad_push (stream->pad, sub); + } else { + GST_INFO("Unreffing the buffer %"GST_TIME_FORMAT, GST_TIME_ARGS(GST_BUFFER_TIMESTAMP(sub))); + gst_buffer_unref (sub); + } + } else if (demux->common.segment.rate < 0.0) { + ret = gst_matroska_demux_backward_trickplay (demux, stream, sub); + } else +#endif + { + /* At this point, we have a sub-buffer pointing at data within a larger + buffer. This data might not be aligned with anything. If the data is + raw samples though, we want it aligned to the raw type (eg, 4 bytes + for 32 bit samples, etc), or bad things will happen downstream as + elements typically assume minimal alignment. + Therefore, create an aligned copy if necessary. */ + g_assert (stream->alignment <= G_MEM_ALIGN); + if (((guintptr) GST_BUFFER_DATA (sub)) & (stream->alignment - 1)) { + GstBuffer *buffer = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (sub)); + memcpy (GST_BUFFER_DATA (buffer), GST_BUFFER_DATA (sub), + GST_BUFFER_SIZE (sub)); + gst_buffer_copy_metadata (buffer, sub, GST_BUFFER_COPY_ALL); + GST_DEBUG_OBJECT (demux, "We want output aligned on %d, reallocated", + stream->alignment); gst_buffer_unref (sub); + sub = buffer; } - } - else if (demux->segment.rate < 0.0) - { - ret = gst_matroska_rewind_trickplay (demux, stream, sub); - } - else -#endif - { - ret = gst_pad_push (stream->pad, sub); - } - if (demux->segment.rate < 0) { - if (lace_time > demux->segment.stop && ret == GST_FLOW_UNEXPECTED) { + + ret = gst_pad_push (stream->pad, sub); + } + + if (demux->common.segment.rate < 0) { + if (lace_time > demux->common.segment.stop + && ret == GST_FLOW_UNEXPECTED) { /* In reverse playback we can get a GST_FLOW_UNEXPECTED when * we are at the end of the segment, so we just need to jump * back to the previous section. */ @@ -5619,7 +3917,8 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux, } default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "SeekHead", id); + ret = gst_matroska_read_common_parse_skip (&demux->common, ebml, + "SeekHead", id); break; } } @@ -5648,8 +3947,8 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux, guint needed; /* remember */ - length = gst_matroska_demux_get_length (demux); - before_pos = demux->offset; + length = gst_matroska_read_common_get_length (&demux->common); + before_pos = demux->common.offset; if (length == (guint64) - 1) { GST_DEBUG_OBJECT (demux, "no upstream length, skipping SeakHead entry"); @@ -5657,18 +3956,19 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux, } /* check for validity */ - if (seek_pos + demux->ebml_segment_start + 12 >= length) { + if (seek_pos + demux->common.ebml_segment_start + 12 >= length) { GST_WARNING_OBJECT (demux, "SeekHead reference lies outside file!" " (%" G_GUINT64_FORMAT "+%" G_GUINT64_FORMAT "+12 >= %" - G_GUINT64_FORMAT ")", seek_pos, demux->ebml_segment_start, length); + G_GUINT64_FORMAT ")", seek_pos, demux->common.ebml_segment_start, + length); break; } /* only pick up index location when streaming */ if (demux->streaming) { if (seek_id == GST_MATROSKA_ID_CUES) { - demux->index_offset = seek_pos + demux->ebml_segment_start; + demux->index_offset = seek_pos + demux->common.ebml_segment_start; GST_DEBUG_OBJECT (demux, "Cues located at offset %" G_GUINT64_FORMAT, demux->index_offset); } @@ -5676,17 +3976,18 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux, } /* seek */ - demux->offset = seek_pos + demux->ebml_segment_start; + demux->common.offset = seek_pos + demux->common.ebml_segment_start; /* check ID */ - if ((ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, - &needed)) != GST_FLOW_OK) + if ((ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed)) != + GST_FLOW_OK) goto finish; if (id != seek_id) { GST_WARNING_OBJECT (demux, "We looked for ID=0x%x but got ID=0x%x (pos=%" G_GUINT64_FORMAT ")", - seek_id, id, seek_pos + demux->ebml_segment_start); + seek_id, id, seek_pos + demux->common.ebml_segment_start); } else { /* now parse */ ret = gst_matroska_demux_parse_id (demux, id, length, needed); @@ -5694,13 +3995,13 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux, finish: /* seek back */ - demux->offset = before_pos; + demux->common.offset = before_pos; break; } case GST_MATROSKA_ID_CLUSTER: { - guint64 pos = seek_pos + demux->ebml_segment_start; + guint64 pos = seek_pos + demux->common.ebml_segment_start; GST_LOG_OBJECT (demux, "Cluster position"); if (G_UNLIKELY (!demux->clusters)) @@ -5748,7 +4049,8 @@ gst_matroska_demux_parse_contents (GstMatroskaDemux * demux, GstEbmlRead * ebml) } default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "SeekHead", id); + ret = gst_matroska_read_common_parse_skip (&demux->common, + ebml, "SeekHead", id); break; } } @@ -5797,7 +4099,7 @@ gst_matroska_demux_check_parse_error (GstMatroskaDemux * demux) /* just repositioning to where next cluster should be and try from there */ GST_WARNING_OBJECT (demux, "parse error, trying next cluster expected at %" G_GUINT64_FORMAT, demux->next_cluster_offset); - demux->offset = demux->next_cluster_offset; + demux->common.offset = demux->next_cluster_offset; demux->next_cluster_offset = 0; return FALSE; } else { @@ -5805,7 +4107,7 @@ gst_matroska_demux_check_parse_error (GstMatroskaDemux * demux) /* sigh, one last attempt above and beyond call of duty ...; * search for cluster mark following current pos */ - pos = demux->offset; + pos = demux->common.offset; GST_WARNING_OBJECT (demux, "parse error, looking for next cluster"); if (gst_matroska_demux_search_cluster (demux, &pos) != GST_FLOW_OK) { /* did not work, give up */ @@ -5813,7 +4115,7 @@ gst_matroska_demux_check_parse_error (GstMatroskaDemux * demux) } else { GST_DEBUG_OBJECT (demux, "... found at %" G_GUINT64_FORMAT, pos); /* try that position */ - demux->offset = pos; + demux->common.offset = pos; return FALSE; } } @@ -5823,7 +4125,7 @@ static inline GstFlowReturn gst_matroska_demux_flush (GstMatroskaDemux * demux, guint flush) { GST_LOG_OBJECT (demux, "skipping %d bytes", flush); - demux->offset += flush; + demux->common.offset += flush; if (demux->streaming) { GstFlowReturn ret; @@ -5831,8 +4133,8 @@ gst_matroska_demux_flush (GstMatroskaDemux * demux, guint flush) ret = gst_matroska_demux_check_read_size (demux, flush); if (ret != GST_FLOW_OK) return ret; - if (flush <= gst_adapter_available (demux->adapter)) - gst_adapter_flush (demux->adapter, flush); + if (flush <= gst_adapter_available (demux->common.adapter)) + gst_adapter_flush (demux->common.adapter, flush); else return GST_FLOW_UNEXPECTED; } @@ -5864,16 +4166,17 @@ gst_matroska_demux_take (GstMatroskaDemux * demux, guint64 bytes, goto exit; } if (demux->streaming) { - if (gst_adapter_available (demux->adapter) >= bytes) - buffer = gst_adapter_take_buffer (demux->adapter, bytes); + if (gst_adapter_available (demux->common.adapter) >= bytes) + buffer = gst_adapter_take_buffer (demux->common.adapter, bytes); else ret = GST_FLOW_UNEXPECTED; } else - ret = gst_matroska_demux_peek_bytes (demux, demux->offset, bytes, &buffer, - NULL); + ret = gst_matroska_read_common_peek_bytes (&demux->common, + demux->common.offset, bytes, &buffer, NULL); if (G_LIKELY (buffer)) { - gst_ebml_read_init (ebml, GST_ELEMENT_CAST (demux), buffer, demux->offset); - demux->offset += bytes; + gst_ebml_read_init (ebml, GST_ELEMENT_CAST (demux), buffer, + demux->common.offset); + demux->common.offset += bytes; } exit: return ret; @@ -5887,7 +4190,7 @@ gst_matroska_demux_check_seekability (GstMatroskaDemux * demux) gint64 start = -1, stop = -1; query = gst_query_new_seeking (GST_FORMAT_BYTES); - if (!gst_pad_peer_query (demux->sinkpad, query)) { + if (!gst_pad_peer_query (demux->common.sinkpad, query)) { GST_DEBUG_OBJECT (demux, "seeking query failed"); goto done; } @@ -5899,7 +4202,7 @@ gst_matroska_demux_check_seekability (GstMatroskaDemux * demux) GstFormat fmt = GST_FORMAT_BYTES; GST_DEBUG_OBJECT (demux, "doing duration query to fix up unset stop"); - gst_pad_query_peer_duration (demux->sinkpad, &fmt, &stop); + gst_pad_query_peer_duration (demux->common.sinkpad, &fmt, &stop); } /* if upstream doesn't know the size, it's likely that it's not seekable in @@ -5930,11 +4233,12 @@ gst_matroska_demux_find_tracks (GstMatroskaDemux * demux) "Found Cluster element before Tracks, searching Tracks"); /* remember */ - before_pos = demux->offset; + before_pos = demux->common.offset; /* Search Tracks element */ while (TRUE) { - ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); if (ret != GST_FLOW_OK) break; @@ -5945,8 +4249,8 @@ gst_matroska_demux_find_tracks (GstMatroskaDemux * demux) ret = gst_matroska_demux_check_read_size (demux, length); break; } else { - demux->offset += needed; - demux->offset += length; + demux->common.offset += needed; + demux->common.offset += length; } continue; } @@ -5957,7 +4261,7 @@ gst_matroska_demux_find_tracks (GstMatroskaDemux * demux) } /* seek back */ - demux->offset = before_pos; + demux->common.offset = before_pos; return ret; } @@ -5980,7 +4284,7 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, GstFlowReturn ret = GST_FLOW_OK; guint64 read; - GST_DEBUG_OBJECT (demux, "Parsing Element id 0x%x, " + GST_LOG_OBJECT (demux, "Parsing Element id 0x%x, " "size %" G_GUINT64_FORMAT ", prefix %d", id, length, needed); /* if we plan to read and parse this element, we need prefix (id + length) @@ -5990,15 +4294,15 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, if (G_LIKELY (length != G_MAXUINT64)) read += needed; - switch (demux->state) { - case GST_MATROSKA_DEMUX_STATE_START: + switch (demux->common.state) { + case GST_MATROSKA_READ_STATE_START: switch (id) { case GST_EBML_ID_HEADER: GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_header (demux, &ebml); + ret = gst_matroska_read_common_parse_header (&demux->common, &ebml); if (ret != GST_FLOW_OK) goto parse_failed; - demux->state = GST_MATROSKA_DEMUX_STATE_SEGMENT; + demux->common.state = GST_MATROSKA_READ_STATE_SEGMENT; gst_matroska_demux_check_seekability (demux); break; default: @@ -6006,18 +4310,18 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, break; } break; - case GST_MATROSKA_DEMUX_STATE_SEGMENT: + case GST_MATROSKA_READ_STATE_SEGMENT: switch (id) { case GST_MATROSKA_ID_SEGMENT: /* eat segment prefix */ GST_READ_CHECK (gst_matroska_demux_flush (demux, needed)); GST_DEBUG_OBJECT (demux, "Found Segment start at offset %" G_GUINT64_FORMAT, - demux->offset); + demux->common.offset); /* seeks are from the beginning of the segment, * after the segment ID/length */ - demux->ebml_segment_start = demux->offset; - demux->state = GST_MATROSKA_DEMUX_STATE_HEADER; + demux->common.ebml_segment_start = demux->common.offset; + demux->common.state = GST_MATROSKA_READ_STATE_HEADER; break; default: GST_WARNING_OBJECT (demux, @@ -6027,19 +4331,23 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, break; } break; - case GST_MATROSKA_DEMUX_STATE_SCANNING: + case GST_MATROSKA_READ_STATE_SCANNING: if (id != GST_MATROSKA_ID_CLUSTER && id != GST_MATROSKA_ID_CLUSTERTIMECODE) goto skip; /* fall-through */ - case GST_MATROSKA_DEMUX_STATE_HEADER: - case GST_MATROSKA_DEMUX_STATE_DATA: - case GST_MATROSKA_DEMUX_STATE_SEEK: + case GST_MATROSKA_READ_STATE_HEADER: + case GST_MATROSKA_READ_STATE_DATA: + case GST_MATROSKA_READ_STATE_SEEK: switch (id) { case GST_MATROSKA_ID_SEGMENTINFO: - if (!demux->segmentinfo_parsed) { + if (!demux->common.segmentinfo_parsed) { GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_info (demux, &ebml); + ret = gst_matroska_read_common_parse_info (&demux->common, + GST_ELEMENT_CAST (demux), &ebml); +#ifdef MKV_DEMUX_MODIFICATION + demux->duration = demux->common.segment.duration; /* need to check */ +#endif } else { GST_READ_CHECK (gst_matroska_demux_flush (demux, read)); } @@ -6063,20 +4371,19 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto no_tracks; } } - if (G_UNLIKELY (demux->state == GST_MATROSKA_DEMUX_STATE_HEADER)) { - demux->state = GST_MATROSKA_DEMUX_STATE_DATA; - demux->first_cluster_offset = demux->offset; + if (G_UNLIKELY (demux->common.state + == GST_MATROSKA_READ_STATE_HEADER)) { + demux->common.state = GST_MATROSKA_READ_STATE_DATA; + demux->first_cluster_offset = demux->common.offset; GST_DEBUG_OBJECT (demux, "signaling no more pads"); gst_element_no_more_pads (GST_ELEMENT (demux)); - /* send initial newsegment */ - gst_matroska_demux_send_event (demux, - gst_event_new_new_segment (FALSE, 1.0, - GST_FORMAT_TIME, 0, - (demux->segment.duration > - 0) ? demux->segment.duration : -1, 0)); + /* send initial newsegment - we wait till we know the first + incoming timestamp, so we can properly set the start of + the segment. */ + demux->need_newsegment = TRUE; } demux->cluster_time = GST_CLOCK_TIME_NONE; - demux->cluster_offset = demux->offset; + demux->cluster_offset = demux->common.offset; if (G_UNLIKELY (!demux->seek_first && demux->seek_block)) { GST_DEBUG_OBJECT (demux, "seek target block %" G_GUINT64_FORMAT " not found in Cluster, trying next Cluster's first block instead", @@ -6089,7 +4396,6 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, demux->next_cluster_offset = demux->cluster_offset + read; /* eat cluster prefix */ gst_matroska_demux_flush (demux, needed); - break; case GST_MATROSKA_ID_CLUSTERTIMECODE: { @@ -6100,16 +4406,17 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto parse_failed; GST_DEBUG_OBJECT (demux, "ClusterTimeCode: %" G_GUINT64_FORMAT, num); demux->cluster_time = num; - if (demux->element_index) { - if (demux->element_index_writer_id == -1) - gst_index_get_writer_id (demux->element_index, - GST_OBJECT (demux), &demux->element_index_writer_id); + if (demux->common.element_index) { + if (demux->common.element_index_writer_id == -1) + gst_index_get_writer_id (demux->common.element_index, + GST_OBJECT (demux), &demux->common.element_index_writer_id); GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %" G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (demux->cluster_time), demux->cluster_offset, - demux->element_index_writer_id); - gst_index_add_association (demux->element_index, - demux->element_index_writer_id, GST_ASSOCIATION_FLAG_KEY_UNIT, + demux->common.element_index_writer_id); + gst_index_add_association (demux->common.element_index, + demux->common.element_index_writer_id, + GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, demux->cluster_time, GST_FORMAT_BYTES, demux->cluster_offset, NULL); } @@ -6125,97 +4432,92 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, &ebml, demux->cluster_time, demux->cluster_offset, FALSE); } -#ifdef MKVDEMUX_MODIFICATION - if ((demux->segment.rate < 0.0) && (demux->found_videokeyframe == TRUE) && (demux->found_audioframe == TRUE)) - { - /* Naveen: we displayed at least one one audio block and one video key frame - Now, goto previous cluster */ - int i =0; - int minusone = -1; - guint64 duration = 0; - GstClockTime time_position; - GstMatroskaIndex *entry = NULL; - - - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { - GST_DEBUG ("video track duration = %"G_GUINT64_FORMAT"position = %"GST_TIME_FORMAT"\n", - stream->default_duration, GST_TIME_ARGS(stream->pos)); - duration = stream->default_duration; - time_position = stream->pos; - } - } - - if((time_position - (minusone *demux->segment.rate)*((double)duration/1000000000))> 0) - { - time_position -= (minusone *demux->segment.rate)*((double)duration/1000000000); - } - else - { - time_position=0; - } - - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); - guint64 offset; - - GST_OBJECT_LOCK (demux); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { - if ((entry = gst_matroskademux_do_index_seek (demux, stream, time_position, -1, FALSE)) == NULL) { - GST_DEBUG_OBJECT (demux, "No matching seek entry in index"); - } - - GST_DEBUG_OBJECT (demux, "pos = %"G_GUINT64_FORMAT", track = %d, block = %d, time = %"GST_TIME_FORMAT"\n", - entry->pos, entry->track, entry->block, GST_TIME_ARGS(entry->time)); - - offset = entry->pos + demux->ebml_segment_start; - if (offset >= gst_matroska_demux_get_length(demux)) - { - GST_INFO_OBJECT (demux, " Seek failed"); - goto seek_failed; - } - demux->offset = offset; - } - stream->pos = entry->time; - stream->set_discont = TRUE; - stream->last_flow = GST_FLOW_OK; - if (stream->pos > 0.0) - { - stream->eos = FALSE; - } - else - { - stream->eos = TRUE; - GST_INFO_OBJECT (demux, "Reached EOS....."); - } - demux->segment.last_stop = entry->time; - - GST_OBJECT_UNLOCK (demux); - - } - - if (entry->time == 0.0) - { - gst_segment_init (&demux->segment, GST_FORMAT_TIME); - gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, demux->duration); - - /* send new_segment event with start =0 and stop = duration */ - demux->new_segment = gst_event_new_new_segment_full (TRUE, - demux->segment.rate, demux->segment.applied_rate, demux->segment.format, - demux->segment.start, demux->segment.stop, demux->segment.time); - } - - demux->found_videokeyframe = FALSE; - demux->found_audioframe = FALSE; - - return ret; - } -#endif +#ifdef MKV_DEMUX_MODIFICATION + if ((demux->common.segment.rate < 0.0) && (demux->found_videokeyframe == TRUE) + && (demux->found_audioframe == TRUE) && (demux->current_ts >= demux->next_keyframe_ts) ) { + /* we displayed at least one one audio block and one video key frame + Now, goto previous cluster */ + int i =0; + int minusone = -1; + guint64 duration = 0; + GstClockTime time_position; + GstMatroskaIndex *entry = NULL; + + demux->next_keyframe_ts = demux->prev_keyframe_ts; + GST_INFO("next_keyframe_ts is %"GST_TIME_FORMAT, GST_TIME_ARGS(demux->next_keyframe_ts)); + demux->video_keyframe_pushed = FALSE; + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + GST_DEBUG ("video track duration = %"G_GUINT64_FORMAT"position = %"GST_TIME_FORMAT"\n", + stream->default_duration, GST_TIME_ARGS(stream->pos)); + duration = stream->default_duration; + time_position = stream->pos; + } + } + + if((time_position - (minusone *demux->common.segment.rate)*((double)duration/1000000000))> 0) { + time_position -= (minusone *demux->common.segment.rate)*((double)duration/1000000000); + } else { + time_position=0; + } + + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); + guint64 offset; + + GST_OBJECT_LOCK (demux); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + if ((entry = gst_matroska_read_common_do_index_seek (&demux->common, stream, time_position, NULL, NULL)) == NULL) { + GST_DEBUG_OBJECT (demux, "No matching seek entry in index"); + } + + GST_DEBUG_OBJECT (demux, "pos = %"G_GUINT64_FORMAT", track = %d, block = %d, time = %"GST_TIME_FORMAT"\n", + entry->pos, entry->track, entry->block, GST_TIME_ARGS(entry->time)); + + offset = entry->pos + demux->common.ebml_segment_start; + if (offset >= gst_matroska_read_common_get_length(&demux->common)) { + GST_INFO_OBJECT (demux, " Seek failed"); + goto seek_failed; + } + demux->common.offset = offset; + } + stream->pos = entry->time; + stream->set_discont = TRUE; + stream->last_flow = GST_FLOW_OK; + if (stream->pos > 0.0) { + stream->eos = FALSE; + } else { + if(demux->is_eos_blockgroup == FALSE) { + demux->is_eos_blockgroup = TRUE; + } else { + stream->eos = TRUE; + GST_INFO_OBJECT (demux, "Reached EOS....."); + } + } + demux->common.segment.last_stop = entry->time; + + GST_OBJECT_UNLOCK (demux); + } + + if (entry->time == 0.0 && demux->is_eos_blockgroup == TRUE && demux->is_eos_simpleblock == TRUE) { + gst_segment_init (&demux->common.segment, GST_FORMAT_TIME); + gst_segment_set_duration (&demux->common.segment, GST_FORMAT_TIME, demux->duration); + + /* send new_segment event with start =0 and stop = duration */ + demux->new_segment = gst_event_new_new_segment_full (TRUE, + demux->common.segment.rate, demux->common.segment.applied_rate, demux->common.segment.format, + demux->common.segment.start, demux->common.segment.stop, demux->common.segment.time); + } + + demux->found_videokeyframe = FALSE; + demux->found_audioframe = FALSE; + demux->prev_keyframe_ts = entry->time; + GST_INFO("prev_keyframe in blockgroup is %"GST_TIME_FORMAT,GST_TIME_ARGS(demux->prev_keyframe_ts)); + return ret; + } +#endif + DEBUG_ELEMENT_STOP (demux, &ebml, "BlockGroup", ret); break; case GST_MATROSKA_ID_SIMPLEBLOCK: @@ -6223,150 +4525,132 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto skip; GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); DEBUG_ELEMENT_START (demux, &ebml, "SimpleBlock"); - ret = gst_matroska_demux_parse_blockgroup_or_simpleblock (demux, &ebml, demux->cluster_time, demux->cluster_offset, TRUE); - - -#ifdef MKVDEMUX_MODIFICATION - if ((demux->segment.rate < 0.0) && (demux->found_videokeyframe == TRUE) && (demux->found_audioframe == TRUE)) - { - /* Naveen: we displayed at least one one audio block and one video key frame - Now, goto previous cluster */ - int i =0; - int minusone = -1; - guint64 duration = 0; - GstClockTime time_position; - GstMatroskaIndex *entry = NULL; - - - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { - GST_DEBUG ("video track duration = %"G_GUINT64_FORMAT"position = %"GST_TIME_FORMAT"\n", - stream->default_duration, GST_TIME_ARGS(stream->pos)); - duration = stream->default_duration; - time_position = stream->pos; - } - } - - - if((time_position - (minusone *demux->segment.rate)*((double)duration/1000000000))> 0) - { - time_position -= (minusone *demux->segment.rate)*((double)duration/1000000000); - } - else - { - time_position=0; - } - - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *stream = g_ptr_array_index (demux->src, i); - guint64 offset; - - GST_OBJECT_LOCK (demux); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { - - if ((entry = gst_matroskademux_do_index_seek (demux, stream, time_position, -1, FALSE)) == NULL) { - GST_DEBUG_OBJECT (demux, "No matching seek entry in index"); - } - - GST_DEBUG_OBJECT (demux, "pos = %"G_GUINT64_FORMAT", track = %d, block = %d, time = %"GST_TIME_FORMAT"\n", - entry->pos, entry->track, entry->block, GST_TIME_ARGS(entry->time)); - - /* seek (relative to matroska segment) */ - - - - - - offset = entry->pos + demux->ebml_segment_start; - if (offset >= gst_matroska_demux_get_length(demux)) - { - GST_INFO_OBJECT (demux, " Seek failed"); - goto seek_failed; - } - demux->offset = offset; - - - } - - - stream->pos = entry->time; - stream->set_discont = TRUE; - stream->last_flow = GST_FLOW_OK; - if (stream->pos > 0.0) - { - stream->eos = FALSE; - } - else - { - - stream->eos = TRUE; - GST_INFO_OBJECT (demux, "Reached EOS....."); - } - demux->segment.last_stop = entry->time; - - GST_OBJECT_UNLOCK (demux); - - } - - if (entry->time == 0.0) - { - - - gst_segment_init (&demux->segment, GST_FORMAT_TIME); - gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME, demux->duration); - - /* send new_segment event with start =0 and stop = duration */ - demux->new_segment = gst_event_new_new_segment_full (TRUE, - demux->segment.rate, demux->segment.applied_rate, demux->segment.format, - demux->segment.start, demux->segment.stop, demux->segment.time); - } - - demux->found_videokeyframe = FALSE; - demux->found_audioframe = FALSE; - - return ret; - } -#endif +#ifdef MKV_DEMUX_MODIFICATION + if ((demux->common.segment.rate < 0.0) && (demux->found_videokeyframe == TRUE) && (demux->found_audioframe == TRUE) + && (demux->current_ts >= demux->next_keyframe_ts) ) { + /* we displayed at least one one audio block and one video key frame + Now, goto previous cluster */ + int i =0; + int minusone = -1; + guint64 duration = 0; + GstClockTime time_position; + GstMatroskaIndex *entry = NULL; + + demux->next_keyframe_ts = demux->prev_keyframe_ts; + GST_INFO("next_keyframe_ts is %"GST_TIME_FORMAT, GST_TIME_ARGS(demux->next_keyframe_ts)); + demux->video_keyframe_pushed = FALSE; + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + GST_DEBUG ("video track duration = %"G_GUINT64_FORMAT"position = %"GST_TIME_FORMAT"\n", + stream->default_duration, GST_TIME_ARGS(stream->pos)); + duration = stream->default_duration; + time_position = stream->pos; + } + } + + if((time_position - (minusone *demux->common.segment.rate)*((double)duration/1000000000))> 0) { + time_position -= (minusone *demux->common.segment.rate)*((double)duration/1000000000); + } else { + time_position=0; + } + + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *stream = g_ptr_array_index (demux->common.src, i); + guint64 offset; + + GST_OBJECT_LOCK (demux); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + if ((entry = gst_matroska_read_common_do_index_seek (&demux->common, stream, time_position, NULL, NULL)) == NULL) { + GST_DEBUG_OBJECT (demux, "No matching seek entry in index"); + } + + GST_DEBUG_OBJECT (demux, "pos = %"G_GUINT64_FORMAT", track = %d, block = %d, time = %"GST_TIME_FORMAT"\n", + entry->pos, entry->track, entry->block, GST_TIME_ARGS(entry->time)); + + /* seek (relative to matroska segment) */ + + offset = entry->pos + demux->common.ebml_segment_start; + if (offset >= gst_matroska_read_common_get_length(&demux->common)) { + GST_INFO_OBJECT (demux, " Seek failed"); + goto seek_failed; + } + demux->common.offset = offset; + } + + stream->pos = entry->time; + stream->set_discont = TRUE; + stream->last_flow = GST_FLOW_OK; + if (stream->pos > 0.0) { + stream->eos = FALSE; + } else { + if(demux->is_eos_simpleblock == FALSE) { + demux->is_eos_simpleblock = TRUE; + } else { + stream->eos = TRUE; + GST_INFO_OBJECT (demux, "Reached EOS....."); + } + } + demux->common.segment.last_stop = entry->time; + + GST_OBJECT_UNLOCK (demux); + } + + if (entry->time == 0.0 && demux->is_eos_simpleblock == TRUE && demux->is_eos_blockgroup == TRUE) { + gst_segment_init (&demux->common.segment, GST_FORMAT_TIME); + gst_segment_set_duration (&demux->common.segment, GST_FORMAT_TIME, demux->duration); + + /* send new_segment event with start =0 and stop = duration */ + demux->new_segment = gst_event_new_new_segment_full (TRUE, + demux->common.segment.rate, demux->common.segment.applied_rate, demux->common.segment.format, + demux->common.segment.start, demux->common.segment.stop, demux->common.segment.time); + } + + demux->found_videokeyframe = FALSE; + demux->found_audioframe = FALSE; + demux->prev_keyframe_ts = entry->time; + GST_INFO("prev_keyframe in simpleblock is %"GST_TIME_FORMAT,GST_TIME_ARGS(demux->prev_keyframe_ts)); + return ret; + } +#endif + DEBUG_ELEMENT_STOP (demux, &ebml, "SimpleBlock", ret); break; case GST_MATROSKA_ID_ATTACHMENTS: - if (!demux->attachments_parsed) { + if (!demux->common.attachments_parsed) { GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_attachments (demux, &ebml); + ret = gst_matroska_read_common_parse_attachments (&demux->common, + GST_ELEMENT_CAST (demux), &ebml); } else { GST_READ_CHECK (gst_matroska_demux_flush (demux, read)); } break; case GST_MATROSKA_ID_TAGS: GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_metadata (demux, &ebml); + ret = gst_matroska_read_common_parse_metadata (&demux->common, + GST_ELEMENT_CAST (demux), &ebml); break; case GST_MATROSKA_ID_CHAPTERS: GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_chapters (demux, &ebml); + ret = gst_matroska_read_common_parse_chapters (&demux->common, &ebml); break; case GST_MATROSKA_ID_SEEKHEAD: GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); ret = gst_matroska_demux_parse_contents (demux, &ebml); break; case GST_MATROSKA_ID_CUES: - if (demux->index_parsed) { + if (demux->common.index_parsed) { GST_READ_CHECK (gst_matroska_demux_flush (demux, read)); break; } GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_index (demux, &ebml); + ret = gst_matroska_read_common_parse_index (&demux->common, &ebml); /* only push based; delayed index building */ if (ret == GST_FLOW_OK - && demux->state == GST_MATROSKA_DEMUX_STATE_SEEK) { + && demux->common.state == GST_MATROSKA_READ_STATE_SEEK) { GstEvent *event; GST_OBJECT_LOCK (demux); @@ -6380,7 +4664,7 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto seek_failed; /* resume data handling, main thread clear to seek again */ GST_OBJECT_LOCK (demux); - demux->state = GST_MATROSKA_DEMUX_STATE_DATA; + demux->common.state = GST_MATROSKA_READ_STATE_DATA; GST_OBJECT_UNLOCK (demux); } break; @@ -6459,7 +4743,7 @@ gst_matroska_demux_loop (GstPad * pad) guint needed; /* If we have to close a segment, send a new segment to do this now */ - if (G_LIKELY (demux->state == GST_MATROSKA_DEMUX_STATE_DATA)) { + if (G_LIKELY (demux->common.state == GST_MATROSKA_READ_STATE_DATA)) { if (G_UNLIKELY (demux->close_segment)) { gst_matroska_demux_send_event (demux, demux->close_segment); demux->close_segment = NULL; @@ -6470,7 +4754,8 @@ gst_matroska_demux_loop (GstPad * pad) } } - ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); if (ret == GST_FLOW_UNEXPECTED) goto eos; if (ret != GST_FLOW_OK) { @@ -6481,7 +4766,7 @@ gst_matroska_demux_loop (GstPad * pad) } GST_LOG_OBJECT (demux, "Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " - "size %" G_GUINT64_FORMAT ", needed %d", demux->offset, id, + "size %" G_GUINT64_FORMAT ", needed %d", demux->common.offset, id, length, needed); ret = gst_matroska_demux_parse_id (demux, id, length, needed); @@ -6491,12 +4776,13 @@ gst_matroska_demux_loop (GstPad * pad) goto pause; /* check if we're at the end of a configured segment */ - if (G_LIKELY (demux->src->len)) { + if (G_LIKELY (demux->common.src->len)) { guint i; - g_assert (demux->num_streams == demux->src->len); - for (i = 0; i < demux->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); + g_assert (demux->common.num_streams == demux->common.src->len); + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src, + i); GST_DEBUG_OBJECT (context->pad, "pos %" GST_TIME_FORMAT, GST_TIME_ARGS (context->pos)); if (context->eos == FALSE) @@ -6509,7 +4795,8 @@ gst_matroska_demux_loop (GstPad * pad) } next: - if (G_UNLIKELY (demux->offset == gst_matroska_demux_get_length (demux))) { + if (G_UNLIKELY (demux->common.offset == + gst_matroska_read_common_get_length (&demux->common))) { GST_LOG_OBJECT (demux, "Reached end of stream"); ret = GST_FLOW_UNEXPECTED; goto eos; @@ -6520,7 +4807,7 @@ next: /* ERRORS */ eos: { - if (demux->segment.rate < 0.0) { + if (demux->common.segment.rate < 0.0) { ret = gst_matroska_demux_seek_to_previous_keyframe (demux); if (ret == GST_FLOW_OK) return; @@ -6534,30 +4821,48 @@ pause: GST_LOG_OBJECT (demux, "pausing task, reason %s", reason); demux->segment_running = FALSE; - gst_pad_pause_task (demux->sinkpad); + gst_pad_pause_task (demux->common.sinkpad); if (ret == GST_FLOW_UNEXPECTED) { /* perform EOS logic */ + /* If we were in the headers, make sure we send no-more-pads. + This will ensure decodebin2 does not get stuck thinking + the chain is not complete yet, and waiting indefinitely. */ + if (G_UNLIKELY (demux->common.state == GST_MATROSKA_READ_STATE_HEADER)) { + if (demux->common.src->len == 0) { + GST_ELEMENT_ERROR (demux, STREAM, FAILED, (NULL), + ("No pads created")); + } else { + GST_ELEMENT_WARNING (demux, STREAM, DEMUX, (NULL), + ("Failed to finish reading headers")); + } + gst_element_no_more_pads (GST_ELEMENT (demux)); + } + /* Close the segment, i.e. update segment stop with the duration * if no stop was set */ if (GST_CLOCK_TIME_IS_VALID (demux->last_stop_end) && - !GST_CLOCK_TIME_IS_VALID (demux->segment.stop)) { + !GST_CLOCK_TIME_IS_VALID (demux->common.segment.stop) && + GST_CLOCK_TIME_IS_VALID (demux->common.segment.start) && + demux->last_stop_end > demux->common.segment.start) { + /* arrange to accumulate duration downstream, but avoid sending + * newsegment with decreasing start (w.r.t. sync newsegment events) */ GstEvent *event = - gst_event_new_new_segment_full (TRUE, demux->segment.rate, - demux->segment.applied_rate, demux->segment.format, - demux->segment.start, - MAX (demux->last_stop_end, demux->segment.start), - demux->segment.time); + gst_event_new_new_segment_full (TRUE, demux->common.segment.rate, + demux->common.segment.applied_rate, demux->common.segment.format, + demux->last_stop_end, demux->last_stop_end, + demux->common.segment.time + (demux->last_stop_end - + demux->common.segment.start)); gst_matroska_demux_send_event (demux, event); } - if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) { + if (demux->common.segment.flags & GST_SEEK_FLAG_SEGMENT) { gint64 stop; /* for segment playback we need to post when (in stream time) * we stopped, this is either stop (when set) or the duration. */ - if ((stop = demux->segment.stop) == -1) + if ((stop = demux->common.segment.stop) == -1) stop = demux->last_stop_end; GST_LOG_OBJECT (demux, "Sending segment done, at end of segment"); @@ -6602,27 +4907,12 @@ perform_seek_to_offset (GstMatroskaDemux * demux, guint64 offset) GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset, GST_SEEK_TYPE_NONE, -1); - res = gst_pad_push_event (demux->sinkpad, event); + res = gst_pad_push_event (demux->common.sinkpad, event); /* newsegment event will update offset */ return res; } -static const guint8 * -gst_matroska_demux_peek_adapter (GstMatroskaDemux * demux, guint peek) -{ - return gst_adapter_peek (demux->adapter, peek); -} - -static GstFlowReturn -gst_matroska_demux_peek_id_length_push (GstMatroskaDemux * demux, guint32 * _id, - guint64 * _length, guint * _needed) -{ - return gst_ebml_peek_id_length (_id, _length, _needed, - (GstPeekData) gst_matroska_demux_peek_adapter, (gpointer) demux, - GST_ELEMENT_CAST (demux), demux->offset); -} - static GstFlowReturn gst_matroska_demux_chain (GstPad * pad, GstBuffer * buffer) { @@ -6635,25 +4925,27 @@ gst_matroska_demux_chain (GstPad * pad, GstBuffer * buffer) if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buffer))) { GST_DEBUG_OBJECT (demux, "got DISCONT"); - gst_adapter_clear (demux->adapter); + gst_adapter_clear (demux->common.adapter); GST_OBJECT_LOCK (demux); - gst_matroska_demux_reset_streams (demux, GST_CLOCK_TIME_NONE, FALSE); + gst_matroska_read_common_reset_streams (&demux->common, + GST_CLOCK_TIME_NONE, FALSE); GST_OBJECT_UNLOCK (demux); } - gst_adapter_push (demux->adapter, buffer); + gst_adapter_push (demux->common.adapter, buffer); buffer = NULL; next: - available = gst_adapter_available (demux->adapter); + available = gst_adapter_available (demux->common.adapter); - ret = gst_matroska_demux_peek_id_length_push (demux, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_push (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED)) return ret; GST_LOG_OBJECT (demux, "Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " - "size %" G_GUINT64_FORMAT ", needed %d, available %d", demux->offset, id, - length, needed, available); + "size %" G_GUINT64_FORMAT ", needed %d, available %d", + demux->common.offset, id, length, needed, available); if (needed > available) return GST_FLOW_OK; @@ -6696,7 +4988,7 @@ gst_matroska_demux_handle_sink_event (GstPad * pad, GstEvent * event) "received format %d newsegment %" GST_SEGMENT_FORMAT, format, &segment); - if (demux->state < GST_MATROSKA_DEMUX_STATE_DATA) { + if (demux->common.state < GST_MATROSKA_READ_STATE_DATA) { GST_DEBUG_OBJECT (demux, "still starting"); goto exit; } @@ -6708,18 +5000,20 @@ gst_matroska_demux_handle_sink_event (GstPad * pad, GstEvent * event) } GST_DEBUG_OBJECT (demux, "clearing segment state"); + GST_OBJECT_LOCK (demux); /* clear current segment leftover */ - gst_adapter_clear (demux->adapter); + gst_adapter_clear (demux->common.adapter); /* and some streaming setup */ - demux->offset = start; + demux->common.offset = start; /* do not know where we are; * need to come across a cluster and generate newsegment */ - demux->segment.last_stop = GST_CLOCK_TIME_NONE; + demux->common.segment.last_stop = GST_CLOCK_TIME_NONE; demux->cluster_time = GST_CLOCK_TIME_NONE; demux->cluster_offset = 0; demux->need_newsegment = TRUE; /* but keep some of the upstream segment */ - demux->segment.rate = rate; + demux->common.segment.rate = rate; + GST_OBJECT_UNLOCK (demux); exit: /* chain will send initial newsegment after pads have been added, * or otherwise come up with one */ @@ -6730,11 +5024,11 @@ gst_matroska_demux_handle_sink_event (GstPad * pad, GstEvent * event) } case GST_EVENT_EOS: { - if (demux->state != GST_MATROSKA_DEMUX_STATE_DATA) { + if (demux->common.state != GST_MATROSKA_READ_STATE_DATA) { gst_event_unref (event); GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), ("got eos and didn't receive a complete header object")); - } else if (demux->num_streams == 0) { + } else if (demux->common.num_streams == 0) { GST_ELEMENT_ERROR (demux, STREAM, DEMUX, (NULL), ("got eos but no streams (yet)")); } else { @@ -6744,13 +5038,14 @@ gst_matroska_demux_handle_sink_event (GstPad * pad, GstEvent * event) } case GST_EVENT_FLUSH_STOP: { - gst_adapter_clear (demux->adapter); + gst_adapter_clear (demux->common.adapter); GST_OBJECT_LOCK (demux); - gst_matroska_demux_reset_streams (demux, GST_CLOCK_TIME_NONE, TRUE); - GST_OBJECT_UNLOCK (demux); - demux->segment.last_stop = GST_CLOCK_TIME_NONE; + gst_matroska_read_common_reset_streams (&demux->common, + GST_CLOCK_TIME_NONE, TRUE); + demux->common.segment.last_stop = GST_CLOCK_TIME_NONE; demux->cluster_time = GST_CLOCK_TIME_NONE; demux->cluster_offset = 0; + GST_OBJECT_UNLOCK (demux); /* fall-through */ } default: @@ -7082,16 +5377,20 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * /* pixel width and height are the w and h of the video in pixels */ if (videocontext->pixel_width > 0 && videocontext->pixel_height > 0) { gint w = videocontext->pixel_width; - gint h = videocontext->pixel_height; gst_structure_set (structure, "width", G_TYPE_INT, w, "height", G_TYPE_INT, h, NULL); } - if (videocontext->display_width > 0 && videocontext->display_height > 0) { + if (videocontext->display_width > 0 || videocontext->display_height > 0) { int n, d; + if (videocontext->display_width <= 0) + videocontext->display_width = videocontext->pixel_width; + if (videocontext->display_height <= 0) + videocontext->display_height = videocontext->pixel_height; + /* calculate the pixel aspect ratio using the display and pixel w/h */ n = videocontext->display_width * videocontext->pixel_height; d = videocontext->display_height * videocontext->pixel_width; @@ -7121,7 +5420,7 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * gst_duration_to_fraction (context->default_duration, &fps_n, &fps_d); - GST_DEBUG ("using default duration %" G_GUINT64_FORMAT + GST_INFO ("using default duration %" G_GUINT64_FORMAT " framerate %d/%d", context->default_duration, fps_n, fps_d); gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, @@ -7260,12 +5559,14 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * *codec_name = g_strdup_printf ("Raw %d-bit PCM audio", audiocontext->bitdepth); + context->alignment = audiocontext->bitdepth / 8; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_PCM_FLOAT)) { caps = gst_caps_new_simple ("audio/x-raw-float", "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, "width", G_TYPE_INT, audiocontext->bitdepth, NULL); *codec_name = g_strdup_printf ("Raw %d-bit floating-point audio", audiocontext->bitdepth); + context->alignment = audiocontext->bitdepth / 8; } else if (!strncmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_AC3, strlen (GST_MATROSKA_CODEC_ID_AUDIO_AC3))) { caps = gst_caps_new_simple ("audio/x-ac3", @@ -7395,6 +5696,7 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * "framed", G_TYPE_BOOLEAN, TRUE, NULL); gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL); *codec_name = g_strdup_printf ("MPEG-%d AAC audio", mpegversion); + gst_buffer_unref (priv); } } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_TTA)) { caps = gst_caps_new_simple ("audio/x-tta", @@ -7511,17 +5813,22 @@ gst_matroska_demux_subtitle_caps (GstMatroskaTrackSubtitleContext * /* TODO: Add GST_MATROSKA_CODEC_ID_SUBTITLE_BMP support * Check if we have to do something with codec_private */ if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8)) { - caps = gst_caps_new_simple ("text/plain", NULL); + /* well, plain text simply does not have a lot of markup ... */ + caps = gst_caps_new_simple ("text/x-pango-markup", NULL); context->postprocess_frame = gst_matroska_demux_check_subtitle_buffer; + subtitlecontext->check_markup = TRUE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_SSA)) { caps = gst_caps_new_simple ("application/x-ssa", NULL); context->postprocess_frame = gst_matroska_demux_check_subtitle_buffer; + subtitlecontext->check_markup = FALSE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_ASS)) { caps = gst_caps_new_simple ("application/x-ass", NULL); context->postprocess_frame = gst_matroska_demux_check_subtitle_buffer; + subtitlecontext->check_markup = FALSE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_USF)) { caps = gst_caps_new_simple ("application/x-usf", NULL); context->postprocess_frame = gst_matroska_demux_check_subtitle_buffer; + subtitlecontext->check_markup = FALSE; } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_VOBSUB)) { caps = gst_caps_new_simple ("video/x-dvd-subpicture", NULL); ((GstMatroskaTrackContext *) subtitlecontext)->send_dvd_event = TRUE; @@ -7553,11 +5860,12 @@ gst_matroska_demux_set_index (GstElement * element, GstIndex * index) GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (element); GST_OBJECT_LOCK (demux); - if (demux->element_index) - gst_object_unref (demux->element_index); - demux->element_index = index ? gst_object_ref (index) : NULL; + if (demux->common.element_index) + gst_object_unref (demux->common.element_index); + demux->common.element_index = index ? gst_object_ref (index) : NULL; GST_OBJECT_UNLOCK (demux); - GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT, demux->element_index); + GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT, + demux->common.element_index); } static GstIndex * @@ -7567,17 +5875,48 @@ gst_matroska_demux_get_index (GstElement * element) GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (element); GST_OBJECT_LOCK (demux); - if (demux->element_index) - result = gst_object_ref (demux->element_index); + if (demux->common.element_index) + result = gst_object_ref (demux->common.element_index); GST_OBJECT_UNLOCK (demux); GST_DEBUG_OBJECT (demux, "Returning index %" GST_PTR_FORMAT, result); return result; } -#ifdef MKVDEMUX_MODIFICATION + + +#ifdef MKV_DEMUX_MODIFICATION +static GstMatroskaIndex * +gst_matroska_demux_get_next_index (GstMatroskaDemux * demux, GstMatroskaTrackContext * track, GstMatroskaIndex *entry) +{ + int i =0; + GArray *index; + GstMatroskaIndex *tmp = NULL; + + /* find entry just before or at the requested position */ + if (track && track->index_table) + index = track->index_table; + else + index = demux->common.index; + + for (i=0; i < index->len; i++) { + tmp = &g_array_index (index, GstMatroskaIndex, i); + if ((tmp->time == entry->time) && (tmp->pos == entry->pos)) { + if ((index->len - i) == 1) { + GST_DEBUG_OBJECT (demux, "entry found in last index...returning last index"); + } else { + GST_DEBUG_OBJECT (demux, "Found entry at index = %d"); + i = i+1; + tmp = &g_array_index (index, GstMatroskaIndex, i); + } + return tmp; + } + } + return NULL; +} + static GstFlowReturn -gst_sec_matroska_demux_find_tracks (GstMatroskaDemux * demux) +gst_matroska_demux_trickplay_find_tracks (GstMatroskaDemux * demux) { guint32 id; guint64 before_pos; @@ -7589,11 +5928,12 @@ gst_sec_matroska_demux_find_tracks (GstMatroskaDemux * demux) "Found Cluster element before Tracks, searching Tracks"); /* remember */ - before_pos = demux->offset; + before_pos = demux->common.offset; /* Search Tracks element */ while (TRUE) { - ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); if (ret != GST_FLOW_OK) break; @@ -7604,24 +5944,25 @@ gst_sec_matroska_demux_find_tracks (GstMatroskaDemux * demux) ret = gst_matroska_demux_check_read_size (demux, length); break; } else { - demux->offset += needed; - demux->offset += length; + demux->common.offset += needed; + demux->common.offset += length; } continue; } /* will lead to track parsing ... */ - ret = gst_sec_matroska_demux_parse_id (demux, id, length, needed); + ret = gst_matroska_demux_trickplay_parse_id (demux, id, length, needed); break; } /* seek back */ - demux->offset = before_pos; + demux->common.offset = before_pos; return ret; } + static GstFlowReturn -gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, +gst_matroska_demux_trickplay_parse_id (GstMatroskaDemux * demux, guint32 id, guint64 length, guint needed) { GstEbmlRead ebml = { 0, }; @@ -7638,15 +5979,15 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, if (G_LIKELY (length != G_MAXUINT64)) read += needed; - switch (demux->state) { - case GST_MATROSKA_DEMUX_STATE_START: + switch (demux->common.state) { + case GST_MATROSKA_READ_STATE_START: switch (id) { case GST_EBML_ID_HEADER: GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); - ret = gst_matroska_demux_parse_header (demux, &ebml); + ret = gst_matroska_read_common_parse_header (&demux->common, &ebml); if (ret != GST_FLOW_OK) goto parse_failed; - demux->state = GST_MATROSKA_DEMUX_STATE_SEGMENT; + demux->common.state = GST_MATROSKA_READ_STATE_SEGMENT; gst_matroska_demux_check_seekability (demux); break; default: @@ -7654,18 +5995,18 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, break; } break; - case GST_MATROSKA_DEMUX_STATE_SEGMENT: + case GST_MATROSKA_READ_STATE_SEGMENT: switch (id) { case GST_MATROSKA_ID_SEGMENT: /* eat segment prefix */ GST_READ_CHECK (gst_matroska_demux_flush (demux, needed)); GST_DEBUG_OBJECT (demux, "Found Segment start at offset %" G_GUINT64_FORMAT, - demux->offset); + demux->common.offset); /* seeks are from the beginning of the segment, * after the segment ID/length */ - demux->ebml_segment_start = demux->offset; - demux->state = GST_MATROSKA_DEMUX_STATE_HEADER; + demux->common.ebml_segment_start = demux->common.offset; + demux->common.state = GST_MATROSKA_READ_STATE_HEADER; break; default: GST_WARNING_OBJECT (demux, @@ -7675,14 +6016,14 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, break; } break; - case GST_MATROSKA_DEMUX_STATE_SCANNING: + case GST_MATROSKA_READ_STATE_SCANNING: if (id != GST_MATROSKA_ID_CLUSTER && id != GST_MATROSKA_ID_CLUSTERTIMECODE) goto skip; /* fall-through */ - case GST_MATROSKA_DEMUX_STATE_HEADER: - case GST_MATROSKA_DEMUX_STATE_DATA: - case GST_MATROSKA_DEMUX_STATE_SEEK: + case GST_MATROSKA_READ_STATE_HEADER: + case GST_MATROSKA_READ_STATE_DATA: + case GST_MATROSKA_READ_STATE_SEEK: switch (id) { case GST_MATROSKA_ID_CLUSTER: if (G_UNLIKELY (!demux->tracks_parsed)) { @@ -7690,25 +6031,25 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, GST_DEBUG_OBJECT (demux, "Cluster before Track"); goto not_streamable; } else { - ret = gst_sec_matroska_demux_find_tracks (demux); + ret = gst_matroska_demux_trickplay_find_tracks (demux); if (!demux->tracks_parsed) goto no_tracks; } } - if (G_UNLIKELY (demux->state == GST_MATROSKA_DEMUX_STATE_HEADER)) { - demux->state = GST_MATROSKA_DEMUX_STATE_DATA; - demux->first_cluster_offset = demux->offset; + if (G_UNLIKELY (demux->common.state == GST_MATROSKA_READ_STATE_HEADER)) { + demux->common.state = GST_MATROSKA_READ_STATE_DATA; + demux->first_cluster_offset = demux->common.offset; GST_DEBUG_OBJECT (demux, "signaling no more pads"); gst_element_no_more_pads (GST_ELEMENT (demux)); /* send initial newsegment */ gst_matroska_demux_send_event (demux, gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, - (demux->segment.duration > - 0) ? demux->segment.duration : -1, 0)); + (demux->common.segment.duration > + 0) ? demux->common.segment.duration : -1, 0)); } demux->cluster_time = GST_CLOCK_TIME_NONE; - demux->cluster_offset = demux->offset; + demux->cluster_offset = demux->common.offset; if (G_UNLIKELY (!demux->seek_first && demux->seek_block)) { GST_DEBUG_OBJECT (demux, "seek target block %" G_GUINT64_FORMAT " not found in Cluster, trying next Cluster's first block instead", @@ -7722,8 +6063,7 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, /* eat cluster prefix */ gst_matroska_demux_flush (demux, needed); break; - case GST_MATROSKA_ID_CLUSTERTIMECODE: - { + case GST_MATROSKA_ID_CLUSTERTIMECODE: { guint64 num; GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); @@ -7731,16 +6071,16 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto parse_failed; GST_DEBUG_OBJECT (demux, "ClusterTimeCode: %" G_GUINT64_FORMAT, num); demux->cluster_time = num; - if (demux->element_index) { - if (demux->element_index_writer_id == -1) - gst_index_get_writer_id (demux->element_index, - GST_OBJECT (demux), &demux->element_index_writer_id); + if (demux->common.element_index) { + if (demux->common.element_index_writer_id == -1) + gst_index_get_writer_id (demux->common.element_index, + GST_OBJECT (demux), &demux->common.element_index_writer_id); GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %" G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (demux->cluster_time), demux->cluster_offset, - demux->element_index_writer_id); - gst_index_add_association (demux->element_index, - demux->element_index_writer_id, GST_ASSOCIATION_FLAG_KEY_UNIT, + demux->common.element_index_writer_id); + gst_index_add_association (demux->common.element_index, + demux->common.element_index_writer_id, GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, demux->cluster_time, GST_FORMAT_BYTES, demux->cluster_offset, NULL); } @@ -7752,7 +6092,7 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); DEBUG_ELEMENT_START (demux, &ebml, "BlockGroup"); if ((ret = gst_ebml_read_master (&ebml, &id)) == GST_FLOW_OK) { - ret = gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (demux, + ret = gst_matroska_demux_trickplay_parse_blockgroup_or_simpleblock (demux, &ebml, demux->cluster_time, demux->cluster_offset, FALSE); } DEBUG_ELEMENT_STOP (demux, &ebml, "BlockGroup", ret); @@ -7762,7 +6102,7 @@ gst_sec_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, goto skip; GST_READ_CHECK (gst_matroska_demux_take (demux, read, &ebml)); DEBUG_ELEMENT_START (demux, &ebml, "SimpleBlock"); - ret = gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (demux, + ret = gst_matroska_demux_trickplay_parse_blockgroup_or_simpleblock (demux, &ebml, demux->cluster_time, demux->cluster_offset, TRUE); DEBUG_ELEMENT_STOP (demux, &ebml, "SimpleBlock", ret); break; @@ -7833,7 +6173,7 @@ invalid_header: } static GstFlowReturn -gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, +gst_matroska_demux_trickplay_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, GstEbmlRead * ebml, guint64 cluster_time, guint64 cluster_offset, gboolean is_simpleblock) { @@ -7845,7 +6185,6 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux GstBuffer *buf = NULL; gint stream_num = -1, n, laces = 0; guint size = 0; - gint *lace_size = NULL; gint64 time = 0; gint flags = 0; gint64 referenceblock = 0; @@ -7867,8 +6206,7 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux * of the harder things, so this code is a bit complicated. * See http://www.matroska.org/ for documentation. */ case GST_MATROSKA_ID_SIMPLEBLOCK: - case GST_MATROSKA_ID_BLOCK: - { + case GST_MATROSKA_ID_BLOCK: { guint64 num; guint8 *data; @@ -7889,14 +6227,14 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux size -= n; /* fetch stream from num */ - stream_num = gst_matroska_demux_stream_from_num (demux, num); + stream_num = gst_matroska_read_common_stream_from_num (&demux->common, num); if (G_UNLIKELY (size < 3)) { GST_WARNING_OBJECT (demux, "Invalid size %u", size); /* non-fatal, try next block(group) */ ret = GST_FLOW_OK; goto done; } else if (G_UNLIKELY (stream_num < 0 || - stream_num >= demux->num_streams)) { + stream_num >= demux->common.num_streams)) { /* let's not give up on a stray invalid track number */ GST_WARNING_OBJECT (demux, "Invalid stream %d for track number %" G_GUINT64_FORMAT @@ -7904,7 +6242,7 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux goto done; } - stream = g_ptr_array_index (demux->src, stream_num); + stream = g_ptr_array_index (demux->common.src, stream_num); /* time (relative to cluster time) */ time = ((gint16) GST_READ_UINT16_BE (data)); @@ -7917,7 +6255,7 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux GST_LOG_OBJECT (demux, "time %" G_GUINT64_FORMAT ", flags %d", time, flags); - switch ((flags & 0x06) >> 1) { + switch ((flags & 0x06) >> 1) { case 0x0: /* no lacing */ laces = 1; break; @@ -7939,14 +6277,14 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux break; } - case GST_MATROSKA_ID_BLOCKDURATION:{ + case GST_MATROSKA_ID_BLOCKDURATION: { ret = gst_ebml_read_uint (ebml, &id, &block_duration); GST_DEBUG_OBJECT (demux, "BlockDuration: %" G_GUINT64_FORMAT, block_duration); break; } - case GST_MATROSKA_ID_REFERENCEBLOCK:{ + case GST_MATROSKA_ID_REFERENCEBLOCK: { ret = gst_ebml_read_sint (ebml, &id, &referenceblock); GST_DEBUG_OBJECT (demux, "ReferenceBlock: %" G_GINT64_FORMAT, referenceblock); @@ -7954,7 +6292,7 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux } default: - ret = gst_matroska_demux_parse_skip (demux, ebml, "BlockGroup", id); + ret = gst_matroska_read_common_parse_skip (&demux->common, ebml, "BlockGroup", id); break; case GST_MATROSKA_ID_BLOCKVIRTUAL: @@ -7977,11 +6315,10 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux goto data_error; if (ret == GST_FLOW_OK && readblock) { - guint64 duration = 0; gint64 lace_time = 0; gboolean delta_unit; - stream = g_ptr_array_index (demux->src, stream_num); + stream = g_ptr_array_index (demux->common.src, stream_num); if (cluster_time != GST_CLOCK_TIME_NONE) { /* FIXME: What to do with negative timestamps? Give timestamp 0 or -1? @@ -7990,11 +6327,11 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux lace_time = 0; } else { if (stream->timecodescale == 1.0) - lace_time = (cluster_time + time) * demux->time_scale; + lace_time = (cluster_time + time) * demux->common.time_scale; else lace_time = gst_util_guint64_to_gdouble ((cluster_time + time) * - demux->time_scale) * stream->timecodescale; + demux->common.time_scale) * stream->timecodescale; } } else { lace_time = GST_CLOCK_TIME_NONE; @@ -8018,19 +6355,15 @@ gst_sec_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux /* last_ts used for EOS in trickplay */ stream->last_ts = lace_time; - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { stream->num_frames_bw_keyframes++; - if (delta_unit == FALSE) - { + if (delta_unit == FALSE) { stream->found_next_kframe = TRUE; demux->next_key_cluster_time = demux->cluster_time; stream->next_kframe_timestamp = lace_time; - demux->segment.last_stop = lace_time - 0.5* GST_SECOND; + demux->common.segment.last_stop = lace_time - 0.5* GST_SECOND; } - } - else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) - { + } else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) { stream->num_frames_bw_keyframes = stream->num_frames_bw_keyframes + laces; } } @@ -8058,157 +6391,182 @@ data_error: } static gint32 -gst_sec_matroska_nframes2show_bw_keyframes (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream) +gst_matroska_demux_trickplay_nframes2show_bw_keyframes (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream) { GstFlowReturn ret = GST_FLOW_OK; guint32 id; guint64 length; guint needed; - gint prev_offset = demux->offset; + gint prev_offset = demux->common.offset; gint next_keyframe_offset = 0; guint64 prev_cluster_time = demux->cluster_time; guint64 prev_cluster_offset = demux->cluster_offset; - gint nframes_bw_kframes = 0; int i = 0; - while (stream->found_next_kframe == FALSE) - { - next_keyframe_offset = demux->offset; - - ret = gst_matroska_demux_peek_id_length_pull (demux, &id, &length, &needed); - if (ret == GST_FLOW_UNEXPECTED) - { + while (stream->found_next_kframe == FALSE) { + next_keyframe_offset = demux->common.offset; + + ret = gst_matroska_read_common_peek_id_length_pull (&demux->common, + GST_ELEMENT_CAST (demux), &id, &length, &needed); + if (ret == GST_FLOW_UNEXPECTED) { stream->next_kframe_timestamp = stream->last_ts; stream->found_next_kframe = TRUE; break; } GST_LOG_OBJECT (demux, "trickplay : Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " - "size %" G_GUINT64_FORMAT ", needed %d", demux->offset, id, + "size %" G_GUINT64_FORMAT ", needed %d", demux->common.offset, id, length, needed); - - if (ret != GST_FLOW_OK) - { + + if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (demux, "Error in id_length_pull flow ret...reason : %s\n", gst_flow_get_name (ret)); break; } - - ret = gst_sec_matroska_demux_parse_id (demux, id, length, needed); - if (ret == GST_FLOW_UNEXPECTED) - { + + ret = gst_matroska_demux_trickplay_parse_id (demux, id, length, needed); + if (ret == GST_FLOW_UNEXPECTED) { stream->next_kframe_timestamp = stream->last_ts; stream->found_next_kframe = TRUE; break; } - - if (ret != GST_FLOW_OK) - { + + if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (demux, "Error in parse_id flow ret...reason : %s\n", gst_flow_get_name (ret)); break; } } - if (stream->found_next_kframe == TRUE) - { + if (stream->found_next_kframe == TRUE) { demux->next_key_frame_offset = next_keyframe_offset; } - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); - if (context->type <= GST_MATROSKA_TRACK_TYPE_AUDIO); - { - context->frames_to_show_bw_keyframes = context->num_frames_bw_keyframes / demux->segment.rate; + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src, i); + if (context->type <= GST_MATROSKA_TRACK_TYPE_AUDIO) { + context->frames_to_show_bw_keyframes = context->num_frames_bw_keyframes / demux->common.segment.rate; } } /* keeping previous offset values for normal operation */ - demux->offset = prev_offset; + demux->common.offset = prev_offset; demux->cluster_offset = prev_cluster_offset; demux->cluster_time = prev_cluster_time; return stream->num_frames_bw_keyframes; } +static GstFlowReturn +gst_matroska_demux_backward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer* sub) +{ + GstFlowReturn ret = GST_FLOW_OK; + + if (((stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) || (!GST_BUFFER_FLAG_IS_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT))) + && (demux->prev_keyframe_ts <= (GST_BUFFER_TIMESTAMP (sub)) <= demux->next_keyframe_ts)) { + + if(stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && !demux->video_keyframe_pushed) { + demux->video_keyframe_pushed = TRUE; + } else if(stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && demux->video_keyframe_pushed){ + GST_INFO("unreffing the video frame (already sent one keyframe)"); + gst_buffer_unref (sub); + return ret; + } + + if(demux->prev_keyframe_ts == demux->next_keyframe_ts || demux->prev_keyframe_ts > demux->next_keyframe_ts) { + GST_INFO("Unreffing the already pushed buffer"); + gst_buffer_unref (sub); + return ret; + } + + GST_DEBUG_OBJECT (demux, "Pushing data of size %d for stream %d, time=%"GST_TIME_FORMAT + " and duration=%" GST_TIME_FORMAT, + GST_BUFFER_SIZE (sub), stream->type, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (sub)), + GST_TIME_ARGS (GST_BUFFER_DURATION (sub))); + + g_assert (stream->alignment <= G_MEM_ALIGN); + if (((guintptr) GST_BUFFER_DATA (sub)) & (stream->alignment - 1)) { + GST_INFO("in if alignment log"); + GstBuffer *buffer = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (sub)); + memcpy (GST_BUFFER_DATA (buffer), GST_BUFFER_DATA (sub), + GST_BUFFER_SIZE (sub)); + gst_buffer_copy_metadata (buffer, sub, GST_BUFFER_COPY_ALL); + GST_DEBUG_OBJECT (demux, "We want output aligned on %d, reallocated", stream->alignment); + gst_buffer_unref (sub); + sub = buffer; + } + + ret = gst_pad_push(stream->pad, sub); + + if (ret != GST_FLOW_OK) { + GST_DEBUG_OBJECT (demux, "Error in pad_push. Reason : %s\n", gst_flow_get_name (ret)); + } + } else if(GST_BUFFER_FLAG_IS_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT)) { + gst_buffer_unref (sub); + } + return ret; +} -static GstFlowReturn -gst_sec_matroska_forward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer *buffer, gboolean *skip) +static GstFlowReturn +gst_matroska_demux_forward_trickplay (GstMatroskaDemux* demux, GstMatroskaTrackContext * stream, GstBuffer *buffer, gboolean *skip) { GstFlowReturn ret = GST_FLOW_OK; + guint64 time_escalation = 0; gint i = 0; - - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - { - if ((stream->found_next_kframe == FALSE) && (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))) - { + + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + if ((stream->found_next_kframe == FALSE) && (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))) { + GST_INFO("Finding the no of frames b/w keyframe"); g_assert (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)); - gst_sec_matroska_nframes2show_bw_keyframes (demux, stream); + gst_matroska_demux_trickplay_nframes2show_bw_keyframes (demux, stream); stream->prev_kframe_timestamp = GST_BUFFER_TIMESTAMP (buffer); + GST_INFO("next keyframe timestamp is %"GST_TIME_FORMAT" and previous keyframe timestamp is %"GST_TIME_FORMAT, + GST_TIME_ARGS(stream->next_kframe_timestamp), GST_TIME_ARGS(stream->prev_kframe_timestamp)); stream->avg_duration_bw_keyframes = (stream->next_kframe_timestamp - stream->prev_kframe_timestamp) / stream->num_frames_bw_keyframes; GST_INFO_OBJECT (demux, "Number of frames between key frames = %d and frames to show between key frames = %d", stream->num_frames_bw_keyframes, stream->frames_to_show_bw_keyframes); - GST_DEBUG_OBJECT (demux, "average duration of frames = %d", GST_TIME_ARGS(stream->avg_duration_bw_keyframes)); - - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); - if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO) - { + GST_DEBUG_OBJECT (demux, "average duration of frames = %"GST_TIME_FORMAT, GST_TIME_ARGS(stream->avg_duration_bw_keyframes)); + + for (i = 0; i < demux->common.src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src, i); + if (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO) { context->num_frames_bw_keyframes = 0; } } - } - else - { - stream->frames_to_show_bw_keyframes--; - if (stream->frames_to_show_bw_keyframes == 0) - { + } else { + if (stream->frames_to_show_bw_keyframes == 0) { stream->found_next_kframe = FALSE; demux->cluster_time = demux->next_key_cluster_time; - demux->offset = demux->next_key_frame_offset; - stream->num_frames_bw_keyframes = 0; - GST_DEBUG_OBJECT (demux, "next key cluster time = %"GST_TIME_FORMAT" and offset = %u...\n", GST_TIME_ARGS(demux->cluster_time), demux->offset); + demux->common.offset = demux->next_key_frame_offset; + stream->num_frames_bw_keyframes = 0; + GST_DEBUG_OBJECT (demux, "next key cluster time = %"GST_TIME_FORMAT" and offset = %u...\n", GST_TIME_ARGS(demux->cluster_time), demux->common.offset); + } + + if(stream->num_frames_bw_keyframes == 0) + *skip = TRUE; + + if(stream->frames_to_show_bw_keyframes > 0) { + GST_INFO("Time stamp modification %"GST_TIME_FORMAT,GST_TIME_ARGS(GST_BUFFER_TIMESTAMP(buffer))); + + time_escalation = ((stream->num_frames_bw_keyframes/demux->common.segment.rate) - stream->frames_to_show_bw_keyframes) * stream->avg_duration_bw_keyframes * demux->common.segment.rate; + + GST_BUFFER_TIMESTAMP(buffer) = stream->prev_kframe_timestamp + time_escalation; + GST_INFO("Time stamp modified %"GST_TIME_FORMAT,GST_TIME_ARGS(GST_BUFFER_TIMESTAMP(buffer))); } - /* GST_BUFFER_TIMESTAMP(buffer) = stream->prev_kframe_timestamp + - ((stream->num_frames_bw_keyframes/demux->segment.rate) - stream->frames_to_show_bw_keyframes) * abs (demux->segment.rate) * stream->avg_duration_bw_keyframes;*/ + stream->frames_to_show_bw_keyframes--; } - } - else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) - { - if (stream->frames_to_show_bw_keyframes == 0) - { + } else if (stream->type == GST_MATROSKA_TRACK_TYPE_AUDIO) { + if (stream->frames_to_show_bw_keyframes == 0) { *skip = TRUE; stream->num_frames_bw_keyframes = 0; stream->frames_to_show_bw_keyframes = 0; - } - else - { + } else { stream->frames_to_show_bw_keyframes--; } - - -/* else - { - if (G_LIKELY (demux->src->len)) - { - guint i; - g_assert (demux->num_streams == demux->src->len); - for (i = 0; i < demux->src->len; i++) - { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->src, i); - if ((context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) && (context->frames_to_show_bw_keyframes == 0)) - { - context->frames_to_show_bw_keyframes = 0; - context->num_frames_bw_keyframes = 0; - *skip = TRUE; - } - } - } - } */ } return ret; } - #endif + + static GstStateChangeReturn gst_matroska_demux_change_state (GstElement * element, GstStateChange transition) @@ -8236,11 +6594,57 @@ gst_matroska_demux_change_state (GstElement * element, return ret; } +static void +gst_matroska_demux_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstMatroskaDemux *demux; + + g_return_if_fail (GST_IS_MATROSKA_DEMUX (object)); + demux = GST_MATROSKA_DEMUX (object); + + switch (prop_id) { + case ARG_MAX_GAP_TIME: + GST_OBJECT_LOCK (demux); + demux->max_gap_time = g_value_get_uint64 (value); + GST_OBJECT_UNLOCK (demux); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_matroska_demux_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstMatroskaDemux *demux; + + g_return_if_fail (GST_IS_MATROSKA_DEMUX (object)); + demux = GST_MATROSKA_DEMUX (object); + + switch (prop_id) { + case ARG_MAX_GAP_TIME: + GST_OBJECT_LOCK (demux); + g_value_set_uint64 (value, demux->max_gap_time); + GST_OBJECT_UNLOCK (demux); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + gboolean gst_matroska_demux_plugin_init (GstPlugin * plugin) { gst_riff_init (); + /* parser helper separate debug */ + GST_DEBUG_CATEGORY_INIT (ebmlread_debug, "ebmlread", + 0, "EBML stream helper class"); + /* create an elementfactory for the matroska_demux element */ if (!gst_element_register (plugin, "matroskademux", GST_RANK_PRIMARY, GST_TYPE_MATROSKA_DEMUX)) diff --git a/gst/matroska/matroska-demux.h b/gst/matroska/matroska-demux.h index 2336cc4..c59bc90 100644 --- a/gst/matroska/matroska-demux.h +++ b/gst/matroska/matroska-demux.h @@ -1,5 +1,6 @@ /* GStreamer Matroska muxer/demuxer * (c) 2003 Ronald Bultje + * (c) 2011 Debarshi Ray * * matroska-demux.h: matroska file/stream demuxer definition * @@ -23,10 +24,10 @@ #define __GST_MATROSKA_DEMUX_H__ #include -#include #include "ebml-read.h" #include "matroska-ids.h" +#include "matroska-read-common.h" G_BEGIN_DECLS @@ -41,96 +42,55 @@ G_BEGIN_DECLS #define GST_IS_MATROSKA_DEMUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MATROSKA_DEMUX)) -typedef enum { - GST_MATROSKA_DEMUX_STATE_START, - GST_MATROSKA_DEMUX_STATE_SEGMENT, - GST_MATROSKA_DEMUX_STATE_HEADER, - GST_MATROSKA_DEMUX_STATE_DATA, - GST_MATROSKA_DEMUX_STATE_SEEK, - GST_MATROSKA_DEMUX_STATE_SCANNING -} GstMatroskaDemuxState; - -#define MKVDEMUX_MODIFICATION - typedef struct _GstMatroskaDemux { GstElement parent; /* < private > */ - GstIndex *element_index; - gint element_index_writer_id; + GstMatroskaReadCommon common; /* pads */ - GstPad *sinkpad; - GPtrArray *src; GstClock *clock; - guint num_streams; guint num_v_streams; guint num_a_streams; guint num_t_streams; - /* metadata */ - gchar *muxing_app; - gchar *writing_app; - gint64 created; - /* state */ gboolean streaming; - GstMatroskaDemuxState state; guint level_up; guint64 seek_block; gboolean seek_first; /* did we parse cues/tracks/segmentinfo already? */ - gboolean index_parsed; gboolean tracks_parsed; - gboolean segmentinfo_parsed; - gboolean attachments_parsed; - GList *tags_parsed; GList *seek_parsed; - /* start-of-segment */ - guint64 ebml_segment_start; - - /* a cue (index) table */ - GArray *index; /* cluster positions (optional) */ GArray *clusters; - /* timescale in the file */ - guint64 time_scale; - /* keeping track of playback position */ - GstSegment segment; gboolean segment_running; GstClockTime last_stop_end; - gint64 duration; + GstClockTime stream_start_time; GstEvent *close_segment; GstEvent *new_segment; - GstTagList *global_tags; - /* pull mode caching */ - GstBuffer *cached_buffer; - - /* push and pull mode */ - guint64 offset; /* some state saving */ GstClockTime cluster_time; guint64 cluster_offset; guint64 first_cluster_offset; guint64 next_cluster_offset; -#ifdef MKVDEMUX_MODIFICATION - GstClockTime time_position; +#ifdef MKV_DEMUX_MODIFICATION + gint64 duration; /* need to check */ + GstClockTime time_position; GstMatroskaTrackContext* audio_stream; - gboolean video; + gboolean video; gboolean found_videokeyframe; gboolean found_audioframe; #endif - /* push based mode usual suspects */ - GstAdapter *adapter; /* index stuff */ gboolean seekable; gboolean building_index; @@ -142,12 +102,24 @@ typedef struct _GstMatroskaDemux { GArray *seek_index; gint seek_entry; -#ifdef MKVDEMUX_MODIFICATION - - GstClockTime next_key_cluster_time; +#ifdef MKV_DEMUX_MODIFICATION + GstClockTime next_key_cluster_time; guint64 next_key_frame_offset; - + GstClockTime current_ts; + GstClockTime current_fwd_ts; + GstClockTime next_keyframe_ts; + GstClockTime prev_keyframe_ts; + gboolean is_eos_blockgroup; + gboolean is_eos_simpleblock; + gint no_video_frame; + gboolean video_keyframe_pushed; #endif + + /* gap handling */ + guint64 max_gap_time; + + /* for non-finalized files, with invalid segment duration */ + gboolean invalid_duration; } GstMatroskaDemux; typedef struct _GstMatroskaDemuxClass { diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c index 5bed5e6..8e62395 100644 --- a/gst/matroska/matroska-ids.c +++ b/gst/matroska/matroska-ids.c @@ -107,6 +107,7 @@ gst_matroska_track_init_subtitle_context (GstMatroskaTrackContext ** p_context) (*p_context)->type = GST_MATROSKA_TRACK_TYPE_SUBTITLE; subtitle_context->invalid_utf8 = FALSE; + subtitle_context->seen_markup_tag = FALSE; return TRUE; } diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h index 40ac535..c88555c 100644 --- a/gst/matroska/matroska-ids.h +++ b/gst/matroska/matroska-ids.h @@ -539,13 +539,10 @@ struct _GstMatroskaTrackContext { /* Whether the stream is EOS */ gboolean eos; - - gboolean found_key_frame; - GstClockTime avg_duration; - GstClockTime last_ts; - GQueue* queue; - gint intra_gap; #ifdef MKV_DEMUX_MODIFICATION + GstClockTime last_ts; + GQueue* queue; + gboolean found_next_kframe; gint32 num_frames_bw_keyframes; guint64 avg_duration_bw_keyframes; @@ -553,7 +550,9 @@ struct _GstMatroskaTrackContext { GstClockTime prev_kframe_timestamp; GstClockTime next_kframe_timestamp; #endif - + + /* any alignment we need our output buffers to have */ + gint alignment; }; typedef struct _GstMatroskaTrackVideoContext { @@ -583,7 +582,10 @@ typedef struct _GstMatroskaTrackSubtitleContext { GstMatroskaTrackContext parent; gboolean check_utf8; /* buffers should be valid UTF-8 */ + gboolean check_markup; /* check if buffers contain markup + * or plaintext and escape characters */ gboolean invalid_utf8; /* work around broken files */ + gboolean seen_markup_tag; /* markup found in text */ } GstMatroskaTrackSubtitleContext; typedef struct _GstMatroskaIndex { diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index 422f62a..30c0cdb 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -146,10 +146,10 @@ static GstStaticPadTemplate audiosink_templ = GST_STATIC_CAPS ("audio/mpeg, " "mpegversion = (int) 1, " "layer = (int) [ 1, 3 ], " - "stream-format = (string) { raw }, " COMMON_AUDIO_CAPS "; " "audio/mpeg, " "mpegversion = (int) { 2, 4 }, " + "stream-format = (string) raw, " COMMON_AUDIO_CAPS "; " "audio/x-ac3, " COMMON_AUDIO_CAPS "; " @@ -258,6 +258,9 @@ static gboolean kate_streamheader_to_codecdata (const GValue * streamheader, GstMatroskaTrackContext * context); static gboolean flac_streamheader_to_codecdata (const GValue * streamheader, GstMatroskaTrackContext * context); +static void +gst_matroska_mux_write_simple_tag (const GstTagList * list, const gchar * tag, + gpointer data); static void gst_matroska_mux_add_interfaces (GType type) @@ -281,14 +284,13 @@ gst_matroska_mux_class_init (GstMatroskaMuxClass * klass) gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&videosink_templ)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&audiosink_templ)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&subtitlesink_templ)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_templ)); + gst_element_class_add_static_pad_template (gstelement_class, + &videosink_templ); + gst_element_class_add_static_pad_template (gstelement_class, + &audiosink_templ); + gst_element_class_add_static_pad_template (gstelement_class, + &subtitlesink_templ); + gst_element_class_add_static_pad_template (gstelement_class, &src_templ); gst_element_class_set_details_simple (gstelement_class, "Matroska muxer", "Codec/Muxer", "Muxes video/audio/subtitle streams into a matroska stream", @@ -331,6 +333,103 @@ gst_matroska_mux_class_init (GstMatroskaMuxClass * klass) GST_DEBUG_FUNCPTR (gst_matroska_mux_release_pad); } +/** + * Start of pad option handler code + */ +#define DEFAULT_PAD_FRAME_DURATION TRUE +#define DEFAULT_PAD_FRAME_DURATION_VP8 FALSE + +enum +{ + PROP_PAD_0, + PROP_PAD_FRAME_DURATION +}; + +typedef struct +{ + GstPad parent; + gboolean frame_duration; + gboolean frame_duration_user; +} GstMatroskamuxPad; + +static void gst_matroskamux_pad_class_init (GstPadClass * klass); + +static GType +gst_matroskamux_pad_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) { + type = g_type_register_static_simple (GST_TYPE_PAD, + g_intern_static_string ("GstMatroskamuxPad"), sizeof (GstPadClass), + (GClassInitFunc) gst_matroskamux_pad_class_init, + sizeof (GstMatroskamuxPad), NULL, 0); + } + return type; +} + +#define GST_TYPE_MATROSKAMUX_PAD (gst_matroskamux_pad_get_type()) +#define GST_MATROSKAMUX_PAD(pad) (G_TYPE_CHECK_INSTANCE_CAST((pad),GST_TYPE_MATROSKAMUX_PAD,GstMatroskamuxPad)) +#define GST_MATROSKAMUX_PAD_CAST(pad) ((GstMatroskamuxPad *) pad) +#define GST_IS_MATROSKAMUX_PAD(pad) (G_TYPE_CHECK_INSTANCE_TYPE((pad),GST_TYPE_MATROSKAMUX_PAD)) + +static void +gst_matroskamux_pad_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMatroskamuxPad *pad = GST_MATROSKAMUX_PAD (object); + + switch (prop_id) { + case PROP_PAD_FRAME_DURATION: + g_value_set_boolean (value, pad->frame_duration); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_matroskamux_pad_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstMatroskamuxPad *pad = GST_MATROSKAMUX_PAD (object); + + switch (prop_id) { + case PROP_PAD_FRAME_DURATION: + pad->frame_duration = g_value_get_boolean (value); + pad->frame_duration_user = TRUE; + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_matroskamux_pad_class_init (GstPadClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + + gobject_class->set_property = gst_matroskamux_pad_set_property; + gobject_class->get_property = gst_matroskamux_pad_get_property; + + g_object_class_install_property (gobject_class, PROP_PAD_FRAME_DURATION, + g_param_spec_boolean ("frame-duration", "Frame duration", + "Default frame duration", DEFAULT_PAD_FRAME_DURATION, + G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_matroskamux_pad_init (GstMatroskamuxPad * pad) +{ + pad->frame_duration = DEFAULT_PAD_FRAME_DURATION; + pad->frame_duration_user = FALSE; +} + +/* + * End of pad option handler code + **/ /** * gst_matroska_mux_init: @@ -388,6 +487,8 @@ gst_matroska_mux_finalize (GObject * object) { GstMatroskaMux *mux = GST_MATROSKA_MUX (object); + gst_event_replace (&mux->force_key_unit_event, NULL); + gst_object_unref (mux->collect); gst_object_unref (mux->ebml_write); if (mux->writing_app) @@ -576,7 +677,7 @@ gst_matroska_mux_reset (GstElement * element) * @pad: Pad which received the event. * @event: Received event. * - * handle events - copied from oggmux without understanding + * handle events - copied from oggmux without understanding * * Returns: #TRUE on success. */ @@ -653,12 +754,29 @@ gst_matroska_mux_handle_sink_event (GstPad * pad, GstEvent * event) event = NULL; break; } - case GST_EVENT_NEWSEGMENT: - /* We don't support NEWSEGMENT events */ - ret = FALSE; - gst_event_unref (event); - event = NULL; + case GST_EVENT_NEWSEGMENT:{ + GstFormat format; + + gst_event_parse_new_segment (event, NULL, NULL, &format, NULL, NULL, + NULL); + if (format != GST_FORMAT_TIME) { + ret = FALSE; + gst_event_unref (event); + event = NULL; + } break; + } + case GST_EVENT_CUSTOM_DOWNSTREAM:{ + const GstStructure *structure; + + structure = gst_event_get_structure (event); + if (gst_structure_has_name (structure, "GstForceKeyUnit")) { + gst_event_replace (&mux->force_key_unit_event, NULL); + mux->force_key_unit_event = event; + event = NULL; + } + break; + } default: break; } @@ -729,7 +847,15 @@ gst_matroska_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps) videocontext->pixel_width = width; videocontext->pixel_height = height; - if (gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d) + + /* set vp8 defaults or let user override it */ + if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration_user == FALSE + && (!strcmp (mimetype, "video/x-vp8"))) + GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration = + DEFAULT_PAD_FRAME_DURATION_VP8; + + if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration + && gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d) && fps_n > 0) { context->default_duration = gst_util_uint64_scale_int (GST_SECOND, fps_d, fps_n); @@ -774,15 +900,14 @@ skip_details: if (!strcmp (mimetype, "video/x-raw-yuv")) { context->codec_id = g_strdup (GST_MATROSKA_CODEC_ID_VIDEO_UNCOMPRESSED); gst_structure_get_fourcc (structure, "format", &videocontext->fourcc); - } else if (!strcmp (mimetype, "image/jpeg")) { - context->codec_id = g_strdup (GST_MATROSKA_CODEC_ID_VIDEO_MJPEG); } else if (!strcmp (mimetype, "video/x-xvid") /* MS/VfW compatibility cases */ ||!strcmp (mimetype, "video/x-huffyuv") || !strcmp (mimetype, "video/x-divx") || !strcmp (mimetype, "video/x-dv") || !strcmp (mimetype, "video/x-h263") || !strcmp (mimetype, "video/x-msmpeg") - || !strcmp (mimetype, "video/x-wmv")) { + || !strcmp (mimetype, "video/x-wmv") + || !strcmp (mimetype, "image/jpeg")) { gst_riff_strf_vids *bih; gint size = sizeof (gst_riff_strf_vids); guint32 fourcc = 0; @@ -839,6 +964,8 @@ skip_details: fourcc = GST_MAKE_FOURCC ('W', 'M', 'V', '3'); } } + } else if (!strcmp (mimetype, "image/jpeg")) { + fourcc = GST_MAKE_FOURCC ('M', 'J', 'P', 'G'); } if (!fourcc) @@ -1821,7 +1948,7 @@ gst_matroska_mux_request_new_pad (GstElement * element, GstElementClass *klass = GST_ELEMENT_GET_CLASS (element); GstMatroskaMux *mux = GST_MATROSKA_MUX (element); GstMatroskaPad *collect_pad; - GstPad *newpad = NULL; + GstMatroskamuxPad *newpad; gchar *name = NULL; const gchar *pad_name = NULL; GstPadSetCapsFunction setcapsfunc = NULL; @@ -1875,11 +2002,14 @@ gst_matroska_mux_request_new_pad (GstElement * element, return NULL; } - newpad = gst_pad_new_from_template (templ, pad_name); + newpad = g_object_new (GST_TYPE_MATROSKAMUX_PAD, + "name", pad_name, "direction", templ->direction, "template", templ, NULL); g_free (name); + + gst_matroskamux_pad_init (newpad); collect_pad = (GstMatroskaPad *) - gst_collect_pads_add_pad_full (mux->collect, newpad, - sizeof (GstMatroskaPad), + gst_collect_pads_add_pad_full (mux->collect, GST_PAD (newpad), + sizeof (GstMatroskamuxPad), (GstCollectDataDestroyNotify) gst_matroska_pad_free); collect_pad->track = context; @@ -1894,19 +2024,19 @@ gst_matroska_mux_request_new_pad (GstElement * element, * This would allow (clean) transcoding of info from demuxer/streams * to another muxer */ mux->collect_event = (GstPadEventFunction) GST_PAD_EVENTFUNC (newpad); - gst_pad_set_event_function (newpad, + gst_pad_set_event_function (GST_PAD (newpad), GST_DEBUG_FUNCPTR (gst_matroska_mux_handle_sink_event)); - gst_pad_set_setcaps_function (newpad, setcapsfunc); - gst_pad_set_active (newpad, TRUE); - if (!gst_element_add_pad (element, newpad)) + gst_pad_set_setcaps_function (GST_PAD (newpad), setcapsfunc); + gst_pad_set_active (GST_PAD (newpad), TRUE); + if (!gst_element_add_pad (element, GST_PAD (newpad))) goto pad_add_failed; mux->num_streams++; GST_DEBUG_OBJECT (newpad, "Added new request pad"); - return newpad; + return GST_PAD (newpad); /* ERROR cases */ pad_add_failed: @@ -2117,6 +2247,27 @@ gst_matroska_mux_start (GstMatroskaMux * mux) gst_ebml_write_master_finish (ebml, master); } + if (mux->streamable) { + const GstTagList *tags; + + /* tags */ + tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (mux)); + + if (tags != NULL && !gst_tag_list_is_empty (tags)) { + guint64 master_tags, master_tag; + + GST_DEBUG ("Writing tags"); + + /* TODO: maybe limit via the TARGETS id by looking at the source pad */ + mux->tags_pos = ebml->pos; + master_tags = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TAGS); + master_tag = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TAG); + gst_tag_list_foreach (tags, gst_matroska_mux_write_simple_tag, ebml); + gst_ebml_write_master_finish (ebml, master_tag); + gst_ebml_write_master_finish (ebml, master_tags); + } + } + /* segment info */ mux->info_pos = ebml->pos; master = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_SEGMENTINFO); @@ -2180,6 +2331,10 @@ gst_matroska_mux_start (GstMatroskaMux * mux) child = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TRACKENTRY); gst_matroska_mux_track_header (mux, collect_pad->track); gst_ebml_write_master_finish (ebml, child); + /* some remaing pad/track setup */ + collect_pad->default_duration_scaled = + gst_util_uint64_scale (collect_pad->track->default_duration, + 1, mux->time_scale); } } gst_ebml_write_master_finish (ebml, master); @@ -2193,7 +2348,7 @@ gst_matroska_mux_write_simple_tag (const GstTagList * list, const gchar * tag, gpointer data) { /* TODO: more sensible tag mappings */ - struct + static const struct { const gchar *matroska_tagname; const gchar *gstreamer_tagname; @@ -2411,7 +2566,7 @@ gst_matroska_mux_finish (GstMatroskaMux * mux) * @mux: #GstMatroskaMux * @popped: True if at least one buffer was popped from #GstCollectPads * - * Find a pad with the oldest data + * Find a pad with the oldest data * (data from this pad should be written first). * * Returns: Selected pad. @@ -2450,6 +2605,10 @@ gst_matroska_mux_best_pad (GstMatroskaMux * mux, gboolean * popped) collect_pad->buffer = NULL; return NULL; } else { + GST_LOG_OBJECT (mux, "buffer ts %" GST_TIME_FORMAT " -> %" + GST_TIME_FORMAT " running time", + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (collect_pad->buffer)), + GST_TIME_ARGS (time)); collect_pad->buffer = gst_buffer_make_metadata_writable (collect_pad->buffer); GST_BUFFER_TIMESTAMP (collect_pad->buffer) = time; @@ -2543,7 +2702,7 @@ gst_matroska_mux_handle_dirac_packet (GstMatroskaMux * mux, next_parse_offset = GST_READ_UINT32_BE (data + 5); - if (G_UNLIKELY (next_parse_offset == 0)) + if (G_UNLIKELY (next_parse_offset == 0 || next_parse_offset > size)) break; data += next_parse_offset; @@ -2620,10 +2779,12 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad) gint64 relative_timestamp64; guint64 block_duration; gboolean is_video_keyframe = FALSE; + GstMatroskamuxPad *pad; /* write data */ buf = collect_pad->buffer; collect_pad->buffer = NULL; + pad = GST_MATROSKAMUX_PAD_CAST (collect_pad->collect.pad); /* vorbis/theora headers are retrieved from caps and put in CodecPrivate */ if (collect_pad->track->xiph_headers_to_skip > 0) { @@ -2664,13 +2825,20 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad) } if (mux->cluster) { - /* start a new cluster at every keyframe or when we may be reaching the - * limit of the relative timestamp */ + /* start a new cluster at every keyframe, at every GstForceKeyUnit event, + * or when we may be reaching the limit of the relative timestamp */ if (mux->cluster_time + mux->max_cluster_duration < GST_BUFFER_TIMESTAMP (buf) - || is_video_keyframe) { + || is_video_keyframe || mux->force_key_unit_event) { if (!mux->streamable) gst_ebml_write_master_finish (ebml, mux->cluster); + + /* Forward the GstForceKeyUnit event after finishing the cluster */ + if (mux->force_key_unit_event) { + gst_pad_push_event (mux->srcpad, mux->force_key_unit_event); + mux->force_key_unit_event = NULL; + } + mux->prev_cluster_size = ebml->pos - mux->cluster_pos; mux->cluster_pos = ebml->pos; gst_ebml_write_set_cache (ebml, 0x20); @@ -2743,9 +2911,14 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad) /* Check if the duration differs from the default duration. */ write_duration = FALSE; - block_duration = GST_BUFFER_DURATION (buf); - if (GST_BUFFER_DURATION_IS_VALID (buf)) { - if (block_duration != collect_pad->track->default_duration) { + block_duration = 0; + if (pad->frame_duration && GST_BUFFER_DURATION_IS_VALID (buf)) { + block_duration = gst_util_uint64_scale (GST_BUFFER_DURATION (buf), + 1, mux->time_scale); + + /* small difference should be ok. */ + if (block_duration > collect_pad->default_duration_scaled + 1 || + block_duration < collect_pad->default_duration_scaled - 1) { write_duration = TRUE; } } @@ -2786,10 +2959,8 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad) hdr = gst_matroska_mux_create_buffer_header (collect_pad->track, relative_timestamp, 0); - if (write_duration) { - gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION, - gst_util_uint64_scale (block_duration, 1, mux->time_scale)); - } + if (write_duration) + gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION, block_duration); gst_ebml_write_buffer_header (ebml, GST_MATROSKA_ID_BLOCK, GST_BUFFER_SIZE (buf) + GST_BUFFER_SIZE (hdr)); gst_ebml_write_buffer (ebml, hdr); diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h index 1270072..73bdc09 100644 --- a/gst/matroska/matroska-mux.h +++ b/gst/matroska/matroska-mux.h @@ -64,6 +64,7 @@ typedef struct guint64 duration; GstClockTime start_ts; GstClockTime end_ts; /* last timestamp + (if available) duration */ + guint64 default_duration_scaled; } GstMatroskaPad; @@ -125,6 +126,9 @@ typedef struct _GstMatroskaMux { cluster_pos, prev_cluster_size; + /* GstForceKeyUnit event */ + GstEvent *force_key_unit_event; + } GstMatroskaMux; typedef struct _GstMatroskaMuxClass { diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c index 24a95a9..6fd1f79 100644 --- a/gst/matroska/matroska-parse.c +++ b/gst/matroska/matroska-parse.c @@ -2,6 +2,7 @@ * (c) 2003 Ronald Bultje * (c) 2006 Tim-Philipp Müller * (c) 2008 Sebastian Dröge + * (c) 2011 Debarshi Ray * * matroska-parse.c: matroska file/stream parser * @@ -60,20 +61,8 @@ #include -#include - -#ifdef HAVE_ZLIB -#include -#endif - -#ifdef HAVE_BZ2 -#include -#endif - #include -#include "lzo.h" - #include "matroska-parse.h" #include "matroska-ids.h" @@ -154,10 +143,8 @@ gst_matroska_parse_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_templ)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_templ)); + gst_element_class_add_static_pad_template (element_class, &src_templ); + gst_element_class_add_static_pad_template (element_class, &sink_templ); gst_element_class_set_details_simple (element_class, "Matroska parser", "Codec/Parser", @@ -170,17 +157,17 @@ gst_matroska_parse_finalize (GObject * object) { GstMatroskaParse *parse = GST_MATROSKA_PARSE (object); - if (parse->src) { - g_ptr_array_free (parse->src, TRUE); - parse->src = NULL; + if (parse->common.src) { + g_ptr_array_free (parse->common.src, TRUE); + parse->common.src = NULL; } - if (parse->global_tags) { - gst_tag_list_free (parse->global_tags); - parse->global_tags = NULL; + if (parse->common.global_tags) { + gst_tag_list_free (parse->common.global_tags); + parse->common.global_tags = NULL; } - g_object_unref (parse->adapter); + g_object_unref (parse->common.adapter); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -213,12 +200,13 @@ static void gst_matroska_parse_init (GstMatroskaParse * parse, GstMatroskaParseClass * klass) { - parse->sinkpad = gst_pad_new_from_static_template (&sink_templ, "sink"); - gst_pad_set_chain_function (parse->sinkpad, + parse->common.sinkpad = gst_pad_new_from_static_template (&sink_templ, + "sink"); + gst_pad_set_chain_function (parse->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_parse_chain)); - gst_pad_set_event_function (parse->sinkpad, + gst_pad_set_event_function (parse->common.sinkpad, GST_DEBUG_FUNCPTR (gst_matroska_parse_handle_sink_event)); - gst_element_add_pad (GST_ELEMENT (parse), parse->sinkpad); + gst_element_add_pad (GST_ELEMENT (parse), parse->common.sinkpad); parse->srcpad = gst_pad_new_from_static_template (&src_templ, "src"); gst_pad_set_event_function (parse->srcpad, @@ -232,14 +220,14 @@ gst_matroska_parse_init (GstMatroskaParse * parse, gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad); /* initial stream no. */ - parse->src = NULL; + parse->common.src = NULL; - parse->writing_app = NULL; - parse->muxing_app = NULL; - parse->index = NULL; - parse->global_tags = NULL; + parse->common.writing_app = NULL; + parse->common.muxing_app = NULL; + parse->common.index = NULL; + parse->common.global_tags = NULL; - parse->adapter = gst_adapter_new (); + parse->common.adapter = gst_adapter_new (); /* finish off */ gst_matroska_parse_reset (GST_ELEMENT (parse)); @@ -292,63 +280,64 @@ gst_matroska_parse_reset (GstElement * element) GST_DEBUG_OBJECT (parse, "Resetting state"); /* reset input */ - parse->state = GST_MATROSKA_PARSE_STATE_START; + parse->common.state = GST_MATROSKA_READ_STATE_START; /* clean up existing streams */ - if (parse->src) { - g_assert (parse->src->len == parse->num_streams); - for (i = 0; i < parse->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (parse->src, i); + if (parse->common.src) { + g_assert (parse->common.src->len == parse->common.num_streams); + for (i = 0; i < parse->common.src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (parse->common.src, + i); gst_caps_replace (&context->caps, NULL); gst_matroska_track_free (context); } - g_ptr_array_free (parse->src, TRUE); + g_ptr_array_free (parse->common.src, TRUE); } - parse->src = g_ptr_array_new (); + parse->common.src = g_ptr_array_new (); - parse->num_streams = 0; + parse->common.num_streams = 0; parse->num_a_streams = 0; parse->num_t_streams = 0; parse->num_v_streams = 0; /* reset media info */ - g_free (parse->writing_app); - parse->writing_app = NULL; - g_free (parse->muxing_app); - parse->muxing_app = NULL; + g_free (parse->common.writing_app); + parse->common.writing_app = NULL; + g_free (parse->common.muxing_app); + parse->common.muxing_app = NULL; /* reset indexes */ - if (parse->index) { - g_array_free (parse->index, TRUE); - parse->index = NULL; + if (parse->common.index) { + g_array_free (parse->common.index, TRUE); + parse->common.index = NULL; } /* reset timers */ parse->clock = NULL; - parse->time_scale = 1000000; - parse->created = G_MININT64; + parse->common.time_scale = 1000000; + parse->common.created = G_MININT64; - parse->index_parsed = FALSE; + parse->common.index_parsed = FALSE; parse->tracks_parsed = FALSE; - parse->segmentinfo_parsed = FALSE; - parse->attachments_parsed = FALSE; + parse->common.segmentinfo_parsed = FALSE; + parse->common.attachments_parsed = FALSE; - g_list_foreach (parse->tags_parsed, + g_list_foreach (parse->common.tags_parsed, (GFunc) gst_matroska_parse_free_parsed_el, NULL); - g_list_free (parse->tags_parsed); - parse->tags_parsed = NULL; + g_list_free (parse->common.tags_parsed); + parse->common.tags_parsed = NULL; g_list_foreach (parse->seek_parsed, (GFunc) gst_matroska_parse_free_parsed_el, NULL); g_list_free (parse->seek_parsed); parse->seek_parsed = NULL; - gst_segment_init (&parse->segment, GST_FORMAT_TIME); + gst_segment_init (&parse->common.segment, GST_FORMAT_TIME); parse->last_stop_end = GST_CLOCK_TIME_NONE; parse->seek_block = 0; - parse->offset = 0; + parse->common.offset = 0; parse->cluster_time = GST_CLOCK_TIME_NONE; parse->cluster_offset = 0; parse->next_cluster_offset = 0; @@ -374,274 +363,176 @@ gst_matroska_parse_reset (GstElement * element) parse->new_segment = NULL; } - if (parse->element_index) { - gst_object_unref (parse->element_index); - parse->element_index = NULL; - } - parse->element_index_writer_id = -1; - - if (parse->global_tags) { - gst_tag_list_free (parse->global_tags); - } - parse->global_tags = gst_tag_list_new (); - - if (parse->cached_buffer) { - gst_buffer_unref (parse->cached_buffer); - parse->cached_buffer = NULL; - } -} - -/* - * Calls pull_range for (offset,size) without advancing our offset - */ -static GstFlowReturn -gst_matroska_parse_peek_bytes (GstMatroskaParse * parse, guint64 offset, - guint size, GstBuffer ** p_buf, guint8 ** bytes) -{ - GstFlowReturn ret; - - /* Caching here actually makes much less difference than one would expect. - * We do it mainly to avoid pulling buffers of 1 byte all the time */ - if (parse->cached_buffer) { - guint64 cache_offset = GST_BUFFER_OFFSET (parse->cached_buffer); - guint cache_size = GST_BUFFER_SIZE (parse->cached_buffer); - - if (cache_offset <= parse->offset && - (parse->offset + size) <= (cache_offset + cache_size)) { - if (p_buf) - *p_buf = gst_buffer_create_sub (parse->cached_buffer, - parse->offset - cache_offset, size); - if (bytes) - *bytes = GST_BUFFER_DATA (parse->cached_buffer) + parse->offset - - cache_offset; - return GST_FLOW_OK; - } - /* not enough data in the cache, free cache and get a new one */ - gst_buffer_unref (parse->cached_buffer); - parse->cached_buffer = NULL; - } - - /* refill the cache */ - ret = gst_pad_pull_range (parse->sinkpad, parse->offset, - MAX (size, 64 * 1024), &parse->cached_buffer); - if (ret != GST_FLOW_OK) { - parse->cached_buffer = NULL; - return ret; - } - - if (GST_BUFFER_SIZE (parse->cached_buffer) >= size) { - if (p_buf) - *p_buf = gst_buffer_create_sub (parse->cached_buffer, 0, size); - if (bytes) - *bytes = GST_BUFFER_DATA (parse->cached_buffer); - return GST_FLOW_OK; + if (parse->common.element_index) { + gst_object_unref (parse->common.element_index); + parse->common.element_index = NULL; } + parse->common.element_index_writer_id = -1; - /* Not possible to get enough data, try a last time with - * requesting exactly the size we need */ - gst_buffer_unref (parse->cached_buffer); - parse->cached_buffer = NULL; - - ret = - gst_pad_pull_range (parse->sinkpad, parse->offset, size, - &parse->cached_buffer); - if (ret != GST_FLOW_OK) { - GST_DEBUG_OBJECT (parse, "pull_range returned %d", ret); - if (p_buf) - *p_buf = NULL; - if (bytes) - *bytes = NULL; - return ret; + if (parse->common.global_tags) { + gst_tag_list_free (parse->common.global_tags); } + parse->common.global_tags = gst_tag_list_new (); - if (GST_BUFFER_SIZE (parse->cached_buffer) < size) { - GST_WARNING_OBJECT (parse, "Dropping short buffer at offset %" - G_GUINT64_FORMAT ": wanted %u bytes, got %u bytes", parse->offset, - size, GST_BUFFER_SIZE (parse->cached_buffer)); - - gst_buffer_unref (parse->cached_buffer); - parse->cached_buffer = NULL; - if (p_buf) - *p_buf = NULL; - if (bytes) - *bytes = NULL; - return GST_FLOW_UNEXPECTED; + if (parse->common.cached_buffer) { + gst_buffer_unref (parse->common.cached_buffer); + parse->common.cached_buffer = NULL; } - if (p_buf) - *p_buf = gst_buffer_create_sub (parse->cached_buffer, 0, size); - if (bytes) - *bytes = GST_BUFFER_DATA (parse->cached_buffer); - - return GST_FLOW_OK; -} - -static const guint8 * -gst_matroska_parse_peek_pull (GstMatroskaParse * parse, guint peek) -{ - guint8 *data = NULL; - - gst_matroska_parse_peek_bytes (parse, parse->offset, peek, NULL, &data); - return data; -} - -static GstFlowReturn -gst_matroska_parse_peek_id_length_pull (GstMatroskaParse * parse, guint32 * _id, - guint64 * _length, guint * _needed) -{ - return gst_ebml_peek_id_length (_id, _length, _needed, - (GstPeekData) gst_matroska_parse_peek_pull, (gpointer) parse, - GST_ELEMENT_CAST (parse), parse->offset); -} - -static gint64 -gst_matroska_parse_get_length (GstMatroskaParse * parse) -{ - GstFormat fmt = GST_FORMAT_BYTES; - gint64 end = -1; - - if (!gst_pad_query_peer_duration (parse->sinkpad, &fmt, &end) || - fmt != GST_FORMAT_BYTES || end < 0) - GST_DEBUG_OBJECT (parse, "no upstream length"); - - return end; -} - -static gint -gst_matroska_parse_stream_from_num (GstMatroskaParse * parse, guint track_num) -{ - guint n; - - g_assert (parse->src->len == parse->num_streams); - for (n = 0; n < parse->src->len; n++) { - GstMatroskaTrackContext *context = g_ptr_array_index (parse->src, n); - - if (context->num == track_num) { - return n; - } + if (parse->streamheader != NULL) { + gst_buffer_unref (parse->streamheader); + parse->streamheader = NULL; } - - if (n == parse->num_streams) - GST_WARNING_OBJECT (parse, - "Failed to find corresponding pad for tracknum %d", track_num); - - return -1; -} - -static gint -gst_matroska_parse_encoding_cmp (GstMatroskaTrackEncoding * a, - GstMatroskaTrackEncoding * b) -{ - if (b->order > a->order) - return 1; - else if (b->order < a->order) - return -1; - else - return 0; -} - -static gboolean -gst_matroska_parse_encoding_order_unique (GArray * encodings, guint64 order) -{ - gint i; - - if (encodings == NULL || encodings->len == 0) - return TRUE; - - for (i = 0; i < encodings->len; i++) - if (g_array_index (encodings, GstMatroskaTrackEncoding, i).order == order) - return FALSE; - - return TRUE; } static GstFlowReturn -gst_matroska_parse_read_track_encoding (GstMatroskaParse * parse, - GstEbmlRead * ebml, GstMatroskaTrackContext * context) +gst_matroska_parse_add_stream (GstMatroskaParse * parse, GstEbmlRead * ebml) { - GstMatroskaTrackEncoding enc = { 0, }; + GstMatroskaTrackContext *context; GstFlowReturn ret; guint32 id; - DEBUG_ELEMENT_START (parse, ebml, "ContentEncoding"); - /* Set default values */ - enc.scope = 1; - /* All other default values are 0 */ + DEBUG_ELEMENT_START (parse, ebml, "TrackEntry"); + /* start with the master */ if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "ContentEncoding", ret); + DEBUG_ELEMENT_STOP (parse, ebml, "TrackEntry", ret); return ret; } + /* allocate generic... if we know the type, we'll g_renew() + * with the precise type */ + context = g_new0 (GstMatroskaTrackContext, 1); + g_ptr_array_add (parse->common.src, context); + context->index = parse->common.num_streams; + context->index_writer_id = -1; + context->type = 0; /* no type yet */ + context->default_duration = 0; + context->pos = 0; + context->set_discont = TRUE; + context->timecodescale = 1.0; + context->flags = + GST_MATROSKA_TRACK_ENABLED | GST_MATROSKA_TRACK_DEFAULT | + GST_MATROSKA_TRACK_LACING; + context->last_flow = GST_FLOW_OK; + context->to_offset = G_MAXINT64; + context->alignment = 1; + parse->common.num_streams++; + g_assert (parse->common.src->len == parse->common.num_streams); + + GST_DEBUG_OBJECT (parse, "Stream number %d", context->index); + + /* try reading the trackentry headers */ while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) break; switch (id) { - case GST_MATROSKA_ID_CONTENTENCODINGORDER:{ + /* track number (unique stream ID) */ + case GST_MATROSKA_ID_TRACKNUMBER:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (!gst_matroska_parse_encoding_order_unique (context->encodings, num)) { - GST_ERROR_OBJECT (parse, "ContentEncodingOrder %" G_GUINT64_FORMAT - "is not unique for track %d", num, context->num); + if (num == 0) { + GST_ERROR_OBJECT (parse, "Invalid TrackNumber 0"); + ret = GST_FLOW_ERROR; + break; + } else if (!gst_matroska_read_common_tracknumber_unique (&parse->common, + num)) { + GST_ERROR_OBJECT (parse, "TrackNumber %" G_GUINT64_FORMAT + " is not unique", num); ret = GST_FLOW_ERROR; break; } - GST_DEBUG_OBJECT (parse, "ContentEncodingOrder: %" G_GUINT64_FORMAT, - num); - enc.order = num; + GST_DEBUG_OBJECT (parse, "TrackNumber: %" G_GUINT64_FORMAT, num); + context->num = num; break; } - case GST_MATROSKA_ID_CONTENTENCODINGSCOPE:{ + /* track UID (unique identifier) */ + case GST_MATROSKA_ID_TRACKUID:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (num > 7 && num == 0) { - GST_ERROR_OBJECT (parse, "Invalid ContentEncodingScope %" - G_GUINT64_FORMAT, num); + if (num == 0) { + GST_ERROR_OBJECT (parse, "Invalid TrackUID 0"); ret = GST_FLOW_ERROR; break; } - GST_DEBUG_OBJECT (parse, "ContentEncodingScope: %" G_GUINT64_FORMAT, - num); - enc.scope = num; - + GST_DEBUG_OBJECT (parse, "TrackUID: %" G_GUINT64_FORMAT, num); + context->uid = num; break; } - case GST_MATROSKA_ID_CONTENTENCODINGTYPE:{ - guint64 num; - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + /* track type (video, audio, combined, subtitle, etc.) */ + case GST_MATROSKA_ID_TRACKTYPE:{ + guint64 track_type; + + if ((ret = gst_ebml_read_uint (ebml, &id, &track_type)) != GST_FLOW_OK) { break; + } - if (num > 1) { - GST_ERROR_OBJECT (parse, "Invalid ContentEncodingType %" - G_GUINT64_FORMAT, num); - ret = GST_FLOW_ERROR; + if (context->type != 0 && context->type != track_type) { + GST_WARNING_OBJECT (parse, + "More than one tracktype defined in a TrackEntry - skipping"); break; - } else if (num != 0) { - GST_ERROR_OBJECT (parse, "Encrypted tracks are not supported yet"); - ret = GST_FLOW_ERROR; + } else if (track_type < 1 || track_type > 254) { + GST_WARNING_OBJECT (parse, "Invalid TrackType %" G_GUINT64_FORMAT, + track_type); break; } - GST_DEBUG_OBJECT (parse, "ContentEncodingType: %" G_GUINT64_FORMAT, - num); - enc.type = num; + + GST_DEBUG_OBJECT (parse, "TrackType: %" G_GUINT64_FORMAT, track_type); + + /* ok, so we're actually going to reallocate this thing */ + switch (track_type) { + case GST_MATROSKA_TRACK_TYPE_VIDEO: + gst_matroska_track_init_video_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_AUDIO: + gst_matroska_track_init_audio_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_SUBTITLE: + gst_matroska_track_init_subtitle_context (&context); + break; + case GST_MATROSKA_TRACK_TYPE_COMPLEX: + case GST_MATROSKA_TRACK_TYPE_LOGO: + case GST_MATROSKA_TRACK_TYPE_BUTTONS: + case GST_MATROSKA_TRACK_TYPE_CONTROL: + default: + GST_WARNING_OBJECT (parse, + "Unknown or unsupported TrackType %" G_GUINT64_FORMAT, + track_type); + context->type = 0; + break; + } + g_ptr_array_index (parse->common.src, parse->common.num_streams - 1) + = context; break; } - case GST_MATROSKA_ID_CONTENTCOMPRESSION:{ - DEBUG_ELEMENT_START (parse, ebml, "ContentCompression"); + /* tracktype specific stuff for video */ + case GST_MATROSKA_ID_TRACKVIDEO:{ + GstMatroskaTrackVideoContext *videocontext; + + DEBUG_ELEMENT_START (parse, ebml, "TrackVideo"); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) + if (!gst_matroska_track_init_video_context (&context)) { + GST_WARNING_OBJECT (parse, + "TrackVideo element in non-video track - ignoring track"); + ret = GST_FLOW_ERROR; break; + } else if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + break; + } + videocontext = (GstMatroskaTrackVideoContext *) context; + g_ptr_array_index (parse->common.src, parse->common.num_streams - 1) + = context; while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { @@ -649,2720 +540,1001 @@ gst_matroska_parse_read_track_encoding (GstMatroskaParse * parse, break; switch (id) { - case GST_MATROSKA_ID_CONTENTCOMPALGO:{ + /* Should be one level up but some broken muxers write it here. */ + case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ guint64 num; - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) { + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackDefaultDuration 0"); break; } - if (num > 3) { - GST_ERROR_OBJECT (parse, "Invalid ContentCompAlgo %" - G_GUINT64_FORMAT, num); - ret = GST_FLOW_ERROR; + + GST_DEBUG_OBJECT (parse, + "TrackDefaultDuration: %" G_GUINT64_FORMAT, num); + context->default_duration = num; + break; + } + + /* video framerate */ + /* NOTE: This one is here only for backward compatibility. + * Use _TRACKDEFAULDURATION one level up. */ + case GST_MATROSKA_ID_VIDEOFRAMERATE:{ + gdouble num; + + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num <= 0.0) { + GST_WARNING_OBJECT (parse, "Invalid TrackVideoFPS %lf", num); break; } - GST_DEBUG_OBJECT (parse, "ContentCompAlgo: %" G_GUINT64_FORMAT, - num); - enc.comp_algo = num; + GST_DEBUG_OBJECT (parse, "TrackVideoFrameRate: %lf", num); + if (context->default_duration == 0) + context->default_duration = + gst_gdouble_to_guint64 ((gdouble) GST_SECOND * (1.0 / num)); + videocontext->default_fps = num; break; } - case GST_MATROSKA_ID_CONTENTCOMPSETTINGS:{ - guint8 *data; - guint64 size; - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, - &size)) != GST_FLOW_OK) { + /* width of the size to display the video at */ + case GST_MATROSKA_ID_VIDEODISPLAYWIDTH:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackVideoDisplayWidth 0"); break; } - enc.comp_settings = data; - enc.comp_settings_length = size; + GST_DEBUG_OBJECT (parse, - "ContentCompSettings of size %" G_GUINT64_FORMAT, size); + "TrackVideoDisplayWidth: %" G_GUINT64_FORMAT, num); + videocontext->display_width = num; break; } - default: - GST_WARNING_OBJECT (parse, - "Unknown ContentCompression subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); - break; - } - } - DEBUG_ELEMENT_STOP (parse, ebml, "ContentCompression", ret); - break; - } - case GST_MATROSKA_ID_CONTENTENCRYPTION: - GST_ERROR_OBJECT (parse, "Encrypted tracks not yet supported"); - gst_ebml_read_skip (ebml); - ret = GST_FLOW_ERROR; - break; - default: - GST_WARNING_OBJECT (parse, - "Unknown ContentEncoding subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); - break; - } - } + /* height of the size to display the video at */ + case GST_MATROSKA_ID_VIDEODISPLAYHEIGHT:{ + guint64 num; - DEBUG_ELEMENT_STOP (parse, ebml, "ContentEncoding", ret); - if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) - return ret; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - /* TODO: Check if the combination of values is valid */ + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackVideoDisplayHeight 0"); + break; + } - g_array_append_val (context->encodings, enc); + GST_DEBUG_OBJECT (parse, + "TrackVideoDisplayHeight: %" G_GUINT64_FORMAT, num); + videocontext->display_height = num; + break; + } - return ret; -} + /* width of the video in the file */ + case GST_MATROSKA_ID_VIDEOPIXELWIDTH:{ + guint64 num; -static gboolean -gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc, - guint8 ** data_out, guint * size_out, - GstMatroskaTrackCompressionAlgorithm algo) -{ - guint8 *new_data = NULL; - guint new_size = 0; - guint8 *data = *data_out; - guint size = *size_out; - gboolean ret = TRUE; - - if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_ZLIB) { -#ifdef HAVE_ZLIB - /* zlib encoded data */ - z_stream zstream; - guint orig_size; - int result; - - orig_size = size; - zstream.zalloc = (alloc_func) 0; - zstream.zfree = (free_func) 0; - zstream.opaque = (voidpf) 0; - if (inflateInit (&zstream) != Z_OK) { - GST_WARNING ("zlib initialization failed."); - ret = FALSE; - goto out; - } - zstream.next_in = (Bytef *) data; - zstream.avail_in = orig_size; - new_size = orig_size; - new_data = g_malloc (new_size); - zstream.avail_out = new_size; - zstream.next_out = (Bytef *) new_data; - - do { - result = inflate (&zstream, Z_NO_FLUSH); - if (result != Z_OK && result != Z_STREAM_END) { - GST_WARNING ("zlib decompression failed."); - g_free (new_data); - inflateEnd (&zstream); - break; - } - new_size += 4000; - new_data = g_realloc (new_data, new_size); - zstream.next_out = (Bytef *) (new_data + zstream.total_out); - zstream.avail_out += 4000; - } while (zstream.avail_in != 0 && result != Z_STREAM_END); - - if (result != Z_STREAM_END) { - ret = FALSE; - goto out; - } else { - new_size = zstream.total_out; - inflateEnd (&zstream); - } -#else - GST_WARNING ("zlib encoded tracks not supported."); - ret = FALSE; - goto out; -#endif - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_BZLIB) { -#ifdef HAVE_BZ2 - /* bzip2 encoded data */ - bz_stream bzstream; - guint orig_size; - int result; - - bzstream.bzalloc = NULL; - bzstream.bzfree = NULL; - bzstream.opaque = NULL; - orig_size = size; - - if (BZ2_bzDecompressInit (&bzstream, 0, 0) != BZ_OK) { - GST_WARNING ("bzip2 initialization failed."); - ret = FALSE; - goto out; - } - - bzstream.next_in = (char *) data; - bzstream.avail_in = orig_size; - new_size = orig_size; - new_data = g_malloc (new_size); - bzstream.avail_out = new_size; - bzstream.next_out = (char *) new_data; - - do { - result = BZ2_bzDecompress (&bzstream); - if (result != BZ_OK && result != BZ_STREAM_END) { - GST_WARNING ("bzip2 decompression failed."); - g_free (new_data); - BZ2_bzDecompressEnd (&bzstream); - break; - } - new_size += 4000; - new_data = g_realloc (new_data, new_size); - bzstream.next_out = (char *) (new_data + bzstream.total_out_lo32); - bzstream.avail_out += 4000; - } while (bzstream.avail_in != 0 && result != BZ_STREAM_END); - - if (result != BZ_STREAM_END) { - ret = FALSE; - goto out; - } else { - new_size = bzstream.total_out_lo32; - BZ2_bzDecompressEnd (&bzstream); - } -#else - GST_WARNING ("bzip2 encoded tracks not supported."); - ret = FALSE; - goto out; -#endif - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_LZO1X) { - /* lzo encoded data */ - int result; - int orig_size, out_size; - - orig_size = size; - out_size = size; - new_size = size; - new_data = g_malloc (new_size); - - do { - orig_size = size; - out_size = new_size; - - result = lzo1x_decode (new_data, &out_size, data, &orig_size); - - if (orig_size > 0) { - new_size += 4000; - new_data = g_realloc (new_data, new_size); - } - } while (orig_size > 0 && result == LZO_OUTPUT_FULL); - - new_size -= out_size; - - if (result != LZO_OUTPUT_FULL) { - GST_WARNING ("lzo decompression failed"); - g_free (new_data); - - ret = FALSE; - goto out; - } - - } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_HEADERSTRIP) { - /* header stripped encoded data */ - if (enc->comp_settings_length > 0) { - new_data = g_malloc (size + enc->comp_settings_length); - new_size = size + enc->comp_settings_length; - - memcpy (new_data, enc->comp_settings, enc->comp_settings_length); - memcpy (new_data + enc->comp_settings_length, data, size); - } - } else { - GST_ERROR ("invalid compression algorithm %d", algo); - ret = FALSE; - } - -out: - - if (!ret) { - *data_out = NULL; - *size_out = 0; - } else { - *data_out = new_data; - *size_out = new_size; - } - - return ret; -} - -static gboolean -gst_matroska_decode_data (GArray * encodings, guint8 ** data_out, - guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free) -{ - guint8 *data; - guint size; - gboolean ret = TRUE; - gint i; - - g_return_val_if_fail (encodings != NULL, FALSE); - g_return_val_if_fail (data_out != NULL && *data_out != NULL, FALSE); - g_return_val_if_fail (size_out != NULL, FALSE); - - data = *data_out; - size = *size_out; - - for (i = 0; i < encodings->len; i++) { - GstMatroskaTrackEncoding *enc = - &g_array_index (encodings, GstMatroskaTrackEncoding, i); - guint8 *new_data = NULL; - guint new_size = 0; - - if ((enc->scope & scope) == 0) - continue; - - /* Encryption not supported yet */ - if (enc->type != 0) { - ret = FALSE; - break; - } - - new_data = data; - new_size = size; - - ret = - gst_matroska_decompress_data (enc, &new_data, &new_size, - enc->comp_algo); - - if (!ret) - break; - - if ((data == *data_out && free) || (data != *data_out)) - g_free (data); - - data = new_data; - size = new_size; - } - - if (!ret) { - if ((data == *data_out && free) || (data != *data_out)) - g_free (data); - - *data_out = NULL; - *size_out = 0; - } else { - *data_out = data; - *size_out = size; - } - - return ret; -} - -static GstFlowReturn -gst_matroska_decode_content_encodings (GArray * encodings) -{ - gint i; - - if (encodings == NULL) - return GST_FLOW_OK; - - for (i = 0; i < encodings->len; i++) { - GstMatroskaTrackEncoding *enc = - &g_array_index (encodings, GstMatroskaTrackEncoding, i); - guint8 *data = NULL; - guint size; - - if ((enc->scope & GST_MATROSKA_TRACK_ENCODING_SCOPE_NEXT_CONTENT_ENCODING) - == 0) - continue; - - /* Encryption not supported yet */ - if (enc->type != 0) - return GST_FLOW_ERROR; - - if (i + 1 >= encodings->len) - return GST_FLOW_ERROR; - - if (enc->comp_settings_length == 0) - continue; - - data = enc->comp_settings; - size = enc->comp_settings_length; - - if (!gst_matroska_decompress_data (enc, &data, &size, enc->comp_algo)) - return GST_FLOW_ERROR; - - g_free (enc->comp_settings); - - enc->comp_settings = data; - enc->comp_settings_length = size; - } - - return GST_FLOW_OK; -} - -static GstFlowReturn -gst_matroska_parse_read_track_encodings (GstMatroskaParse * parse, - GstEbmlRead * ebml, GstMatroskaTrackContext * context) -{ - GstFlowReturn ret; - guint32 id; - - DEBUG_ELEMENT_START (parse, ebml, "ContentEncodings"); - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "ContentEncodings", ret); - return ret; - } - - context->encodings = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaTrackEncoding), 1); - - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - case GST_MATROSKA_ID_CONTENTENCODING: - ret = gst_matroska_parse_read_track_encoding (parse, ebml, context); - break; - default: - GST_WARNING_OBJECT (parse, - "Unknown ContentEncodings subelement 0x%x - ignoring", id); - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "ContentEncodings", ret); - if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) - return ret; - - /* Sort encodings according to their order */ - g_array_sort (context->encodings, - (GCompareFunc) gst_matroska_parse_encoding_cmp); - - return gst_matroska_decode_content_encodings (context->encodings); -} - -static gboolean -gst_matroska_parse_tracknumber_unique (GstMatroskaParse * parse, guint64 num) -{ - gint i; - - g_assert (parse->src->len == parse->num_streams); - for (i = 0; i < parse->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (parse->src, i); - - if (context->num == num) - return FALSE; - } - - return TRUE; -} - -static GstFlowReturn -gst_matroska_parse_add_stream (GstMatroskaParse * parse, GstEbmlRead * ebml) -{ - GstMatroskaTrackContext *context; - GstFlowReturn ret; - guint32 id; - - DEBUG_ELEMENT_START (parse, ebml, "TrackEntry"); - - /* start with the master */ - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "TrackEntry", ret); - return ret; - } - - /* allocate generic... if we know the type, we'll g_renew() - * with the precise type */ - context = g_new0 (GstMatroskaTrackContext, 1); - g_ptr_array_add (parse->src, context); - context->index = parse->num_streams; - context->index_writer_id = -1; - context->type = 0; /* no type yet */ - context->default_duration = 0; - context->pos = 0; - context->set_discont = TRUE; - context->timecodescale = 1.0; - context->flags = - GST_MATROSKA_TRACK_ENABLED | GST_MATROSKA_TRACK_DEFAULT | - GST_MATROSKA_TRACK_LACING; - context->last_flow = GST_FLOW_OK; - context->to_offset = G_MAXINT64; - parse->num_streams++; - g_assert (parse->src->len == parse->num_streams); - - GST_DEBUG_OBJECT (parse, "Stream number %d", context->index); - - /* try reading the trackentry headers */ - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* track number (unique stream ID) */ - case GST_MATROSKA_ID_TRACKNUMBER:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_ERROR_OBJECT (parse, "Invalid TrackNumber 0"); - ret = GST_FLOW_ERROR; - break; - } else if (!gst_matroska_parse_tracknumber_unique (parse, num)) { - GST_ERROR_OBJECT (parse, "TrackNumber %" G_GUINT64_FORMAT - " is not unique", num); - ret = GST_FLOW_ERROR; - break; - } - - GST_DEBUG_OBJECT (parse, "TrackNumber: %" G_GUINT64_FORMAT, num); - context->num = num; - break; - } - /* track UID (unique identifier) */ - case GST_MATROSKA_ID_TRACKUID:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_ERROR_OBJECT (parse, "Invalid TrackUID 0"); - ret = GST_FLOW_ERROR; - break; - } - - GST_DEBUG_OBJECT (parse, "TrackUID: %" G_GUINT64_FORMAT, num); - context->uid = num; - break; - } - - /* track type (video, audio, combined, subtitle, etc.) */ - case GST_MATROSKA_ID_TRACKTYPE:{ - guint64 track_type; - - if ((ret = gst_ebml_read_uint (ebml, &id, &track_type)) != GST_FLOW_OK) { - break; - } - - if (context->type != 0 && context->type != track_type) { - GST_WARNING_OBJECT (parse, - "More than one tracktype defined in a TrackEntry - skipping"); - break; - } else if (track_type < 1 || track_type > 254) { - GST_WARNING_OBJECT (parse, "Invalid TrackType %" G_GUINT64_FORMAT, - track_type); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackType: %" G_GUINT64_FORMAT, track_type); - - /* ok, so we're actually going to reallocate this thing */ - switch (track_type) { - case GST_MATROSKA_TRACK_TYPE_VIDEO: - gst_matroska_track_init_video_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_AUDIO: - gst_matroska_track_init_audio_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_SUBTITLE: - gst_matroska_track_init_subtitle_context (&context); - break; - case GST_MATROSKA_TRACK_TYPE_COMPLEX: - case GST_MATROSKA_TRACK_TYPE_LOGO: - case GST_MATROSKA_TRACK_TYPE_BUTTONS: - case GST_MATROSKA_TRACK_TYPE_CONTROL: - default: - GST_WARNING_OBJECT (parse, - "Unknown or unsupported TrackType %" G_GUINT64_FORMAT, - track_type); - context->type = 0; - break; - } - g_ptr_array_index (parse->src, parse->num_streams - 1) = context; - break; - } - - /* tracktype specific stuff for video */ - case GST_MATROSKA_ID_TRACKVIDEO:{ - GstMatroskaTrackVideoContext *videocontext; - - DEBUG_ELEMENT_START (parse, ebml, "TrackVideo"); - - if (!gst_matroska_track_init_video_context (&context)) { - GST_WARNING_OBJECT (parse, - "TrackVideo element in non-video track - ignoring track"); - ret = GST_FLOW_ERROR; - break; - } else if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - break; - } - videocontext = (GstMatroskaTrackVideoContext *) context; - g_ptr_array_index (parse->src, parse->num_streams - 1) = context; - - while (ret == GST_FLOW_OK && - gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* Should be one level up but some broken muxers write it here. */ - case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackDefaultDuration 0"); - break; - } - - GST_DEBUG_OBJECT (parse, - "TrackDefaultDuration: %" G_GUINT64_FORMAT, num); - context->default_duration = num; - break; - } - - /* video framerate */ - /* NOTE: This one is here only for backward compatibility. - * Use _TRACKDEFAULDURATION one level up. */ - case GST_MATROSKA_ID_VIDEOFRAMERATE:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num <= 0.0) { - GST_WARNING_OBJECT (parse, "Invalid TrackVideoFPS %lf", num); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackVideoFrameRate: %lf", num); - if (context->default_duration == 0) - context->default_duration = - gst_gdouble_to_guint64 ((gdouble) GST_SECOND * (1.0 / num)); - videocontext->default_fps = num; - break; - } - - /* width of the size to display the video at */ - case GST_MATROSKA_ID_VIDEODISPLAYWIDTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackVideoDisplayWidth 0"); - break; - } - - GST_DEBUG_OBJECT (parse, - "TrackVideoDisplayWidth: %" G_GUINT64_FORMAT, num); - videocontext->display_width = num; - break; - } - - /* height of the size to display the video at */ - case GST_MATROSKA_ID_VIDEODISPLAYHEIGHT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackVideoDisplayHeight 0"); - break; - } - - GST_DEBUG_OBJECT (parse, - "TrackVideoDisplayHeight: %" G_GUINT64_FORMAT, num); - videocontext->display_height = num; - break; - } - - /* width of the video in the file */ - case GST_MATROSKA_ID_VIDEOPIXELWIDTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackVideoPixelWidth 0"); - break; - } - - GST_DEBUG_OBJECT (parse, - "TrackVideoPixelWidth: %" G_GUINT64_FORMAT, num); - videocontext->pixel_width = num; - break; - } - - /* height of the video in the file */ - case GST_MATROSKA_ID_VIDEOPIXELHEIGHT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackVideoPixelHeight 0"); - break; - } - - GST_DEBUG_OBJECT (parse, - "TrackVideoPixelHeight: %" G_GUINT64_FORMAT, num); - videocontext->pixel_height = num; - break; - } - - /* whether the video is interlaced */ - case GST_MATROSKA_ID_VIDEOFLAGINTERLACED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_VIDEOTRACK_INTERLACED; - else - context->flags &= ~GST_MATROSKA_VIDEOTRACK_INTERLACED; - GST_DEBUG_OBJECT (parse, "TrackVideoInterlaced: %d", - (context->flags & GST_MATROSKA_VIDEOTRACK_INTERLACED) ? 1 : - 0); - break; - } - - /* aspect ratio behaviour */ - case GST_MATROSKA_ID_VIDEOASPECTRATIOTYPE:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num != GST_MATROSKA_ASPECT_RATIO_MODE_FREE && - num != GST_MATROSKA_ASPECT_RATIO_MODE_KEEP && - num != GST_MATROSKA_ASPECT_RATIO_MODE_FIXED) { - GST_WARNING_OBJECT (parse, - "Unknown TrackVideoAspectRatioType 0x%x", (guint) num); - break; - } - GST_DEBUG_OBJECT (parse, - "TrackVideoAspectRatioType: %" G_GUINT64_FORMAT, num); - videocontext->asr_mode = num; - break; - } - - /* colourspace (only matters for raw video) fourcc */ - case GST_MATROSKA_ID_VIDEOCOLOURSPACE:{ - guint8 *data; - guint64 datalen; - - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, - &datalen)) != GST_FLOW_OK) - break; - - if (datalen != 4) { - g_free (data); - GST_WARNING_OBJECT (parse, - "Invalid TrackVideoColourSpace length %" G_GUINT64_FORMAT, - datalen); - break; - } - - memcpy (&videocontext->fourcc, data, 4); - GST_DEBUG_OBJECT (parse, - "TrackVideoColourSpace: %" GST_FOURCC_FORMAT, - GST_FOURCC_ARGS (videocontext->fourcc)); - g_free (data); - break; - } - - default: - GST_WARNING_OBJECT (parse, - "Unknown TrackVideo subelement 0x%x - ignoring", id); - /* fall through */ - case GST_MATROSKA_ID_VIDEOSTEREOMODE: - case GST_MATROSKA_ID_VIDEODISPLAYUNIT: - case GST_MATROSKA_ID_VIDEOPIXELCROPBOTTOM: - case GST_MATROSKA_ID_VIDEOPIXELCROPTOP: - case GST_MATROSKA_ID_VIDEOPIXELCROPLEFT: - case GST_MATROSKA_ID_VIDEOPIXELCROPRIGHT: - case GST_MATROSKA_ID_VIDEOGAMMAVALUE: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "TrackVideo", ret); - break; - } - - /* tracktype specific stuff for audio */ - case GST_MATROSKA_ID_TRACKAUDIO:{ - GstMatroskaTrackAudioContext *audiocontext; - - DEBUG_ELEMENT_START (parse, ebml, "TrackAudio"); - - if (!gst_matroska_track_init_audio_context (&context)) { - GST_WARNING_OBJECT (parse, - "TrackAudio element in non-audio track - ignoring track"); - ret = GST_FLOW_ERROR; - break; - } - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) - break; - - audiocontext = (GstMatroskaTrackAudioContext *) context; - g_ptr_array_index (parse->src, parse->num_streams - 1) = context; - - while (ret == GST_FLOW_OK && - gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; - - switch (id) { - /* samplerate */ - case GST_MATROSKA_ID_AUDIOSAMPLINGFREQ:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - - if (num <= 0.0) { - GST_WARNING_OBJECT (parse, - "Invalid TrackAudioSamplingFrequency %lf", num); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackAudioSamplingFrequency: %lf", num); - audiocontext->samplerate = num; - break; - } - - /* bitdepth */ - case GST_MATROSKA_ID_AUDIOBITDEPTH:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackAudioBitDepth 0"); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackAudioBitDepth: %" G_GUINT64_FORMAT, - num); - audiocontext->bitdepth = num; - break; - } - - /* channels */ - case GST_MATROSKA_ID_AUDIOCHANNELS:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackAudioChannels 0"); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackAudioChannels: %" G_GUINT64_FORMAT, - num); - audiocontext->channels = num; - break; - } - - default: - GST_WARNING_OBJECT (parse, - "Unknown TrackAudio subelement 0x%x - ignoring", id); - /* fall through */ - case GST_MATROSKA_ID_AUDIOCHANNELPOSITIONS: - case GST_MATROSKA_ID_AUDIOOUTPUTSAMPLINGFREQ: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "TrackAudio", ret); - - break; - } - - /* codec identifier */ - case GST_MATROSKA_ID_CODECID:{ - gchar *text; - - if ((ret = gst_ebml_read_ascii (ebml, &id, &text)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (parse, "CodecID: %s", GST_STR_NULL (text)); - context->codec_id = text; - break; - } - - /* codec private data */ - case GST_MATROSKA_ID_CODECPRIVATE:{ - guint8 *data; - guint64 size; - - if ((ret = - gst_ebml_read_binary (ebml, &id, &data, &size)) != GST_FLOW_OK) - break; - - context->codec_priv = data; - context->codec_priv_size = size; - - GST_DEBUG_OBJECT (parse, "CodecPrivate of size %" G_GUINT64_FORMAT, - size); - break; - } - - /* name of the codec */ - case GST_MATROSKA_ID_CODECNAME:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (parse, "CodecName: %s", GST_STR_NULL (text)); - context->codec_name = text; - break; - } - - /* name of this track */ - case GST_MATROSKA_ID_TRACKNAME:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - context->name = text; - GST_DEBUG_OBJECT (parse, "TrackName: %s", GST_STR_NULL (text)); - break; - } - - /* language (matters for audio/subtitles, mostly) */ - case GST_MATROSKA_ID_TRACKLANGUAGE:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - - context->language = text; - - /* fre-ca => fre */ - if (strlen (context->language) >= 4 && context->language[3] == '-') - context->language[3] = '\0'; - - GST_DEBUG_OBJECT (parse, "TrackLanguage: %s", - GST_STR_NULL (context->language)); - break; - } - - /* whether this is actually used */ - case GST_MATROSKA_ID_TRACKFLAGENABLED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_ENABLED; - else - context->flags &= ~GST_MATROSKA_TRACK_ENABLED; - - GST_DEBUG_OBJECT (parse, "TrackEnabled: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* whether it's the default for this track type */ - case GST_MATROSKA_ID_TRACKFLAGDEFAULT:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_DEFAULT; - else - context->flags &= ~GST_MATROSKA_TRACK_DEFAULT; - - GST_DEBUG_OBJECT (parse, "TrackDefault: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* whether the track must be used during playback */ - case GST_MATROSKA_ID_TRACKFLAGFORCED:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_FORCED; - else - context->flags &= ~GST_MATROSKA_TRACK_FORCED; - - GST_DEBUG_OBJECT (parse, "TrackForced: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* lacing (like MPEG, where blocks don't end/start on frame - * boundaries) */ - case GST_MATROSKA_ID_TRACKFLAGLACING:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num) - context->flags |= GST_MATROSKA_TRACK_LACING; - else - context->flags &= ~GST_MATROSKA_TRACK_LACING; - - GST_DEBUG_OBJECT (parse, "TrackLacing: %d", - (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); - break; - } - - /* default length (in time) of one data block in this track */ - case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; - - - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid TrackDefaultDuration 0"); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackDefaultDuration: %" G_GUINT64_FORMAT, - num); - context->default_duration = num; - break; - } - - case GST_MATROSKA_ID_CONTENTENCODINGS:{ - ret = gst_matroska_parse_read_track_encodings (parse, ebml, context); - break; - } - - case GST_MATROSKA_ID_TRACKTIMECODESCALE:{ - gdouble num; - - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) - break; - - if (num <= 0.0) { - GST_WARNING_OBJECT (parse, "Invalid TrackTimeCodeScale %lf", num); - break; - } - - GST_DEBUG_OBJECT (parse, "TrackTimeCodeScale: %lf", num); - context->timecodescale = num; - break; - } - - default: - GST_WARNING ("Unknown TrackEntry subelement 0x%x - ignoring", id); - /* pass-through */ - - /* we ignore these because they're nothing useful (i.e. crap) - * or simply not implemented yet. */ - case GST_MATROSKA_ID_TRACKMINCACHE: - case GST_MATROSKA_ID_TRACKMAXCACHE: - case GST_MATROSKA_ID_MAXBLOCKADDITIONID: - case GST_MATROSKA_ID_TRACKATTACHMENTLINK: - case GST_MATROSKA_ID_TRACKOVERLAY: - case GST_MATROSKA_ID_TRACKTRANSLATE: - case GST_MATROSKA_ID_TRACKOFFSET: - case GST_MATROSKA_ID_CODECSETTINGS: - case GST_MATROSKA_ID_CODECINFOURL: - case GST_MATROSKA_ID_CODECDOWNLOADURL: - case GST_MATROSKA_ID_CODECDECODEALL: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "TrackEntry", ret); - - /* Decode codec private data if necessary */ - if (context->encodings && context->encodings->len > 0 && context->codec_priv - && context->codec_priv_size > 0) { - if (!gst_matroska_decode_data (context->encodings, - &context->codec_priv, &context->codec_priv_size, - GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA, TRUE)) { - GST_WARNING_OBJECT (parse, "Decoding codec private data failed"); - ret = GST_FLOW_ERROR; - } - } - - if (context->type == 0 || context->codec_id == NULL || (ret != GST_FLOW_OK - && ret != GST_FLOW_UNEXPECTED)) { - if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) - GST_WARNING_OBJECT (ebml, "Unknown stream/codec in track entry header"); - - parse->num_streams--; - g_ptr_array_remove_index (parse->src, parse->num_streams); - g_assert (parse->src->len == parse->num_streams); - if (context) { - gst_matroska_track_free (context); - } - - return ret; - } - - if ((context->language == NULL || *context->language == '\0') && - (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO || - context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)) { - GST_LOG ("stream %d: language=eng (assuming default)", context->index); - context->language = g_strdup ("eng"); - } - - - /* tadaah! */ - return ret; -} - -static const GstQueryType * -gst_matroska_parse_get_src_query_types (GstPad * pad) -{ - static const GstQueryType query_types[] = { - GST_QUERY_POSITION, - GST_QUERY_DURATION, - GST_QUERY_SEEKING, - 0 - }; - - return query_types; -} - -static gboolean -gst_matroska_parse_query (GstMatroskaParse * parse, GstPad * pad, - GstQuery * query) -{ - gboolean res = FALSE; - GstMatroskaTrackContext *context = NULL; - - if (pad) { - context = gst_pad_get_element_private (pad); - } - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_POSITION: - { - GstFormat format; - - gst_query_parse_position (query, &format, NULL); - - if (format == GST_FORMAT_TIME) { - GST_OBJECT_LOCK (parse); - if (context) - gst_query_set_position (query, GST_FORMAT_TIME, context->pos); - else - gst_query_set_position (query, GST_FORMAT_TIME, - parse->segment.last_stop); - GST_OBJECT_UNLOCK (parse); - } else if (format == GST_FORMAT_DEFAULT && context - && context->default_duration) { - GST_OBJECT_LOCK (parse); - gst_query_set_position (query, GST_FORMAT_DEFAULT, - context->pos / context->default_duration); - GST_OBJECT_UNLOCK (parse); - } else { - GST_DEBUG_OBJECT (parse, - "only position query in TIME and DEFAULT format is supported"); - } - - res = TRUE; - break; - } - case GST_QUERY_DURATION: - { - GstFormat format; - - gst_query_parse_duration (query, &format, NULL); - - if (format == GST_FORMAT_TIME) { - GST_OBJECT_LOCK (parse); - gst_query_set_duration (query, GST_FORMAT_TIME, - parse->segment.duration); - GST_OBJECT_UNLOCK (parse); - } else if (format == GST_FORMAT_DEFAULT && context - && context->default_duration) { - GST_OBJECT_LOCK (parse); - gst_query_set_duration (query, GST_FORMAT_DEFAULT, - parse->segment.duration / context->default_duration); - GST_OBJECT_UNLOCK (parse); - } else { - GST_DEBUG_OBJECT (parse, - "only duration query in TIME and DEFAULT format is supported"); - } - - res = TRUE; - break; - } - - case GST_QUERY_SEEKING: - { - GstFormat fmt; - - gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); - if (fmt == GST_FORMAT_TIME) { - gboolean seekable; - - /* assuming we'll be able to get an index ... */ - seekable = parse->seekable; - - gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, - 0, parse->segment.duration); - res = TRUE; - } - break; - } - default: - res = gst_pad_query_default (pad, query); - break; - } - - return res; -} - -static gboolean -gst_matroska_parse_element_query (GstElement * element, GstQuery * query) -{ - return gst_matroska_parse_query (GST_MATROSKA_PARSE (element), NULL, query); -} - -static gboolean -gst_matroska_parse_handle_src_query (GstPad * pad, GstQuery * query) -{ - gboolean ret; - GstMatroskaParse *parse = GST_MATROSKA_PARSE (gst_pad_get_parent (pad)); - - ret = gst_matroska_parse_query (parse, pad, query); - - gst_object_unref (parse); - - return ret; -} - -static gint -gst_matroska_index_seek_find (GstMatroskaIndex * i1, GstClockTime * time, - gpointer user_data) -{ - if (i1->time < *time) - return -1; - else if (i1->time > *time) - return 1; - else - return 0; -} - -static GstMatroskaIndex * -gst_matroskaparse_do_index_seek (GstMatroskaParse * parse, - GstMatroskaTrackContext * track, gint64 seek_pos, GArray ** _index, - gint * _entry_index) -{ - GstMatroskaIndex *entry = NULL; - GArray *index; - - if (!parse->index || !parse->index->len) - return NULL; - - /* find entry just before or at the requested position */ - if (track && track->index_table) - index = track->index_table; - else - index = parse->index; - - entry = - gst_util_array_binary_search (index->data, index->len, - sizeof (GstMatroskaIndex), - (GCompareDataFunc) gst_matroska_index_seek_find, GST_SEARCH_MODE_BEFORE, - &seek_pos, NULL); - - if (entry == NULL) - entry = &g_array_index (index, GstMatroskaIndex, 0); - - if (_index) - *_index = index; - if (_entry_index) - *_entry_index = entry - (GstMatroskaIndex *) index->data; - - return entry; -} - -/* takes ownership of taglist */ -static void -gst_matroska_parse_found_global_tag (GstMatroskaParse * parse, - GstTagList * taglist) -{ - if (parse->global_tags) { - /* nothing sent yet, add to cache */ - gst_tag_list_insert (parse->global_tags, taglist, GST_TAG_MERGE_APPEND); - gst_tag_list_free (taglist); - } else { - /* hm, already sent, no need to cache and wait anymore */ - GST_DEBUG_OBJECT (parse, "Sending late global tags %" GST_PTR_FORMAT, - taglist); - gst_element_found_tags (GST_ELEMENT (parse), taglist); - } -} - -/* returns FALSE if there are no pads to deliver event to, - * otherwise TRUE (whatever the outcome of event sending), - * takes ownership of the passed event! */ -static gboolean -gst_matroska_parse_send_event (GstMatroskaParse * parse, GstEvent * event) -{ - gboolean ret = FALSE; - - g_return_val_if_fail (event != NULL, FALSE); - - GST_DEBUG_OBJECT (parse, "Sending event of type %s to all source pads", - GST_EVENT_TYPE_NAME (event)); - - gst_pad_push_event (parse->srcpad, event); - - return ret; -} - -static gboolean -gst_matroska_parse_element_send_event (GstElement * element, GstEvent * event) -{ - GstMatroskaParse *parse = GST_MATROSKA_PARSE (element); - gboolean res; - - g_return_val_if_fail (event != NULL, FALSE); - - if (GST_EVENT_TYPE (event) == GST_EVENT_SEEK) { - res = gst_matroska_parse_handle_seek_event (parse, NULL, event); - } else { - GST_WARNING_OBJECT (parse, "Unhandled event of type %s", - GST_EVENT_TYPE_NAME (event)); - res = FALSE; - } - gst_event_unref (event); - return res; -} - -/* determine track to seek in */ -static GstMatroskaTrackContext * -gst_matroska_parse_get_seek_track (GstMatroskaParse * parse, - GstMatroskaTrackContext * track) -{ - gint i; - - if (track && track->type == GST_MATROSKA_TRACK_TYPE_VIDEO) - return track; - - for (i = 0; i < parse->src->len; i++) { - GstMatroskaTrackContext *stream; - - stream = g_ptr_array_index (parse->src, i); - if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && stream->index_table) - track = stream; - } - - return track; -} - -static void -gst_matroska_parse_reset_streams (GstMatroskaParse * parse, GstClockTime time, - gboolean full) -{ - gint i; - - GST_DEBUG_OBJECT (parse, "resetting stream state"); - - g_assert (parse->src->len == parse->num_streams); - for (i = 0; i < parse->src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (parse->src, i); - context->pos = time; - context->set_discont = TRUE; - context->eos = FALSE; - context->from_time = GST_CLOCK_TIME_NONE; - if (full) - context->last_flow = GST_FLOW_OK; - if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { - GstMatroskaTrackVideoContext *videocontext = - (GstMatroskaTrackVideoContext *) context; - /* parse object lock held by caller */ - videocontext->earliest_time = GST_CLOCK_TIME_NONE; - } - } -} - -/* searches for a cluster start from @pos, - * return GST_FLOW_OK and cluster position in @pos if found */ -static GstFlowReturn -gst_matroska_parse_search_cluster (GstMatroskaParse * parse, gint64 * pos) -{ - gint64 newpos = *pos; - gint64 orig_offset; - GstFlowReturn ret = GST_FLOW_OK; - const guint chunk = 64 * 1024; - GstBuffer *buf = NULL; - guint64 length; - guint32 id; - guint needed; - - orig_offset = parse->offset; - - /* read in at newpos and scan for ebml cluster id */ - while (1) { - GstByteReader reader; - gint cluster_pos; - - ret = gst_pad_pull_range (parse->sinkpad, newpos, chunk, &buf); - if (ret != GST_FLOW_OK) - break; - GST_DEBUG_OBJECT (parse, "read buffer size %d at offset %" G_GINT64_FORMAT, - GST_BUFFER_SIZE (buf), newpos); - gst_byte_reader_init_from_buffer (&reader, buf); - cluster_pos = 0; - resume: - cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, - GST_MATROSKA_ID_CLUSTER, cluster_pos, - GST_BUFFER_SIZE (buf) - cluster_pos); - if (cluster_pos >= 0) { - newpos += cluster_pos; - GST_DEBUG_OBJECT (parse, - "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos); - /* extra checks whether we really sync'ed to a cluster: - * - either it is the first and only cluster - * - either there is a cluster after this one - * - either cluster length is undefined - */ - /* ok if first cluster (there may not a subsequent one) */ - if (newpos == parse->first_cluster_offset) { - GST_DEBUG_OBJECT (parse, "cluster is first cluster -> OK"); - break; - } - parse->offset = newpos; - ret = - gst_matroska_parse_peek_id_length_pull (parse, &id, &length, &needed); - if (ret != GST_FLOW_OK) - goto resume; - g_assert (id == GST_MATROSKA_ID_CLUSTER); - GST_DEBUG_OBJECT (parse, "cluster size %" G_GUINT64_FORMAT ", prefix %d", - length, needed); - /* ok if undefined length or first cluster */ - if (length == G_MAXUINT64) { - GST_DEBUG_OBJECT (parse, "cluster has undefined length -> OK"); - break; - } - /* skip cluster */ - parse->offset += length + needed; - ret = - gst_matroska_parse_peek_id_length_pull (parse, &id, &length, &needed); - if (ret != GST_FLOW_OK) - goto resume; - GST_DEBUG_OBJECT (parse, "next element is %scluster", - id == GST_MATROSKA_ID_CLUSTER ? "" : "not "); - if (id == GST_MATROSKA_ID_CLUSTER) - break; - /* not ok, resume */ - goto resume; - } else { - /* partial cluster id may have been in tail of buffer */ - newpos += MAX (GST_BUFFER_SIZE (buf), 4) - 3; - gst_buffer_unref (buf); - buf = NULL; - } - } - - if (buf) { - gst_buffer_unref (buf); - buf = NULL; - } - - parse->offset = orig_offset; - *pos = newpos; - return ret; -} - - -static gboolean -gst_matroska_parse_handle_seek_event (GstMatroskaParse * parse, - GstPad * pad, GstEvent * event) -{ - GstMatroskaIndex *entry = NULL; - GstSeekFlags flags; - GstSeekType cur_type, stop_type; - GstFormat format; - gdouble rate; - gint64 cur, stop; - GstMatroskaTrackContext *track = NULL; - GstSegment seeksegment = { 0, }; - gboolean update; - - if (pad) - track = gst_pad_get_element_private (pad); - - track = gst_matroska_parse_get_seek_track (parse, track); - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, - &stop_type, &stop); - - /* we can only seek on time */ - if (format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (parse, "Can only seek on TIME"); - return FALSE; - } - - /* copy segment, we need this because we still need the old - * segment when we close the current segment. */ - memcpy (&seeksegment, &parse->segment, sizeof (GstSegment)); - - if (event) { - GST_DEBUG_OBJECT (parse, "configuring seek"); - gst_segment_set_seek (&seeksegment, rate, format, flags, - cur_type, cur, stop_type, stop, &update); - } - - GST_DEBUG_OBJECT (parse, "New segment %" GST_SEGMENT_FORMAT, &seeksegment); - - /* check sanity before we start flushing and all that */ - GST_OBJECT_LOCK (parse); - if ((entry = gst_matroskaparse_do_index_seek (parse, track, - seeksegment.last_stop, &parse->seek_index, &parse->seek_entry)) == - NULL) { - /* pull mode without index can scan later on */ - GST_DEBUG_OBJECT (parse, "No matching seek entry in index"); - GST_OBJECT_UNLOCK (parse); - return FALSE; - } - GST_DEBUG_OBJECT (parse, "Seek position looks sane"); - GST_OBJECT_UNLOCK (parse); - - /* need to seek to cluster start to pick up cluster time */ - /* upstream takes care of flushing and all that - * ... and newsegment event handling takes care of the rest */ - return perform_seek_to_offset (parse, entry->pos + parse->ebml_segment_start); -} - -/* - * Handle whether we can perform the seek event or if we have to let the chain - * function handle seeks to build the seek indexes first. - */ -static gboolean -gst_matroska_parse_handle_seek_push (GstMatroskaParse * parse, GstPad * pad, - GstEvent * event) -{ - GstSeekFlags flags; - GstSeekType cur_type, stop_type; - GstFormat format; - gdouble rate; - gint64 cur, stop; - - gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, - &stop_type, &stop); - - /* sanity checks */ - - /* we can only seek on time */ - if (format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (parse, "Can only seek on TIME"); - return FALSE; - } - - if (stop_type != GST_SEEK_TYPE_NONE && stop != GST_CLOCK_TIME_NONE) { - GST_DEBUG_OBJECT (parse, "Seek end-time not supported in streaming mode"); - return FALSE; - } - - if (!(flags & GST_SEEK_FLAG_FLUSH)) { - GST_DEBUG_OBJECT (parse, - "Non-flushing seek not supported in streaming mode"); - return FALSE; - } - - if (flags & GST_SEEK_FLAG_SEGMENT) { - GST_DEBUG_OBJECT (parse, "Segment seek not supported in streaming mode"); - return FALSE; - } - - /* check for having parsed index already */ - if (!parse->index_parsed) { - gboolean building_index; - guint64 offset = 0; - - if (!parse->index_offset) { - GST_DEBUG_OBJECT (parse, "no index (location); no seek in push mode"); - return FALSE; - } - - GST_OBJECT_LOCK (parse); - /* handle the seek event in the chain function */ - parse->state = GST_MATROSKA_PARSE_STATE_SEEK; - /* no more seek can be issued until state reset to _DATA */ - - /* copy the event */ - if (parse->seek_event) - gst_event_unref (parse->seek_event); - parse->seek_event = gst_event_ref (event); - - /* set the building_index flag so that only one thread can setup the - * structures for index seeking. */ - building_index = parse->building_index; - if (!building_index) { - parse->building_index = TRUE; - offset = parse->index_offset; - } - GST_OBJECT_UNLOCK (parse); - - if (!building_index) { - /* seek to the first subindex or legacy index */ - GST_INFO_OBJECT (parse, "Seeking to Cues at %" G_GUINT64_FORMAT, offset); - return perform_seek_to_offset (parse, offset); - } - - /* well, we are handling it already */ - return TRUE; - } - - /* delegate to tweaked regular seek */ - return gst_matroska_parse_handle_seek_event (parse, pad, event); -} - -static gboolean -gst_matroska_parse_handle_src_event (GstPad * pad, GstEvent * event) -{ - GstMatroskaParse *parse = GST_MATROSKA_PARSE (gst_pad_get_parent (pad)); - gboolean res = TRUE; - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_SEEK: - /* no seeking until we are (safely) ready */ - if (parse->state != GST_MATROSKA_PARSE_STATE_DATA) { - GST_DEBUG_OBJECT (parse, "not ready for seeking yet"); - return FALSE; - } - res = gst_matroska_parse_handle_seek_push (parse, pad, event); - gst_event_unref (event); - break; - - case GST_EVENT_QOS: - { - GstMatroskaTrackContext *context = gst_pad_get_element_private (pad); - if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { - GstMatroskaTrackVideoContext *videocontext = - (GstMatroskaTrackVideoContext *) context; - gdouble proportion; - GstClockTimeDiff diff; - GstClockTime timestamp; - - gst_event_parse_qos (event, &proportion, &diff, ×tamp); - - GST_OBJECT_LOCK (parse); - videocontext->earliest_time = timestamp + diff; - GST_OBJECT_UNLOCK (parse); - } - res = TRUE; - gst_event_unref (event); - break; - } - - /* events we don't need to handle */ - case GST_EVENT_NAVIGATION: - gst_event_unref (event); - res = FALSE; - break; - - case GST_EVENT_LATENCY: - default: - res = gst_pad_push_event (parse->sinkpad, event); - break; - } - - gst_object_unref (parse); - - return res; -} - - -/* skip unknown or alike element */ -static GstFlowReturn -gst_matroska_parse_parse_skip (GstMatroskaParse * parse, GstEbmlRead * ebml, - const gchar * parent_name, guint id) -{ - if (id == GST_EBML_ID_VOID) { - GST_DEBUG_OBJECT (parse, "Skipping EBML Void element"); - } else if (id == GST_EBML_ID_CRC32) { - GST_DEBUG_OBJECT (parse, "Skipping EBML CRC32 element"); - } else { - GST_WARNING_OBJECT (parse, - "Unknown %s subelement 0x%x - ignoring", parent_name, id); - } - - return gst_ebml_read_skip (ebml); -} - -static GstFlowReturn -gst_matroska_parse_parse_header (GstMatroskaParse * parse, GstEbmlRead * ebml) -{ - GstFlowReturn ret; - gchar *doctype; - guint version; - guint32 id; - - /* this function is the first to be called */ - - /* default init */ - doctype = NULL; - version = 1; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - ret = gst_ebml_peek_id (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackVideoPixelWidth 0"); + break; + } - GST_DEBUG_OBJECT (parse, "id: %08x", id); + GST_DEBUG_OBJECT (parse, + "TrackVideoPixelWidth: %" G_GUINT64_FORMAT, num); + videocontext->pixel_width = num; + break; + } - if (id != GST_EBML_ID_HEADER) { - GST_ERROR_OBJECT (parse, "Failed to read header"); - goto exit; - } + /* height of the video in the file */ + case GST_MATROSKA_ID_VIDEOPIXELHEIGHT:{ + guint64 num; - ret = gst_ebml_read_master (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - while (gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - ret = gst_ebml_peek_id (ebml, &id); - if (ret != GST_FLOW_OK) - return ret; + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackVideoPixelHeight 0"); + break; + } - switch (id) { - /* is our read version uptodate? */ - case GST_EBML_ID_EBMLREADVERSION:{ - guint64 num; + GST_DEBUG_OBJECT (parse, + "TrackVideoPixelHeight: %" G_GUINT64_FORMAT, num); + videocontext->pixel_height = num; + break; + } - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num != GST_EBML_VERSION) { - GST_ERROR_OBJECT (ebml, "Unsupported EBML version %" G_GUINT64_FORMAT, - num); - return GST_FLOW_ERROR; - } + /* whether the video is interlaced */ + case GST_MATROSKA_ID_VIDEOFLAGINTERLACED:{ + guint64 num; - GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); - break; - } + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - /* we only handle 8 byte lengths at max */ - case GST_EBML_ID_EBMLMAXSIZELENGTH:{ - guint64 num; + if (num) + context->flags |= GST_MATROSKA_VIDEOTRACK_INTERLACED; + else + context->flags &= ~GST_MATROSKA_VIDEOTRACK_INTERLACED; + GST_DEBUG_OBJECT (parse, "TrackVideoInterlaced: %d", + (context->flags & GST_MATROSKA_VIDEOTRACK_INTERLACED) ? 1 : + 0); + break; + } - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num > sizeof (guint64)) { - GST_ERROR_OBJECT (ebml, - "Unsupported EBML maximum size %" G_GUINT64_FORMAT, num); - return GST_FLOW_ERROR; - } - GST_DEBUG_OBJECT (ebml, "EbmlMaxSizeLength: %" G_GUINT64_FORMAT, num); - break; - } + /* aspect ratio behaviour */ + case GST_MATROSKA_ID_VIDEOASPECTRATIOTYPE:{ + guint64 num; - /* we handle 4 byte IDs at max */ - case GST_EBML_ID_EBMLMAXIDLENGTH:{ - guint64 num; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - if (num > sizeof (guint32)) { - GST_ERROR_OBJECT (ebml, - "Unsupported EBML maximum ID %" G_GUINT64_FORMAT, num); - return GST_FLOW_ERROR; - } - GST_DEBUG_OBJECT (ebml, "EbmlMaxIdLength: %" G_GUINT64_FORMAT, num); - break; - } + if (num != GST_MATROSKA_ASPECT_RATIO_MODE_FREE && + num != GST_MATROSKA_ASPECT_RATIO_MODE_KEEP && + num != GST_MATROSKA_ASPECT_RATIO_MODE_FIXED) { + GST_WARNING_OBJECT (parse, + "Unknown TrackVideoAspectRatioType 0x%x", (guint) num); + break; + } + GST_DEBUG_OBJECT (parse, + "TrackVideoAspectRatioType: %" G_GUINT64_FORMAT, num); + videocontext->asr_mode = num; + break; + } - case GST_EBML_ID_DOCTYPE:{ - gchar *text; + /* colourspace (only matters for raw video) fourcc */ + case GST_MATROSKA_ID_VIDEOCOLOURSPACE:{ + guint8 *data; + guint64 datalen; - ret = gst_ebml_read_ascii (ebml, &id, &text); - if (ret != GST_FLOW_OK) - return ret; + if ((ret = + gst_ebml_read_binary (ebml, &id, &data, + &datalen)) != GST_FLOW_OK) + break; - GST_DEBUG_OBJECT (ebml, "EbmlDocType: %s", GST_STR_NULL (text)); + if (datalen != 4) { + g_free (data); + GST_WARNING_OBJECT (parse, + "Invalid TrackVideoColourSpace length %" G_GUINT64_FORMAT, + datalen); + break; + } - if (doctype) - g_free (doctype); - doctype = text; - break; - } + memcpy (&videocontext->fourcc, data, 4); + GST_DEBUG_OBJECT (parse, + "TrackVideoColourSpace: %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (videocontext->fourcc)); + g_free (data); + break; + } - case GST_EBML_ID_DOCTYPEREADVERSION:{ - guint64 num; + default: + GST_WARNING_OBJECT (parse, + "Unknown TrackVideo subelement 0x%x - ignoring", id); + /* fall through */ + case GST_MATROSKA_ID_VIDEOSTEREOMODE: + case GST_MATROSKA_ID_VIDEODISPLAYUNIT: + case GST_MATROSKA_ID_VIDEOPIXELCROPBOTTOM: + case GST_MATROSKA_ID_VIDEOPIXELCROPTOP: + case GST_MATROSKA_ID_VIDEOPIXELCROPLEFT: + case GST_MATROSKA_ID_VIDEOPIXELCROPRIGHT: + case GST_MATROSKA_ID_VIDEOGAMMAVALUE: + ret = gst_ebml_read_skip (ebml); + break; + } + } - ret = gst_ebml_read_uint (ebml, &id, &num); - if (ret != GST_FLOW_OK) - return ret; - version = num; - GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); + DEBUG_ELEMENT_STOP (parse, ebml, "TrackVideo", ret); break; } - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "EBML header", id); - if (ret != GST_FLOW_OK) - return ret; - break; - - /* we ignore these two, as they don't tell us anything we care about */ - case GST_EBML_ID_EBMLVERSION: - case GST_EBML_ID_DOCTYPEVERSION: - ret = gst_ebml_read_skip (ebml); - if (ret != GST_FLOW_OK) - return ret; - break; - } - } + /* tracktype specific stuff for audio */ + case GST_MATROSKA_ID_TRACKAUDIO:{ + GstMatroskaTrackAudioContext *audiocontext; -exit: + DEBUG_ELEMENT_START (parse, ebml, "TrackAudio"); - if ((doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_MATROSKA)) || - (doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_WEBM)) || - (doctype == NULL)) { - if (version <= 2) { - if (doctype) { - GST_INFO_OBJECT (parse, "Input is %s version %d", doctype, version); - } else { - GST_WARNING_OBJECT (parse, "Input is EBML without doctype, assuming " - "matroska (version %d)", version); - } - ret = GST_FLOW_OK; - } else { - GST_ELEMENT_ERROR (parse, STREAM, DEMUX, (NULL), - ("Parser version (2) is too old to read %s version %d", - GST_STR_NULL (doctype), version)); - ret = GST_FLOW_ERROR; - } - g_free (doctype); - } else { - GST_ELEMENT_ERROR (parse, STREAM, WRONG_TYPE, (NULL), - ("Input is not a matroska stream (doctype=%s)", doctype)); - ret = GST_FLOW_ERROR; - g_free (doctype); - } + if (!gst_matroska_track_init_audio_context (&context)) { + GST_WARNING_OBJECT (parse, + "TrackAudio element in non-audio track - ignoring track"); + ret = GST_FLOW_ERROR; + break; + } - return ret; -} + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) + break; -static GstFlowReturn -gst_matroska_parse_parse_tracks (GstMatroskaParse * parse, GstEbmlRead * ebml) -{ - GstFlowReturn ret = GST_FLOW_OK; - guint32 id; + audiocontext = (GstMatroskaTrackAudioContext *) context; + g_ptr_array_index (parse->common.src, parse->common.num_streams - 1) + = context; - DEBUG_ELEMENT_START (parse, ebml, "Tracks"); + while (ret == GST_FLOW_OK && + gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Tracks", ret); - return ret; - } + switch (id) { + /* samplerate */ + case GST_MATROSKA_ID_AUDIOSAMPLINGFREQ:{ + gdouble num; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; - switch (id) { - /* one track within the "all-tracks" header */ - case GST_MATROSKA_ID_TRACKENTRY: - ret = gst_matroska_parse_add_stream (parse, ebml); - break; - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "Track", id); - break; - } - } - DEBUG_ELEMENT_STOP (parse, ebml, "Tracks", ret); + if (num <= 0.0) { + GST_WARNING_OBJECT (parse, + "Invalid TrackAudioSamplingFrequency %lf", num); + break; + } - parse->tracks_parsed = TRUE; + GST_DEBUG_OBJECT (parse, "TrackAudioSamplingFrequency: %lf", num); + audiocontext->samplerate = num; + break; + } - return ret; -} + /* bitdepth */ + case GST_MATROSKA_ID_AUDIOBITDEPTH:{ + guint64 num; -static GstFlowReturn -gst_matroska_parse_parse_index_cuetrack (GstMatroskaParse * parse, - GstEbmlRead * ebml, guint * nentries) -{ - guint32 id; - GstFlowReturn ret; - GstMatroskaIndex idx; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - idx.pos = (guint64) - 1; - idx.track = 0; - idx.time = GST_CLOCK_TIME_NONE; - idx.block = 1; + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackAudioBitDepth 0"); + break; + } - DEBUG_ELEMENT_START (parse, ebml, "CueTrackPositions"); + GST_DEBUG_OBJECT (parse, "TrackAudioBitDepth: %" G_GUINT64_FORMAT, + num); + audiocontext->bitdepth = num; + break; + } - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "CueTrackPositions", ret); - return ret; - } + /* channels */ + case GST_MATROSKA_ID_AUDIOCHANNELS:{ + guint64 num; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - switch (id) { - /* track number */ - case GST_MATROSKA_ID_CUETRACK: - { - guint64 num; + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackAudioChannels 0"); + break; + } - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + GST_DEBUG_OBJECT (parse, "TrackAudioChannels: %" G_GUINT64_FORMAT, + num); + audiocontext->channels = num; + break; + } - if (num == 0) { - idx.track = 0; - GST_WARNING_OBJECT (parse, "Invalid CueTrack 0"); - break; + default: + GST_WARNING_OBJECT (parse, + "Unknown TrackAudio subelement 0x%x - ignoring", id); + /* fall through */ + case GST_MATROSKA_ID_AUDIOCHANNELPOSITIONS: + case GST_MATROSKA_ID_AUDIOOUTPUTSAMPLINGFREQ: + ret = gst_ebml_read_skip (ebml); + break; + } } - GST_DEBUG_OBJECT (parse, "CueTrack: %" G_GUINT64_FORMAT, num); - idx.track = num; + DEBUG_ELEMENT_STOP (parse, ebml, "TrackAudio", ret); + break; } - /* position in file */ - case GST_MATROSKA_ID_CUECLUSTERPOSITION: - { - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + /* codec identifier */ + case GST_MATROSKA_ID_CODECID:{ + gchar *text; - if (num > G_MAXINT64) { - GST_WARNING_OBJECT (parse, "CueClusterPosition %" G_GUINT64_FORMAT - " too large", num); + if ((ret = gst_ebml_read_ascii (ebml, &id, &text)) != GST_FLOW_OK) break; - } - idx.pos = num; + GST_DEBUG_OBJECT (parse, "CodecID: %s", GST_STR_NULL (text)); + context->codec_id = text; break; } - /* number of block in the cluster */ - case GST_MATROSKA_ID_CUEBLOCKNUMBER: - { - guint64 num; - - if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) - break; + /* codec private data */ + case GST_MATROSKA_ID_CODECPRIVATE:{ + guint8 *data; + guint64 size; - if (num == 0) { - GST_WARNING_OBJECT (parse, "Invalid CueBlockNumber 0"); + if ((ret = + gst_ebml_read_binary (ebml, &id, &data, &size)) != GST_FLOW_OK) break; - } - GST_DEBUG_OBJECT (parse, "CueBlockNumber: %" G_GUINT64_FORMAT, num); - idx.block = num; + context->codec_priv = data; + context->codec_priv_size = size; - /* mild sanity check, disregard strange cases ... */ - if (idx.block > G_MAXUINT16) { - GST_DEBUG_OBJECT (parse, "... looks suspicious, ignoring"); - idx.block = 1; - } + GST_DEBUG_OBJECT (parse, "CodecPrivate of size %" G_GUINT64_FORMAT, + size); break; } - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "CueTrackPositions", - id); - break; - - case GST_MATROSKA_ID_CUECODECSTATE: - case GST_MATROSKA_ID_CUEREFERENCE: - ret = gst_ebml_read_skip (ebml); - break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "CueTrackPositions", ret); - - if ((ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) - && idx.pos != (guint64) - 1 && idx.track > 0) { - g_array_append_val (parse->index, idx); - (*nentries)++; - } else if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) { - GST_DEBUG_OBJECT (parse, "CueTrackPositions without valid content"); - } - - return ret; -} - -static GstFlowReturn -gst_matroska_parse_parse_index_pointentry (GstMatroskaParse * parse, - GstEbmlRead * ebml) -{ - guint32 id; - GstFlowReturn ret; - GstClockTime time = GST_CLOCK_TIME_NONE; - guint nentries = 0; - - DEBUG_ELEMENT_START (parse, ebml, "CuePoint"); - - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "CuePoint", ret); - return ret; - } - - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + /* name of the codec */ + case GST_MATROSKA_ID_CODECNAME:{ + gchar *text; - switch (id) { - /* one single index entry ('point') */ - case GST_MATROSKA_ID_CUETIME: - { - if ((ret = gst_ebml_read_uint (ebml, &id, &time)) != GST_FLOW_OK) + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) break; - GST_DEBUG_OBJECT (parse, "CueTime: %" G_GUINT64_FORMAT, time); - time = time * parse->time_scale; + GST_DEBUG_OBJECT (parse, "CodecName: %s", GST_STR_NULL (text)); + context->codec_name = text; break; } - /* position in the file + track to which it belongs */ - case GST_MATROSKA_ID_CUETRACKPOSITIONS: - { - if ((ret = - gst_matroska_parse_parse_index_cuetrack (parse, ebml, - &nentries)) != GST_FLOW_OK) + /* name of this track */ + case GST_MATROSKA_ID_TRACKNAME:{ + gchar *text; + + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) break; - break; - } - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "CuePoint", id); + context->name = text; + GST_DEBUG_OBJECT (parse, "TrackName: %s", GST_STR_NULL (text)); break; - } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "CuePoint", ret); - - if (nentries > 0) { - if (time == GST_CLOCK_TIME_NONE) { - GST_WARNING_OBJECT (parse, "CuePoint without valid time"); - g_array_remove_range (parse->index, parse->index->len - nentries, - nentries); - } else { - gint i; - - for (i = parse->index->len - nentries; i < parse->index->len; i++) { - GstMatroskaIndex *idx = - &g_array_index (parse->index, GstMatroskaIndex, i); - - idx->time = time; - GST_DEBUG_OBJECT (parse, "Index entry: pos=%" G_GUINT64_FORMAT - ", time=%" GST_TIME_FORMAT ", track=%u, block=%u", idx->pos, - GST_TIME_ARGS (idx->time), (guint) idx->track, (guint) idx->block); } - } - } else { - GST_DEBUG_OBJECT (parse, "Empty CuePoint"); - } - - return ret; -} - -static gint -gst_matroska_index_compare (GstMatroskaIndex * i1, GstMatroskaIndex * i2) -{ - if (i1->time < i2->time) - return -1; - else if (i1->time > i2->time) - return 1; - else if (i1->block < i2->block) - return -1; - else if (i1->block > i2->block) - return 1; - else - return 0; -} - -static GstFlowReturn -gst_matroska_parse_parse_index (GstMatroskaParse * parse, GstEbmlRead * ebml) -{ - guint32 id; - GstFlowReturn ret = GST_FLOW_OK; - guint i; - if (parse->index) - g_array_free (parse->index, TRUE); - parse->index = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); + /* language (matters for audio/subtitles, mostly) */ + case GST_MATROSKA_ID_TRACKLANGUAGE:{ + gchar *text; - DEBUG_ELEMENT_START (parse, ebml, "Cues"); + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Cues", ret); - return ret; - } - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + context->language = text; - switch (id) { - /* one single index entry ('point') */ - case GST_MATROSKA_ID_POINTENTRY: - ret = gst_matroska_parse_parse_index_pointentry (parse, ebml); - break; + /* fre-ca => fre */ + if (strlen (context->language) >= 4 && context->language[3] == '-') + context->language[3] = '\0'; - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "Cues", id); + GST_DEBUG_OBJECT (parse, "TrackLanguage: %s", + GST_STR_NULL (context->language)); break; - } - } - DEBUG_ELEMENT_STOP (parse, ebml, "Cues", ret); - - /* Sort index by time, smallest time first, for easier searching */ - g_array_sort (parse->index, (GCompareFunc) gst_matroska_index_compare); - - /* Now sort the track specific index entries into their own arrays */ - for (i = 0; i < parse->index->len; i++) { - GstMatroskaIndex *idx = &g_array_index (parse->index, GstMatroskaIndex, i); - gint track_num; - GstMatroskaTrackContext *ctx; - - if (parse->element_index) { - gint writer_id; - - if (idx->track != 0 && - (track_num = - gst_matroska_parse_stream_from_num (parse, idx->track)) != -1) { - ctx = g_ptr_array_index (parse->src, track_num); - - if (ctx->index_writer_id == -1) - gst_index_get_writer_id (parse->element_index, GST_OBJECT (ctx->pad), - &ctx->index_writer_id); - writer_id = ctx->index_writer_id; - } else { - if (parse->element_index_writer_id == -1) - gst_index_get_writer_id (parse->element_index, GST_OBJECT (parse), - &parse->element_index_writer_id); - writer_id = parse->element_index_writer_id; } - GST_LOG_OBJECT (parse, "adding association %" GST_TIME_FORMAT "-> %" - G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (idx->time), - idx->pos, writer_id); - gst_index_add_association (parse->element_index, writer_id, - GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, idx->time, - GST_FORMAT_BYTES, idx->pos + parse->ebml_segment_start, NULL); - } - - if (idx->track == 0) - continue; + /* whether this is actually used */ + case GST_MATROSKA_ID_TRACKFLAGENABLED:{ + guint64 num; - track_num = gst_matroska_parse_stream_from_num (parse, idx->track); - if (track_num == -1) - continue; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - ctx = g_ptr_array_index (parse->src, track_num); + if (num) + context->flags |= GST_MATROSKA_TRACK_ENABLED; + else + context->flags &= ~GST_MATROSKA_TRACK_ENABLED; - if (ctx->index_table == NULL) - ctx->index_table = - g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); + GST_DEBUG_OBJECT (parse, "TrackEnabled: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } - g_array_append_vals (ctx->index_table, idx, 1); - } + /* whether it's the default for this track type */ + case GST_MATROSKA_ID_TRACKFLAGDEFAULT:{ + guint64 num; - parse->index_parsed = TRUE; + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - /* sanity check; empty index normalizes to no index */ - if (parse->index->len == 0) { - g_array_free (parse->index, TRUE); - parse->index = NULL; - } + if (num) + context->flags |= GST_MATROSKA_TRACK_DEFAULT; + else + context->flags &= ~GST_MATROSKA_TRACK_DEFAULT; - return ret; -} + GST_DEBUG_OBJECT (parse, "TrackDefault: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } -static GstFlowReturn -gst_matroska_parse_parse_info (GstMatroskaParse * parse, GstEbmlRead * ebml) -{ - GstFlowReturn ret = GST_FLOW_OK; - guint32 id; + /* whether the track must be used during playback */ + case GST_MATROSKA_ID_TRACKFLAGFORCED:{ + guint64 num; - DEBUG_ELEMENT_START (parse, ebml, "SegmentInfo"); + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "SegmentInfo", ret); - return ret; - } + if (num) + context->flags |= GST_MATROSKA_TRACK_FORCED; + else + context->flags &= ~GST_MATROSKA_TRACK_FORCED; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + GST_DEBUG_OBJECT (parse, "TrackForced: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); + break; + } - switch (id) { - /* cluster timecode */ - case GST_MATROSKA_ID_TIMECODESCALE:{ + /* lacing (like MPEG, where blocks don't end/start on frame + * boundaries) */ + case GST_MATROSKA_ID_TRACKFLAGLACING:{ guint64 num; if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; + if (num) + context->flags |= GST_MATROSKA_TRACK_LACING; + else + context->flags &= ~GST_MATROSKA_TRACK_LACING; - GST_DEBUG_OBJECT (parse, "TimeCodeScale: %" G_GUINT64_FORMAT, num); - parse->time_scale = num; + GST_DEBUG_OBJECT (parse, "TrackLacing: %d", + (context->flags & GST_MATROSKA_TRACK_ENABLED) ? 1 : 0); break; } - case GST_MATROSKA_ID_DURATION:{ - gdouble num; - GstClockTime dur; + /* default length (in time) of one data block in this track */ + case GST_MATROSKA_ID_TRACKDEFAULTDURATION:{ + guint64 num; - if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (num <= 0.0) { - GST_WARNING_OBJECT (parse, "Invalid duration %lf", num); + + if (num == 0) { + GST_WARNING_OBJECT (parse, "Invalid TrackDefaultDuration 0"); break; } - GST_DEBUG_OBJECT (parse, "Duration: %lf", num); - - dur = gst_gdouble_to_guint64 (num * - gst_guint64_to_gdouble (parse->time_scale)); - if (GST_CLOCK_TIME_IS_VALID (dur) && dur <= G_MAXINT64) - gst_segment_set_duration (&parse->segment, GST_FORMAT_TIME, dur); + GST_DEBUG_OBJECT (parse, "TrackDefaultDuration: %" G_GUINT64_FORMAT, + num); + context->default_duration = num; break; } - case GST_MATROSKA_ID_WRITINGAPP:{ - gchar *text; - - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; - - GST_DEBUG_OBJECT (parse, "WritingApp: %s", GST_STR_NULL (text)); - parse->writing_app = text; + case GST_MATROSKA_ID_CONTENTENCODINGS:{ + ret = gst_matroska_read_common_read_track_encodings (&parse->common, + ebml, context); break; } - case GST_MATROSKA_ID_MUXINGAPP:{ - gchar *text; + case GST_MATROSKA_ID_TRACKTIMECODESCALE:{ + gdouble num; - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + if ((ret = gst_ebml_read_float (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num <= 0.0) { + GST_WARNING_OBJECT (parse, "Invalid TrackTimeCodeScale %lf", num); break; + } - GST_DEBUG_OBJECT (parse, "MuxingApp: %s", GST_STR_NULL (text)); - parse->muxing_app = text; + GST_DEBUG_OBJECT (parse, "TrackTimeCodeScale: %lf", num); + context->timecodescale = num; break; } - case GST_MATROSKA_ID_DATEUTC:{ - gint64 time; - - if ((ret = gst_ebml_read_date (ebml, &id, &time)) != GST_FLOW_OK) - break; + default: + GST_WARNING ("Unknown TrackEntry subelement 0x%x - ignoring", id); + /* pass-through */ - GST_DEBUG_OBJECT (parse, "DateUTC: %" G_GINT64_FORMAT, time); - parse->created = time; + /* we ignore these because they're nothing useful (i.e. crap) + * or simply not implemented yet. */ + case GST_MATROSKA_ID_TRACKMINCACHE: + case GST_MATROSKA_ID_TRACKMAXCACHE: + case GST_MATROSKA_ID_MAXBLOCKADDITIONID: + case GST_MATROSKA_ID_TRACKATTACHMENTLINK: + case GST_MATROSKA_ID_TRACKOVERLAY: + case GST_MATROSKA_ID_TRACKTRANSLATE: + case GST_MATROSKA_ID_TRACKOFFSET: + case GST_MATROSKA_ID_CODECSETTINGS: + case GST_MATROSKA_ID_CODECINFOURL: + case GST_MATROSKA_ID_CODECDOWNLOADURL: + case GST_MATROSKA_ID_CODECDECODEALL: + ret = gst_ebml_read_skip (ebml); break; - } - - case GST_MATROSKA_ID_TITLE:{ - gchar *text; - GstTagList *taglist; + } + } - if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) - break; + DEBUG_ELEMENT_STOP (parse, ebml, "TrackEntry", ret); - GST_DEBUG_OBJECT (parse, "Title: %s", GST_STR_NULL (text)); - taglist = gst_tag_list_new (); - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, text, - NULL); - gst_matroska_parse_found_global_tag (parse, taglist); - g_free (text); - break; - } + /* Decode codec private data if necessary */ + if (context->encodings && context->encodings->len > 0 && context->codec_priv + && context->codec_priv_size > 0) { + if (!gst_matroska_decode_data (context->encodings, + &context->codec_priv, &context->codec_priv_size, + GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA, TRUE)) { + GST_WARNING_OBJECT (parse, "Decoding codec private data failed"); + ret = GST_FLOW_ERROR; + } + } - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "SegmentInfo", id); - break; + if (context->type == 0 || context->codec_id == NULL || (ret != GST_FLOW_OK + && ret != GST_FLOW_UNEXPECTED)) { + if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) + GST_WARNING_OBJECT (ebml, "Unknown stream/codec in track entry header"); - /* fall through */ - case GST_MATROSKA_ID_SEGMENTUID: - case GST_MATROSKA_ID_SEGMENTFILENAME: - case GST_MATROSKA_ID_PREVUID: - case GST_MATROSKA_ID_PREVFILENAME: - case GST_MATROSKA_ID_NEXTUID: - case GST_MATROSKA_ID_NEXTFILENAME: - case GST_MATROSKA_ID_SEGMENTFAMILY: - case GST_MATROSKA_ID_CHAPTERTRANSLATE: - ret = gst_ebml_read_skip (ebml); - break; + parse->common.num_streams--; + g_ptr_array_remove_index (parse->common.src, parse->common.num_streams); + g_assert (parse->common.src->len == parse->common.num_streams); + if (context) { + gst_matroska_track_free (context); } + + return ret; } - DEBUG_ELEMENT_STOP (parse, ebml, "SegmentInfo", ret); + if ((context->language == NULL || *context->language == '\0') && + (context->type == GST_MATROSKA_TRACK_TYPE_AUDIO || + context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE)) { + GST_LOG ("stream %d: language=eng (assuming default)", context->index); + context->language = g_strdup ("eng"); + } - parse->segmentinfo_parsed = TRUE; + /* tadaah! */ return ret; } -static GstFlowReturn -gst_matroska_parse_parse_metadata_id_simple_tag (GstMatroskaParse * parse, - GstEbmlRead * ebml, GstTagList ** p_taglist) +static const GstQueryType * +gst_matroska_parse_get_src_query_types (GstPad * pad) { - /* FIXME: check if there are more useful mappings */ - struct - { - const gchar *matroska_tagname; - const gchar *gstreamer_tagname; - } - tag_conv[] = { - { - GST_MATROSKA_TAG_ID_TITLE, GST_TAG_TITLE}, { - GST_MATROSKA_TAG_ID_AUTHOR, GST_TAG_ARTIST}, { - GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, { - GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, { - GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, { - GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, { - GST_MATROSKA_TAG_ID_ENCODER, GST_TAG_ENCODER}, { - GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, { - GST_MATROSKA_TAG_ID_ISRC, GST_TAG_ISRC}, { - GST_MATROSKA_TAG_ID_COPYRIGHT, GST_TAG_COPYRIGHT}, { - GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, { - GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}, { - GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, { - GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, { - GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE} + static const GstQueryType query_types[] = { + GST_QUERY_POSITION, + GST_QUERY_DURATION, + GST_QUERY_SEEKING, + 0 }; - GstFlowReturn ret; - guint32 id; - gchar *value = NULL; - gchar *tag = NULL; - - DEBUG_ELEMENT_START (parse, ebml, "SimpleTag"); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "SimpleTag", ret); - return ret; - } + return query_types; +} - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ +static gboolean +gst_matroska_parse_query (GstMatroskaParse * parse, GstPad * pad, + GstQuery * query) +{ + gboolean res = FALSE; + GstMatroskaTrackContext *context = NULL; - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if (pad) { + context = gst_pad_get_element_private (pad); + } - switch (id) { - case GST_MATROSKA_ID_TAGNAME: - g_free (tag); - tag = NULL; - ret = gst_ebml_read_ascii (ebml, &id, &tag); - GST_DEBUG_OBJECT (parse, "TagName: %s", GST_STR_NULL (tag)); - break; + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + { + GstFormat format; - case GST_MATROSKA_ID_TAGSTRING: - g_free (value); - value = NULL; - ret = gst_ebml_read_utf8 (ebml, &id, &value); - GST_DEBUG_OBJECT (parse, "TagString: %s", GST_STR_NULL (value)); - break; + gst_query_parse_position (query, &format, NULL); - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "SimpleTag", id); - break; - /* fall-through */ + if (format == GST_FORMAT_TIME) { + GST_OBJECT_LOCK (parse); + if (context) + gst_query_set_position (query, GST_FORMAT_TIME, context->pos); + else + gst_query_set_position (query, GST_FORMAT_TIME, + parse->common.segment.last_stop); + GST_OBJECT_UNLOCK (parse); + } else if (format == GST_FORMAT_DEFAULT && context + && context->default_duration) { + GST_OBJECT_LOCK (parse); + gst_query_set_position (query, GST_FORMAT_DEFAULT, + context->pos / context->default_duration); + GST_OBJECT_UNLOCK (parse); + } else { + GST_DEBUG_OBJECT (parse, + "only position query in TIME and DEFAULT format is supported"); + } - case GST_MATROSKA_ID_TAGLANGUAGE: - case GST_MATROSKA_ID_TAGDEFAULT: - case GST_MATROSKA_ID_TAGBINARY: - ret = gst_ebml_read_skip (ebml); - break; + res = TRUE; + break; } - } - - DEBUG_ELEMENT_STOP (parse, ebml, "SimpleTag", ret); + case GST_QUERY_DURATION: + { + GstFormat format; - if (tag && value) { - guint i; + gst_query_parse_duration (query, &format, NULL); - for (i = 0; i < G_N_ELEMENTS (tag_conv); i++) { - const gchar *tagname_gst = tag_conv[i].gstreamer_tagname; + if (format == GST_FORMAT_TIME) { + GST_OBJECT_LOCK (parse); + gst_query_set_duration (query, GST_FORMAT_TIME, + parse->common.segment.duration); + GST_OBJECT_UNLOCK (parse); + } else if (format == GST_FORMAT_DEFAULT && context + && context->default_duration) { + GST_OBJECT_LOCK (parse); + gst_query_set_duration (query, GST_FORMAT_DEFAULT, + parse->common.segment.duration / context->default_duration); + GST_OBJECT_UNLOCK (parse); + } else { + GST_DEBUG_OBJECT (parse, + "only duration query in TIME and DEFAULT format is supported"); + } - const gchar *tagname_mkv = tag_conv[i].matroska_tagname; + res = TRUE; + break; + } - if (strcmp (tagname_mkv, tag) == 0) { - GValue dest = { 0, }; - GType dest_type = gst_tag_get_type (tagname_gst); + case GST_QUERY_SEEKING: + { + GstFormat fmt; - /* Ensure that any date string is complete */ - if (dest_type == GST_TYPE_DATE) { - guint year = 1901, month = 1, day = 1; + gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + if (fmt == GST_FORMAT_TIME) { + gboolean seekable; - /* Dates can be yyyy-MM-dd, yyyy-MM or yyyy, but we need - * the first type */ - if (sscanf (value, "%04u-%02u-%02u", &year, &month, &day) != 0) { - g_free (value); - value = g_strdup_printf ("%04u-%02u-%02u", year, month, day); - } - } + /* assuming we'll be able to get an index ... */ + seekable = parse->seekable; - g_value_init (&dest, dest_type); - if (gst_value_deserialize (&dest, value)) { - gst_tag_list_add_values (*p_taglist, GST_TAG_MERGE_APPEND, - tagname_gst, &dest, NULL); - } else { - GST_WARNING_OBJECT (parse, "Can't transform tag '%s' with " - "value '%s' to target type '%s'", tag, value, - g_type_name (dest_type)); - } - g_value_unset (&dest); - break; + gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, + 0, parse->common.segment.duration); + res = TRUE; } + break; } + default: + res = gst_pad_query_default (pad, query); + break; } - g_free (tag); - g_free (value); + return res; +} - return ret; +static gboolean +gst_matroska_parse_element_query (GstElement * element, GstQuery * query) +{ + return gst_matroska_parse_query (GST_MATROSKA_PARSE (element), NULL, query); } -static GstFlowReturn -gst_matroska_parse_parse_metadata_id_tag (GstMatroskaParse * parse, - GstEbmlRead * ebml, GstTagList ** p_taglist) +static gboolean +gst_matroska_parse_handle_src_query (GstPad * pad, GstQuery * query) { - guint32 id; - GstFlowReturn ret; + gboolean ret; + GstMatroskaParse *parse = GST_MATROSKA_PARSE (gst_pad_get_parent (pad)); - DEBUG_ELEMENT_START (parse, ebml, "Tag"); + ret = gst_matroska_parse_query (parse, pad, query); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Tag", ret); - return ret; - } + gst_object_unref (parse); - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ + return ret; +} - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; +/* returns FALSE if there are no pads to deliver event to, + * otherwise TRUE (whatever the outcome of event sending), + * takes ownership of the passed event! */ +static gboolean +gst_matroska_parse_send_event (GstMatroskaParse * parse, GstEvent * event) +{ + gboolean ret = FALSE; - switch (id) { - case GST_MATROSKA_ID_SIMPLETAG: - ret = gst_matroska_parse_parse_metadata_id_simple_tag (parse, ebml, - p_taglist); - break; + g_return_val_if_fail (event != NULL, FALSE); - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "Tag", id); - break; - } - } + GST_DEBUG_OBJECT (parse, "Sending event of type %s to all source pads", + GST_EVENT_TYPE_NAME (event)); - DEBUG_ELEMENT_STOP (parse, ebml, "Tag", ret); + gst_pad_push_event (parse->srcpad, event); return ret; } -static GstFlowReturn -gst_matroska_parse_parse_metadata (GstMatroskaParse * parse, GstEbmlRead * ebml) +static gboolean +gst_matroska_parse_element_send_event (GstElement * element, GstEvent * event) { - GstTagList *taglist; - GstFlowReturn ret = GST_FLOW_OK; - guint32 id; - GList *l; - guint64 curpos; - - curpos = gst_ebml_read_get_pos (ebml); + GstMatroskaParse *parse = GST_MATROSKA_PARSE (element); + gboolean res; - /* Make sure we don't parse a tags element twice and - * post it's tags twice */ - curpos = gst_ebml_read_get_pos (ebml); - for (l = parse->tags_parsed; l; l = l->next) { - guint64 *pos = l->data; + g_return_val_if_fail (event != NULL, FALSE); - if (*pos == curpos) { - GST_DEBUG_OBJECT (parse, "Skipping already parsed Tags at offset %" - G_GUINT64_FORMAT, curpos); - return GST_FLOW_OK; - } + if (GST_EVENT_TYPE (event) == GST_EVENT_SEEK) { + res = gst_matroska_parse_handle_seek_event (parse, NULL, event); + } else { + GST_WARNING_OBJECT (parse, "Unhandled event of type %s", + GST_EVENT_TYPE_NAME (event)); + res = FALSE; } + gst_event_unref (event); + return res; +} - parse->tags_parsed = - g_list_prepend (parse->tags_parsed, g_slice_new (guint64)); - *((guint64 *) parse->tags_parsed->data) = curpos; - /* fall-through */ +/* searches for a cluster start from @pos, + * return GST_FLOW_OK and cluster position in @pos if found */ +static GstFlowReturn +gst_matroska_parse_search_cluster (GstMatroskaParse * parse, gint64 * pos) +{ + gint64 newpos = *pos; + gint64 orig_offset; + GstFlowReturn ret = GST_FLOW_OK; + const guint chunk = 64 * 1024; + GstBuffer *buf = NULL; + guint64 length; + guint32 id; + guint needed; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Tags", ret); - return ret; - } + orig_offset = parse->common.offset; - taglist = gst_tag_list_new (); + /* read in at newpos and scan for ebml cluster id */ + while (1) { + GstByteReader reader; + gint cluster_pos; - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + ret = gst_pad_pull_range (parse->common.sinkpad, newpos, chunk, &buf); + if (ret != GST_FLOW_OK) break; - - switch (id) { - case GST_MATROSKA_ID_TAG: - ret = gst_matroska_parse_parse_metadata_id_tag (parse, ebml, &taglist); + GST_DEBUG_OBJECT (parse, "read buffer size %d at offset %" G_GINT64_FORMAT, + GST_BUFFER_SIZE (buf), newpos); + gst_byte_reader_init_from_buffer (&reader, buf); + cluster_pos = 0; + resume: + cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, + GST_MATROSKA_ID_CLUSTER, cluster_pos, + GST_BUFFER_SIZE (buf) - cluster_pos); + if (cluster_pos >= 0) { + newpos += cluster_pos; + GST_DEBUG_OBJECT (parse, + "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos); + /* extra checks whether we really sync'ed to a cluster: + * - either it is the first and only cluster + * - either there is a cluster after this one + * - either cluster length is undefined + */ + /* ok if first cluster (there may not a subsequent one) */ + if (newpos == parse->first_cluster_offset) { + GST_DEBUG_OBJECT (parse, "cluster is first cluster -> OK"); break; - - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "Tags", id); + } + parse->common.offset = newpos; + ret = gst_matroska_read_common_peek_id_length_pull (&parse->common, + GST_ELEMENT_CAST (parse), &id, &length, &needed); + if (ret != GST_FLOW_OK) + goto resume; + g_assert (id == GST_MATROSKA_ID_CLUSTER); + GST_DEBUG_OBJECT (parse, "cluster size %" G_GUINT64_FORMAT ", prefix %d", + length, needed); + /* ok if undefined length or first cluster */ + if (length == G_MAXUINT64) { + GST_DEBUG_OBJECT (parse, "cluster has undefined length -> OK"); break; - /* FIXME: Use to limit the tags to specific pads */ - case GST_MATROSKA_ID_TARGETS: - ret = gst_ebml_read_skip (ebml); + } + /* skip cluster */ + parse->common.offset += length + needed; + ret = gst_matroska_read_common_peek_id_length_pull (&parse->common, + GST_ELEMENT_CAST (parse), &id, &length, &needed); + if (ret != GST_FLOW_OK) + goto resume; + GST_DEBUG_OBJECT (parse, "next element is %scluster", + id == GST_MATROSKA_ID_CLUSTER ? "" : "not "); + if (id == GST_MATROSKA_ID_CLUSTER) break; + /* not ok, resume */ + goto resume; + } else { + /* partial cluster id may have been in tail of buffer */ + newpos += MAX (GST_BUFFER_SIZE (buf), 4) - 3; + gst_buffer_unref (buf); + buf = NULL; } } - DEBUG_ELEMENT_STOP (parse, ebml, "Tags", ret); - - gst_matroska_parse_found_global_tag (parse, taglist); + if (buf) { + gst_buffer_unref (buf); + buf = NULL; + } + parse->common.offset = orig_offset; + *pos = newpos; return ret; } -static GstFlowReturn -gst_matroska_parse_parse_attached_file (GstMatroskaParse * parse, - GstEbmlRead * ebml, GstTagList * taglist) + +static gboolean +gst_matroska_parse_handle_seek_event (GstMatroskaParse * parse, + GstPad * pad, GstEvent * event) { - guint32 id; - GstFlowReturn ret; - gchar *description = NULL; - gchar *filename = NULL; - gchar *mimetype = NULL; - guint8 *data = NULL; - guint64 datalen = 0; + GstMatroskaIndex *entry = NULL; + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + GstFormat format; + gdouble rate; + gint64 cur, stop; + GstMatroskaTrackContext *track = NULL; + GstSegment seeksegment = { 0, }; + gboolean update; - DEBUG_ELEMENT_START (parse, ebml, "AttachedFile"); + if (pad) + track = gst_pad_get_element_private (pad); - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "AttachedFile", ret); - return ret; + track = gst_matroska_read_common_get_seek_track (&parse->common, track); + + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); + + /* we can only seek on time */ + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (parse, "Can only seek on TIME"); + return FALSE; } - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - /* read all sub-entries */ + /* copy segment, we need this because we still need the old + * segment when we close the current segment. */ + memcpy (&seeksegment, &parse->common.segment, sizeof (GstSegment)); - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) - break; + if (event) { + GST_DEBUG_OBJECT (parse, "configuring seek"); + gst_segment_set_seek (&seeksegment, rate, format, flags, + cur_type, cur, stop_type, stop, &update); + } - switch (id) { - case GST_MATROSKA_ID_FILEDESCRIPTION: - if (description) { - GST_WARNING_OBJECT (parse, "FileDescription can only appear once"); - break; - } + GST_DEBUG_OBJECT (parse, "New segment %" GST_SEGMENT_FORMAT, &seeksegment); - ret = gst_ebml_read_utf8 (ebml, &id, &description); - GST_DEBUG_OBJECT (parse, "FileDescription: %s", - GST_STR_NULL (description)); - break; - case GST_MATROSKA_ID_FILENAME: - if (filename) { - GST_WARNING_OBJECT (parse, "FileName can only appear once"); - break; - } + /* check sanity before we start flushing and all that */ + GST_OBJECT_LOCK (parse); + if ((entry = gst_matroska_read_common_do_index_seek (&parse->common, track, + seeksegment.last_stop, &parse->seek_index, &parse->seek_entry)) == + NULL) { + /* pull mode without index can scan later on */ + GST_DEBUG_OBJECT (parse, "No matching seek entry in index"); + GST_OBJECT_UNLOCK (parse); + return FALSE; + } + GST_DEBUG_OBJECT (parse, "Seek position looks sane"); + GST_OBJECT_UNLOCK (parse); - ret = gst_ebml_read_utf8 (ebml, &id, &filename); + /* need to seek to cluster start to pick up cluster time */ + /* upstream takes care of flushing and all that + * ... and newsegment event handling takes care of the rest */ + return perform_seek_to_offset (parse, entry->pos + + parse->common.ebml_segment_start); +} - GST_DEBUG_OBJECT (parse, "FileName: %s", GST_STR_NULL (filename)); - break; - case GST_MATROSKA_ID_FILEMIMETYPE: - if (mimetype) { - GST_WARNING_OBJECT (parse, "FileMimeType can only appear once"); - break; - } +/* + * Handle whether we can perform the seek event or if we have to let the chain + * function handle seeks to build the seek indexes first. + */ +static gboolean +gst_matroska_parse_handle_seek_push (GstMatroskaParse * parse, GstPad * pad, + GstEvent * event) +{ + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + GstFormat format; + gdouble rate; + gint64 cur, stop; - ret = gst_ebml_read_ascii (ebml, &id, &mimetype); - GST_DEBUG_OBJECT (parse, "FileMimeType: %s", GST_STR_NULL (mimetype)); - break; - case GST_MATROSKA_ID_FILEDATA: - if (data) { - GST_WARNING_OBJECT (parse, "FileData can only appear once"); - break; - } + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); - ret = gst_ebml_read_binary (ebml, &id, &data, &datalen); - GST_DEBUG_OBJECT (parse, "FileData of size %" G_GUINT64_FORMAT, - datalen); - break; + /* sanity checks */ - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "AttachedFile", id); - break; - case GST_MATROSKA_ID_FILEUID: - ret = gst_ebml_read_skip (ebml); - break; - } + /* we can only seek on time */ + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (parse, "Can only seek on TIME"); + return FALSE; } - DEBUG_ELEMENT_STOP (parse, ebml, "AttachedFile", ret); - - if (filename && mimetype && data && datalen > 0) { - GstTagImageType image_type = GST_TAG_IMAGE_TYPE_NONE; - GstBuffer *tagbuffer = NULL; - GstCaps *caps; - gchar *filename_lc = g_utf8_strdown (filename, -1); + if (stop_type != GST_SEEK_TYPE_NONE && stop != GST_CLOCK_TIME_NONE) { + GST_DEBUG_OBJECT (parse, "Seek end-time not supported in streaming mode"); + return FALSE; + } - GST_DEBUG_OBJECT (parse, "Creating tag for attachment with filename '%s', " - "mimetype '%s', description '%s', size %" G_GUINT64_FORMAT, filename, - mimetype, GST_STR_NULL (description), datalen); + if (!(flags & GST_SEEK_FLAG_FLUSH)) { + GST_DEBUG_OBJECT (parse, + "Non-flushing seek not supported in streaming mode"); + return FALSE; + } - /* TODO: better heuristics for different image types */ - if (strstr (filename_lc, "cover")) { - if (strstr (filename_lc, "back")) - image_type = GST_TAG_IMAGE_TYPE_BACK_COVER; - else - image_type = GST_TAG_IMAGE_TYPE_FRONT_COVER; - } else if (g_str_has_prefix (mimetype, "image/") || - g_str_has_suffix (filename_lc, "png") || - g_str_has_suffix (filename_lc, "jpg") || - g_str_has_suffix (filename_lc, "jpeg") || - g_str_has_suffix (filename_lc, "gif") || - g_str_has_suffix (filename_lc, "bmp")) { - image_type = GST_TAG_IMAGE_TYPE_UNDEFINED; - } - g_free (filename_lc); + if (flags & GST_SEEK_FLAG_SEGMENT) { + GST_DEBUG_OBJECT (parse, "Segment seek not supported in streaming mode"); + return FALSE; + } - /* First try to create an image tag buffer from this */ - if (image_type != GST_TAG_IMAGE_TYPE_NONE) { - tagbuffer = - gst_tag_image_data_to_image_buffer (data, datalen, image_type); + /* check for having parsed index already */ + if (!parse->common.index_parsed) { + gboolean building_index; + guint64 offset = 0; - if (!tagbuffer) - image_type = GST_TAG_IMAGE_TYPE_NONE; + if (!parse->index_offset) { + GST_DEBUG_OBJECT (parse, "no index (location); no seek in push mode"); + return FALSE; } - /* if this failed create an attachment buffer */ - if (!tagbuffer) { - tagbuffer = gst_buffer_new_and_alloc (datalen); + GST_OBJECT_LOCK (parse); + /* handle the seek event in the chain function */ + parse->common.state = GST_MATROSKA_READ_STATE_SEEK; + /* no more seek can be issued until state reset to _DATA */ - memcpy (GST_BUFFER_DATA (tagbuffer), data, datalen); - GST_BUFFER_SIZE (tagbuffer) = datalen; + /* copy the event */ + if (parse->seek_event) + gst_event_unref (parse->seek_event); + parse->seek_event = gst_event_ref (event); - caps = gst_type_find_helper_for_buffer (NULL, tagbuffer, NULL); - if (caps == NULL) - caps = gst_caps_new_simple (mimetype, NULL); - gst_buffer_set_caps (tagbuffer, caps); - gst_caps_unref (caps); + /* set the building_index flag so that only one thread can setup the + * structures for index seeking. */ + building_index = parse->building_index; + if (!building_index) { + parse->building_index = TRUE; + offset = parse->index_offset; } + GST_OBJECT_UNLOCK (parse); - /* Set filename and description on the caps */ - caps = GST_BUFFER_CAPS (tagbuffer); - gst_caps_set_simple (caps, "filename", G_TYPE_STRING, filename, NULL); - if (description) - gst_caps_set_simple (caps, "description", G_TYPE_STRING, description, - NULL); - - GST_DEBUG_OBJECT (parse, - "Created attachment buffer with caps: %" GST_PTR_FORMAT, caps); + if (!building_index) { + /* seek to the first subindex or legacy index */ + GST_INFO_OBJECT (parse, "Seeking to Cues at %" G_GUINT64_FORMAT, offset); + return perform_seek_to_offset (parse, offset); + } - /* and append to the tag list */ - if (image_type != GST_TAG_IMAGE_TYPE_NONE) - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, tagbuffer, - NULL); - else - gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ATTACHMENT, - tagbuffer, NULL); + /* well, we are handling it already */ + return TRUE; } - g_free (filename); - g_free (mimetype); - g_free (data); - g_free (description); - - return ret; + /* delegate to tweaked regular seek */ + return gst_matroska_parse_handle_seek_event (parse, pad, event); } -static GstFlowReturn -gst_matroska_parse_parse_attachments (GstMatroskaParse * parse, - GstEbmlRead * ebml) +static gboolean +gst_matroska_parse_handle_src_event (GstPad * pad, GstEvent * event) { - guint32 id; - GstFlowReturn ret = GST_FLOW_OK; - GstTagList *taglist; + GstMatroskaParse *parse = GST_MATROSKA_PARSE (gst_pad_get_parent (pad)); + gboolean res = TRUE; - DEBUG_ELEMENT_START (parse, ebml, "Attachments"); + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + /* no seeking until we are (safely) ready */ + if (parse->common.state != GST_MATROSKA_READ_STATE_DATA) { + GST_DEBUG_OBJECT (parse, "not ready for seeking yet"); + return FALSE; + } + res = gst_matroska_parse_handle_seek_push (parse, pad, event); + gst_event_unref (event); + break; - if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Attachments", ret); - return ret; - } + case GST_EVENT_QOS: + { + GstMatroskaTrackContext *context = gst_pad_get_element_private (pad); + if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + GstMatroskaTrackVideoContext *videocontext = + (GstMatroskaTrackVideoContext *) context; + gdouble proportion; + GstClockTimeDiff diff; + GstClockTime timestamp; - taglist = gst_tag_list_new (); + gst_event_parse_qos (event, &proportion, &diff, ×tamp); - while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { - if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + GST_OBJECT_LOCK (parse); + videocontext->earliest_time = timestamp + diff; + GST_OBJECT_UNLOCK (parse); + } + res = TRUE; + gst_event_unref (event); break; - - switch (id) { - case GST_MATROSKA_ID_ATTACHEDFILE: - ret = gst_matroska_parse_parse_attached_file (parse, ebml, taglist); - break; - - default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "Attachments", id); - break; } - } - DEBUG_ELEMENT_STOP (parse, ebml, "Attachments", ret); - if (gst_structure_n_fields (GST_STRUCTURE (taglist)) > 0) { - GST_DEBUG_OBJECT (parse, "Storing attachment tags"); - gst_matroska_parse_found_global_tag (parse, taglist); - } else { - GST_DEBUG_OBJECT (parse, "No valid attachments found"); - gst_tag_list_free (taglist); + /* events we don't need to handle */ + case GST_EVENT_NAVIGATION: + gst_event_unref (event); + res = FALSE; + break; + + case GST_EVENT_LATENCY: + default: + res = gst_pad_push_event (parse->common.sinkpad, event); + break; } - parse->attachments_parsed = TRUE; + gst_object_unref (parse); - return ret; + return res; } static GstFlowReturn -gst_matroska_parse_parse_chapters (GstMatroskaParse * parse, GstEbmlRead * ebml) +gst_matroska_parse_parse_tracks (GstMatroskaParse * parse, GstEbmlRead * ebml) { - guint32 id; GstFlowReturn ret = GST_FLOW_OK; + guint32 id; - GST_WARNING_OBJECT (parse, "Parsing of chapters not implemented yet"); - - /* TODO: implement parsing of chapters */ - - DEBUG_ELEMENT_START (parse, ebml, "Chapters"); + DEBUG_ELEMENT_START (parse, ebml, "Tracks"); if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { - DEBUG_ELEMENT_STOP (parse, ebml, "Chapters", ret); + DEBUG_ELEMENT_STOP (parse, ebml, "Tracks", ret); return ret; } @@ -3371,13 +1543,21 @@ gst_matroska_parse_parse_chapters (GstMatroskaParse * parse, GstEbmlRead * ebml) break; switch (id) { + /* one track within the "all-tracks" header */ + case GST_MATROSKA_ID_TRACKENTRY: + ret = gst_matroska_parse_add_stream (parse, ebml); + break; + default: - ret = gst_ebml_read_skip (ebml); + ret = gst_matroska_read_common_parse_skip (&parse->common, ebml, + "Track", id); break; } } + DEBUG_ELEMENT_STOP (parse, ebml, "Tracks", ret); + + parse->tracks_parsed = TRUE; - DEBUG_ELEMENT_STOP (parse, ebml, "Chapters", ret); return ret; } @@ -3496,14 +1676,15 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, size -= n; /* fetch stream from num */ - stream_num = gst_matroska_parse_stream_from_num (parse, num); + stream_num = gst_matroska_read_common_stream_from_num (&parse->common, + num); if (G_UNLIKELY (size < 3)) { GST_WARNING_OBJECT (parse, "Invalid size %u", size); /* non-fatal, try next block(group) */ ret = GST_FLOW_OK; goto done; } else if (G_UNLIKELY (stream_num < 0 || - stream_num >= parse->num_streams)) { + stream_num >= parse->common.num_streams)) { /* let's not give up on a stray invalid track number */ GST_WARNING_OBJECT (parse, "Invalid stream %d for track number %" G_GUINT64_FORMAT @@ -3511,7 +1692,7 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, goto done; } - stream = g_ptr_array_index (parse->src, stream_num); + stream = g_ptr_array_index (parse->common.src, stream_num); /* time (relative to cluster time) */ time = ((gint16) GST_READ_UINT16_BE (data)); @@ -3638,7 +1819,8 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, } default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "BlockGroup", id); + ret = gst_matroska_read_common_parse_skip (&parse->common, ebml, + "BlockGroup", id); break; case GST_MATROSKA_ID_BLOCKVIRTUAL: @@ -3665,7 +1847,7 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, gint64 lace_time = 0; gboolean delta_unit; - stream = g_ptr_array_index (parse->src, stream_num); + stream = g_ptr_array_index (parse->common.src, stream_num); if (cluster_time != GST_CLOCK_TIME_NONE) { /* FIXME: What to do with negative timestamps? Give timestamp 0 or -1? @@ -3674,11 +1856,11 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, lace_time = 0; } else { if (stream->timecodescale == 1.0) - lace_time = (cluster_time + time) * parse->time_scale; + lace_time = (cluster_time + time) * parse->common.time_scale; else lace_time = gst_util_guint64_to_gdouble ((cluster_time + time) * - parse->time_scale) * stream->timecodescale; + parse->common.time_scale) * stream->timecodescale; } } else { lace_time = GST_CLOCK_TIME_NONE; @@ -3693,23 +1875,25 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, "generating segment starting at %" GST_TIME_FORMAT, GST_TIME_ARGS (lace_time)); /* pretend we seeked here */ - gst_segment_set_seek (&parse->segment, parse->segment.rate, + gst_segment_set_seek (&parse->common.segment, parse->common.segment.rate, GST_FORMAT_TIME, 0, GST_SEEK_TYPE_SET, lace_time, GST_SEEK_TYPE_SET, GST_CLOCK_TIME_NONE, NULL); /* now convey our segment notion downstream */ gst_matroska_parse_send_event (parse, gst_event_new_new_segment (FALSE, - parse->segment.rate, parse->segment.format, parse->segment.start, - parse->segment.stop, parse->segment.start)); + parse->common.segment.rate, parse->common.segment.format, + parse->common.segment.start, parse->common.segment.stop, + parse->common.segment.start)); parse->need_newsegment = FALSE; } if (block_duration) { if (stream->timecodescale == 1.0) - duration = gst_util_uint64_scale (block_duration, parse->time_scale, 1); + duration = gst_util_uint64_scale (block_duration, + parse->common.time_scale, 1); else duration = gst_util_gdouble_to_guint64 (gst_util_guint64_to_gdouble - (gst_util_uint64_scale (block_duration, parse->time_scale, + (gst_util_uint64_scale (block_duration, parse->common.time_scale, 1)) * stream->timecodescale); } else if (stream->default_duration) { duration = stream->default_duration * laces; @@ -3740,7 +1924,7 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, will instad skip until the next keyframe. */ if (GST_CLOCK_TIME_IS_VALID (lace_time) && stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && - stream->index_table && parse->segment.rate > 0.0) { + stream->index_table && parse->common.segment.rate > 0.0) { GstMatroskaTrackVideoContext *videocontext = (GstMatroskaTrackVideoContext *) stream; GstClockTime earliest_time; @@ -3749,7 +1933,7 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, GST_OBJECT_LOCK (parse); earliest_time = videocontext->earliest_time; GST_OBJECT_UNLOCK (parse); - earliest_stream_time = gst_segment_to_position (&parse->segment, + earliest_stream_time = gst_segment_to_position (&parse->common.segment, GST_FORMAT_TIME, earliest_time); if (GST_CLOCK_TIME_IS_VALID (lace_time) && @@ -3797,11 +1981,11 @@ gst_matroska_parse_parse_blockgroup_or_simpleblock (GstMatroskaParse * parse, GstClockTime last_stop_end; /* Check if this stream is after segment stop */ - if (GST_CLOCK_TIME_IS_VALID (parse->segment.stop) && - lace_time >= parse->segment.stop) { + if (GST_CLOCK_TIME_IS_VALID (parse->common.segment.stop) && + lace_time >= parse->common.segment.stop) { GST_DEBUG_OBJECT (parse, "Stream %d after segment stop %" GST_TIME_FORMAT, stream->index, - GST_TIME_ARGS (parse->segment.stop)); + GST_TIME_ARGS (parse->common.segment.stop)); gst_buffer_unref (sub); goto eos; } @@ -4039,7 +2223,8 @@ gst_matroska_parse_parse_contents_seekentry (GstMatroskaParse * parse, } default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "SeekHead", id); + ret = gst_matroska_read_common_parse_skip (&parse->common, ebml, + "SeekHead", id); break; } } @@ -4067,7 +2252,7 @@ gst_matroska_parse_parse_contents_seekentry (GstMatroskaParse * parse, guint64 length; /* remember */ - length = gst_matroska_parse_get_length (parse); + length = gst_matroska_read_common_get_length (&parse->common); if (length == (guint64) - 1) { GST_DEBUG_OBJECT (parse, "no upstream length, skipping SeakHead entry"); @@ -4075,17 +2260,18 @@ gst_matroska_parse_parse_contents_seekentry (GstMatroskaParse * parse, } /* check for validity */ - if (seek_pos + parse->ebml_segment_start + 12 >= length) { + if (seek_pos + parse->common.ebml_segment_start + 12 >= length) { GST_WARNING_OBJECT (parse, "SeekHead reference lies outside file!" " (%" G_GUINT64_FORMAT "+%" G_GUINT64_FORMAT "+12 >= %" - G_GUINT64_FORMAT ")", seek_pos, parse->ebml_segment_start, length); + G_GUINT64_FORMAT ")", seek_pos, parse->common.ebml_segment_start, + length); break; } /* only pick up index location when streaming */ if (seek_id == GST_MATROSKA_ID_CUES) { - parse->index_offset = seek_pos + parse->ebml_segment_start; + parse->index_offset = seek_pos + parse->common.ebml_segment_start; GST_DEBUG_OBJECT (parse, "Cues located at offset %" G_GUINT64_FORMAT, parse->index_offset); } @@ -4131,7 +2317,8 @@ gst_matroska_parse_parse_contents (GstMatroskaParse * parse, GstEbmlRead * ebml) } default: - ret = gst_matroska_parse_parse_skip (parse, ebml, "SeekHead", id); + ret = gst_matroska_read_common_parse_skip (&parse->common, ebml, + "SeekHead", id); break; } } @@ -4169,7 +2356,7 @@ gst_matroska_parse_check_parse_error (GstMatroskaParse * parse) /* sigh, one last attempt above and beyond call of duty ...; * search for cluster mark following current pos */ - pos = parse->offset; + pos = parse->common.offset; GST_WARNING_OBJECT (parse, "parse error, looking for next cluster"); if (gst_matroska_parse_search_cluster (parse, &pos) != GST_FLOW_OK) { /* did not work, give up */ @@ -4177,7 +2364,7 @@ gst_matroska_parse_check_parse_error (GstMatroskaParse * parse) } else { GST_DEBUG_OBJECT (parse, "... found at %" G_GUINT64_FORMAT, pos); /* try that position */ - parse->offset = pos; + parse->common.offset = pos; return FALSE; } } @@ -4200,13 +2387,14 @@ gst_matroska_parse_take (GstMatroskaParse * parse, guint64 bytes, ret = GST_FLOW_ERROR; goto exit; } - if (gst_adapter_available (parse->adapter) >= bytes) - buffer = gst_adapter_take_buffer (parse->adapter, bytes); + if (gst_adapter_available (parse->common.adapter) >= bytes) + buffer = gst_adapter_take_buffer (parse->common.adapter, bytes); else ret = GST_FLOW_UNEXPECTED; if (G_LIKELY (buffer)) { - gst_ebml_read_init (ebml, GST_ELEMENT_CAST (parse), buffer, parse->offset); - parse->offset += bytes; + gst_ebml_read_init (ebml, GST_ELEMENT_CAST (parse), buffer, + parse->common.offset); + parse->common.offset += bytes; } exit: return ret; @@ -4220,7 +2408,7 @@ gst_matroska_parse_check_seekability (GstMatroskaParse * parse) gint64 start = -1, stop = -1; query = gst_query_new_seeking (GST_FORMAT_BYTES); - if (!gst_pad_peer_query (parse->sinkpad, query)) { + if (!gst_pad_peer_query (parse->common.sinkpad, query)) { GST_DEBUG_OBJECT (parse, "seeking query failed"); goto done; } @@ -4232,7 +2420,7 @@ gst_matroska_parse_check_seekability (GstMatroskaParse * parse) GstFormat fmt = GST_FORMAT_BYTES; GST_DEBUG_OBJECT (parse, "doing duration query to fix up unset stop"); - gst_pad_query_peer_duration (parse->sinkpad, &fmt, &stop); + gst_pad_query_peer_duration (parse->common.sinkpad, &fmt, &stop); } /* if upstream doesn't know the size, it's likely that it's not seekable in @@ -4264,11 +2452,12 @@ gst_matroska_parse_find_tracks (GstMatroskaParse * parse) "Found Cluster element before Tracks, searching Tracks"); /* remember */ - before_pos = parse->offset; + before_pos = parse->common.offset; /* Search Tracks element */ while (TRUE) { - ret = gst_matroska_parse_peek_id_length_pull (parse, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_pull (&parse->common, + GST_ELEMENT_CAST (parse), &id, &length, &needed); if (ret != GST_FLOW_OK) break; @@ -4279,7 +2468,7 @@ gst_matroska_parse_find_tracks (GstMatroskaParse * parse) ret = gst_matroska_parse_check_read_size (parse, length); break; } else { - parse->offset += needed; + parse->common.offset += needed; parse->offset += length; } continue; @@ -4311,6 +2500,11 @@ static void gst_matroska_parse_accumulate_streamheader (GstMatroskaParse * parse, GstBuffer * buffer) { + if (parse->pushed_headers) { + GST_WARNING_OBJECT (parse, + "Accumulating headers, but headers are already pushed"); + } + if (parse->streamheader) { GstBuffer *buf; @@ -4342,8 +2536,10 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer, s = gst_caps_get_structure (caps, 0); g_value_init (&streamheader, GST_TYPE_ARRAY); g_value_init (&bufval, GST_TYPE_BUFFER); - GST_BUFFER_FLAG_SET (parse->streamheader, GST_BUFFER_FLAG_IN_CAPS); - gst_value_set_buffer (&bufval, parse->streamheader); + buf = gst_buffer_copy (parse->streamheader); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + gst_value_set_buffer (&bufval, buf); + gst_buffer_unref (buf); gst_value_array_append_value (&streamheader, &bufval); g_value_unset (&bufval); gst_structure_set_value (s, "streamheader", &streamheader); @@ -4351,7 +2547,7 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer, //gst_caps_replace (parse->caps, caps); gst_pad_set_caps (parse->srcpad, caps); - buf = gst_buffer_make_metadata_writable (parse->streamheader); + buf = gst_buffer_copy (parse->streamheader); gst_buffer_set_caps (buf, caps); gst_caps_unref (caps); @@ -4413,15 +2609,15 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, if (G_LIKELY (length != G_MAXUINT64)) read += needed; - switch (parse->state) { - case GST_MATROSKA_PARSE_STATE_START: + switch (parse->common.state) { + case GST_MATROSKA_READ_STATE_START: switch (id) { case GST_EBML_ID_HEADER: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - ret = gst_matroska_parse_parse_header (parse, &ebml); + ret = gst_matroska_read_common_parse_header (&parse->common, &ebml); if (ret != GST_FLOW_OK) goto parse_failed; - parse->state = GST_MATROSKA_PARSE_STATE_SEGMENT; + parse->common.state = GST_MATROSKA_READ_STATE_SEGMENT; gst_matroska_parse_check_seekability (parse); gst_matroska_parse_accumulate_streamheader (parse, ebml.buf); break; @@ -4430,18 +2626,18 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, break; } break; - case GST_MATROSKA_PARSE_STATE_SEGMENT: + case GST_MATROSKA_READ_STATE_SEGMENT: switch (id) { case GST_MATROSKA_ID_SEGMENT: /* eat segment prefix */ GST_READ_CHECK (gst_matroska_parse_take (parse, needed, &ebml)); GST_DEBUG_OBJECT (parse, "Found Segment start at offset %" G_GUINT64_FORMAT, - parse->offset); + parse->common.offset); /* seeks are from the beginning of the segment, * after the segment ID/length */ - parse->ebml_segment_start = parse->offset; - parse->state = GST_MATROSKA_PARSE_STATE_HEADER; + parse->common.ebml_segment_start = parse->common.offset; + parse->common.state = GST_MATROSKA_READ_STATE_HEADER; gst_matroska_parse_accumulate_streamheader (parse, ebml.buf); break; default: @@ -4453,19 +2649,20 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, break; } break; - case GST_MATROSKA_PARSE_STATE_SCANNING: + case GST_MATROSKA_READ_STATE_SCANNING: if (id != GST_MATROSKA_ID_CLUSTER && id != GST_MATROSKA_ID_CLUSTERTIMECODE) goto skip; /* fall-through */ - case GST_MATROSKA_PARSE_STATE_HEADER: - case GST_MATROSKA_PARSE_STATE_DATA: - case GST_MATROSKA_PARSE_STATE_SEEK: + case GST_MATROSKA_READ_STATE_HEADER: + case GST_MATROSKA_READ_STATE_DATA: + case GST_MATROSKA_READ_STATE_SEEK: switch (id) { case GST_MATROSKA_ID_SEGMENTINFO: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - if (!parse->segmentinfo_parsed) { - ret = gst_matroska_parse_parse_info (parse, &ebml); + if (!parse->common.segmentinfo_parsed) { + ret = gst_matroska_read_common_parse_info (&parse->common, + GST_ELEMENT_CAST (parse), &ebml); } gst_matroska_parse_accumulate_streamheader (parse, ebml.buf); break; @@ -4481,13 +2678,14 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, GST_DEBUG_OBJECT (parse, "Cluster before Track"); goto not_streamable; } - if (G_UNLIKELY (parse->state == GST_MATROSKA_PARSE_STATE_HEADER)) { - parse->state = GST_MATROSKA_PARSE_STATE_DATA; - parse->first_cluster_offset = parse->offset; + if (G_UNLIKELY (parse->common.state + == GST_MATROSKA_READ_STATE_HEADER)) { + parse->common.state = GST_MATROSKA_READ_STATE_DATA; + parse->first_cluster_offset = parse->common.offset; GST_DEBUG_OBJECT (parse, "signaling no more pads"); } parse->cluster_time = GST_CLOCK_TIME_NONE; - parse->cluster_offset = parse->offset; + parse->cluster_offset = parse->common.offset; if (G_UNLIKELY (!parse->seek_first && parse->seek_block)) { GST_DEBUG_OBJECT (parse, "seek target block %" G_GUINT64_FORMAT " not found in Cluster, trying next Cluster's first block instead", @@ -4512,16 +2710,17 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, goto parse_failed; GST_DEBUG_OBJECT (parse, "ClusterTimeCode: %" G_GUINT64_FORMAT, num); parse->cluster_time = num; - if (parse->element_index) { - if (parse->element_index_writer_id == -1) - gst_index_get_writer_id (parse->element_index, - GST_OBJECT (parse), &parse->element_index_writer_id); + if (parse->common.element_index) { + if (parse->common.element_index_writer_id == -1) + gst_index_get_writer_id (parse->common.element_index, + GST_OBJECT (parse), &parse->common.element_index_writer_id); GST_LOG_OBJECT (parse, "adding association %" GST_TIME_FORMAT "-> %" G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (parse->cluster_time), parse->cluster_offset, - parse->element_index_writer_id); - gst_index_add_association (parse->element_index, - parse->element_index_writer_id, GST_ASSOCIATION_FLAG_KEY_UNIT, + parse->common.element_index_writer_id); + gst_index_add_association (parse->common.element_index, + parse->common.element_index_writer_id, + GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, parse->cluster_time, GST_FORMAT_BYTES, parse->cluster_offset, NULL); } @@ -4552,19 +2751,21 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, break; case GST_MATROSKA_ID_ATTACHMENTS: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - if (!parse->attachments_parsed) { - ret = gst_matroska_parse_parse_attachments (parse, &ebml); + if (!parse->common.attachments_parsed) { + ret = gst_matroska_read_common_parse_attachments (&parse->common, + GST_ELEMENT_CAST (parse), &ebml); } gst_matroska_parse_output (parse, ebml.buf, FALSE); break; case GST_MATROSKA_ID_TAGS: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - ret = gst_matroska_parse_parse_metadata (parse, &ebml); - gst_matroska_parse_output (parse, ebml.buf, FALSE); + ret = gst_matroska_read_common_parse_metadata (&parse->common, + GST_ELEMENT_CAST (parse), &ebml); + gst_matroska_parse_accumulate_streamheader (parse, ebml.buf); break; case GST_MATROSKA_ID_CHAPTERS: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - ret = gst_matroska_parse_parse_chapters (parse, &ebml); + ret = gst_matroska_read_common_parse_chapters (&parse->common, &ebml); gst_matroska_parse_output (parse, ebml.buf, FALSE); break; case GST_MATROSKA_ID_SEEKHEAD: @@ -4574,11 +2775,11 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, break; case GST_MATROSKA_ID_CUES: GST_READ_CHECK (gst_matroska_parse_take (parse, read, &ebml)); - if (!parse->index_parsed) { - ret = gst_matroska_parse_parse_index (parse, &ebml); + if (!parse->common.index_parsed) { + ret = gst_matroska_read_common_parse_index (&parse->common, &ebml); /* only push based; delayed index building */ if (ret == GST_FLOW_OK - && parse->state == GST_MATROSKA_PARSE_STATE_SEEK) { + && parse->common.state == GST_MATROSKA_READ_STATE_SEEK) { GstEvent *event; GST_OBJECT_LOCK (parse); @@ -4592,7 +2793,7 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id, goto seek_failed; /* resume data handling, main thread clear to seek again */ GST_OBJECT_LOCK (parse); - parse->state = GST_MATROSKA_PARSE_STATE_DATA; + parse->common.state = GST_MATROSKA_READ_STATE_DATA; GST_OBJECT_UNLOCK (parse); } } @@ -4677,7 +2878,7 @@ gst_matroska_parse_loop (GstPad * pad) guint needed; /* If we have to close a segment, send a new segment to do this now */ - if (G_LIKELY (parse->state == GST_MATROSKA_PARSE_STATE_DATA)) { + if (G_LIKELY (parse->common.state == GST_MATROSKA_READ_STATE_DATA)) { if (G_UNLIKELY (parse->close_segment)) { gst_matroska_parse_send_event (parse, parse->close_segment); parse->close_segment = NULL; @@ -4688,7 +2889,8 @@ gst_matroska_parse_loop (GstPad * pad) } } - ret = gst_matroska_parse_peek_id_length_pull (parse, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_pull (&parse->common, + GST_ELEMENT_CAST (parse), &id, &length, &needed); if (ret == GST_FLOW_UNEXPECTED) goto eos; if (ret != GST_FLOW_OK) { @@ -4727,7 +2929,8 @@ gst_matroska_parse_loop (GstPad * pad) } next: - if (G_UNLIKELY (parse->offset == gst_matroska_parse_get_length (parse))) { + if (G_UNLIKELY (parse->offset == + gst_matroska_read_common_get_length (&parse->common))) { GST_LOG_OBJECT (parse, "Reached end of stream"); ret = GST_FLOW_UNEXPECTED; goto eos; @@ -4752,7 +2955,7 @@ pause: GST_LOG_OBJECT (parse, "pausing task, reason %s", reason); parse->segment_running = FALSE; - gst_pad_pause_task (parse->sinkpad); + gst_pad_pause_task (parse->common.sinkpad); if (ret == GST_FLOW_UNEXPECTED) { /* perform EOS logic */ @@ -4821,27 +3024,12 @@ perform_seek_to_offset (GstMatroskaParse * parse, guint64 offset) GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset, GST_SEEK_TYPE_NONE, -1); - res = gst_pad_push_event (parse->sinkpad, event); + res = gst_pad_push_event (parse->common.sinkpad, event); /* newsegment event will update offset */ return res; } -static const guint8 * -gst_matroska_parse_peek_adapter (GstMatroskaParse * parse, guint peek) -{ - return gst_adapter_peek (parse->adapter, peek); -} - -static GstFlowReturn -gst_matroska_parse_peek_id_length_push (GstMatroskaParse * parse, guint32 * _id, - guint64 * _length, guint * _needed) -{ - return gst_ebml_peek_id_length (_id, _length, _needed, - (GstPeekData) gst_matroska_parse_peek_adapter, (gpointer) parse, - GST_ELEMENT_CAST (parse), parse->offset); -} - static GstFlowReturn gst_matroska_parse_chain (GstPad * pad, GstBuffer * buffer) { @@ -4854,25 +3042,27 @@ gst_matroska_parse_chain (GstPad * pad, GstBuffer * buffer) if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buffer))) { GST_DEBUG_OBJECT (parse, "got DISCONT"); - gst_adapter_clear (parse->adapter); + gst_adapter_clear (parse->common.adapter); GST_OBJECT_LOCK (parse); - gst_matroska_parse_reset_streams (parse, GST_CLOCK_TIME_NONE, FALSE); + gst_matroska_read_common_reset_streams (&parse->common, + GST_CLOCK_TIME_NONE, FALSE); GST_OBJECT_UNLOCK (parse); } - gst_adapter_push (parse->adapter, buffer); + gst_adapter_push (parse->common.adapter, buffer); buffer = NULL; next: - available = gst_adapter_available (parse->adapter); + available = gst_adapter_available (parse->common.adapter); - ret = gst_matroska_parse_peek_id_length_push (parse, &id, &length, &needed); + ret = gst_matroska_read_common_peek_id_length_push (&parse->common, + GST_ELEMENT_CAST (parse), &id, &length, &needed); if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED)) return ret; GST_LOG_OBJECT (parse, "Offset %" G_GUINT64_FORMAT ", Element id 0x%x, " - "size %" G_GUINT64_FORMAT ", needed %d, available %d", parse->offset, id, - length, needed, available); + "size %" G_GUINT64_FORMAT ", needed %d, available %d", + parse->common.offset, id, length, needed, available); if (needed > available) return GST_FLOW_OK; @@ -4915,7 +3105,7 @@ gst_matroska_parse_handle_sink_event (GstPad * pad, GstEvent * event) "received format %d newsegment %" GST_SEGMENT_FORMAT, format, &segment); - if (parse->state < GST_MATROSKA_PARSE_STATE_DATA) { + if (parse->common.state < GST_MATROSKA_READ_STATE_DATA) { GST_DEBUG_OBJECT (parse, "still starting"); goto exit; } @@ -4928,17 +3118,17 @@ gst_matroska_parse_handle_sink_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (parse, "clearing segment state"); /* clear current segment leftover */ - gst_adapter_clear (parse->adapter); + gst_adapter_clear (parse->common.adapter); /* and some streaming setup */ - parse->offset = start; + parse->common.offset = start; /* do not know where we are; * need to come across a cluster and generate newsegment */ - parse->segment.last_stop = GST_CLOCK_TIME_NONE; + parse->common.segment.last_stop = GST_CLOCK_TIME_NONE; parse->cluster_time = GST_CLOCK_TIME_NONE; parse->cluster_offset = 0; parse->need_newsegment = TRUE; /* but keep some of the upstream segment */ - parse->segment.rate = rate; + parse->common.segment.rate = rate; exit: /* chain will send initial newsegment after pads have been added, * or otherwise come up with one */ @@ -4949,11 +3139,11 @@ gst_matroska_parse_handle_sink_event (GstPad * pad, GstEvent * event) } case GST_EVENT_EOS: { - if (parse->state != GST_MATROSKA_PARSE_STATE_DATA) { + if (parse->common.state != GST_MATROSKA_READ_STATE_DATA) { gst_event_unref (event); GST_ELEMENT_ERROR (parse, STREAM, DEMUX, (NULL), ("got eos and didn't receive a complete header object")); - } else if (parse->num_streams == 0) { + } else if (parse->common.num_streams == 0) { GST_ELEMENT_ERROR (parse, STREAM, DEMUX, (NULL), ("got eos but no streams (yet)")); } else { @@ -4963,11 +3153,12 @@ gst_matroska_parse_handle_sink_event (GstPad * pad, GstEvent * event) } case GST_EVENT_FLUSH_STOP: { - gst_adapter_clear (parse->adapter); + gst_adapter_clear (parse->common.adapter); GST_OBJECT_LOCK (parse); - gst_matroska_parse_reset_streams (parse, GST_CLOCK_TIME_NONE, TRUE); + gst_matroska_read_common_reset_streams (&parse->common, + GST_CLOCK_TIME_NONE, TRUE); GST_OBJECT_UNLOCK (parse); - parse->segment.last_stop = GST_CLOCK_TIME_NONE; + parse->common.segment.last_stop = GST_CLOCK_TIME_NONE; parse->cluster_time = GST_CLOCK_TIME_NONE; parse->cluster_offset = 0; /* fall-through */ @@ -4986,11 +3177,12 @@ gst_matroska_parse_set_index (GstElement * element, GstIndex * index) GstMatroskaParse *parse = GST_MATROSKA_PARSE (element); GST_OBJECT_LOCK (parse); - if (parse->element_index) - gst_object_unref (parse->element_index); - parse->element_index = index ? gst_object_ref (index) : NULL; + if (parse->common.element_index) + gst_object_unref (parse->common.element_index); + parse->common.element_index = index ? gst_object_ref (index) : NULL; GST_OBJECT_UNLOCK (parse); - GST_DEBUG_OBJECT (parse, "Set index %" GST_PTR_FORMAT, parse->element_index); + GST_DEBUG_OBJECT (parse, "Set index %" GST_PTR_FORMAT, + parse->common.element_index); } static GstIndex * @@ -5000,8 +3192,8 @@ gst_matroska_parse_get_index (GstElement * element) GstMatroskaParse *parse = GST_MATROSKA_PARSE (element); GST_OBJECT_LOCK (parse); - if (parse->element_index) - result = gst_object_ref (parse->element_index); + if (parse->common.element_index) + result = gst_object_ref (parse->common.element_index); GST_OBJECT_UNLOCK (parse); GST_DEBUG_OBJECT (parse, "Returning index %" GST_PTR_FORMAT, result); diff --git a/gst/matroska/matroska-parse.h b/gst/matroska/matroska-parse.h index 595ead2..a447e77 100644 --- a/gst/matroska/matroska-parse.h +++ b/gst/matroska/matroska-parse.h @@ -1,5 +1,6 @@ /* GStreamer Matroska muxer/demuxer * (c) 2003 Ronald Bultje + * (c) 2011 Debarshi Ray * * matroska-parse.h: matroska file/stream parseer definition * @@ -23,10 +24,10 @@ #define __GST_MATROSKA_PARSE_H__ #include -#include #include "ebml-read.h" #include "matroska-ids.h" +#include "matroska-read-common.h" G_BEGIN_DECLS @@ -41,29 +42,16 @@ G_BEGIN_DECLS #define GST_IS_MATROSKA_PARSE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MATROSKA_PARSE)) -typedef enum { - GST_MATROSKA_PARSE_STATE_START, - GST_MATROSKA_PARSE_STATE_SEGMENT, - GST_MATROSKA_PARSE_STATE_HEADER, - GST_MATROSKA_PARSE_STATE_DATA, - GST_MATROSKA_PARSE_STATE_SEEK, - GST_MATROSKA_PARSE_STATE_SCANNING -} GstMatroskaParseState; - typedef struct _GstMatroskaParse { GstElement parent; /* < private > */ - GstIndex *element_index; - gint element_index_writer_id; + GstMatroskaReadCommon common; /* pads */ - GstPad *sinkpad; GstPad *srcpad; - GPtrArray *src; GstClock *clock; - guint num_streams; guint num_v_streams; guint num_a_streams; guint num_t_streams; @@ -72,57 +60,29 @@ typedef struct _GstMatroskaParse { gboolean pushed_headers; GstClockTime last_timestamp; - /* metadata */ - gchar *muxing_app; - gchar *writing_app; - gint64 created; - /* state */ //gboolean streaming; - GstMatroskaParseState state; guint level_up; guint64 seek_block; gboolean seek_first; /* did we parse cues/tracks/segmentinfo already? */ - gboolean index_parsed; gboolean tracks_parsed; - gboolean segmentinfo_parsed; - gboolean attachments_parsed; - GList *tags_parsed; GList *seek_parsed; - /* start-of-segment */ - guint64 ebml_segment_start; - - /* a cue (index) table */ - GArray *index; - - /* timescale in the file */ - guint64 time_scale; - /* keeping track of playback position */ - GstSegment segment; gboolean segment_running; GstClockTime last_stop_end; GstEvent *close_segment; GstEvent *new_segment; - GstTagList *global_tags; - - /* pull mode caching */ - GstBuffer *cached_buffer; - /* push and pull mode */ - guint64 offset; /* some state saving */ GstClockTime cluster_time; guint64 cluster_offset; guint64 first_cluster_offset; guint64 next_cluster_offset; - /* push based mode usual suspects */ - GstAdapter *adapter; /* index stuff */ gboolean seekable; gboolean building_index; diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c new file mode 100644 index 0000000..1104acc --- /dev/null +++ b/gst/matroska/matroska-read-common.c @@ -0,0 +1,1951 @@ +/* GStreamer Matroska muxer/demuxer + * (c) 2003 Ronald Bultje + * (c) 2006 Tim-Philipp Müller + * (c) 2008 Sebastian Dröge + * (c) 2011 Debarshi Ray + * + * matroska-read-common.c: shared by matroska file/stream demuxer and parser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#ifdef HAVE_ZLIB +#include +#endif + +#ifdef HAVE_BZ2 +#include +#endif + +#include +#include + +#include "lzo.h" + +#include "ebml-read.h" +#include "matroska-read-common.h" + +GST_DEBUG_CATEGORY (matroskareadcommon_debug); +#define GST_CAT_DEFAULT matroskareadcommon_debug + +#define DEBUG_ELEMENT_START(common, ebml, element) \ + GST_DEBUG_OBJECT (common, "Parsing " element " element at offset %" \ + G_GUINT64_FORMAT, gst_ebml_read_get_pos (ebml)) + +#define DEBUG_ELEMENT_STOP(common, ebml, element, ret) \ + GST_DEBUG_OBJECT (common, "Parsing " element " element " \ + " finished with '%s'", gst_flow_get_name (ret)) + +static gboolean +gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc, + guint8 ** data_out, guint * size_out, + GstMatroskaTrackCompressionAlgorithm algo) +{ + guint8 *new_data = NULL; + guint new_size = 0; + guint8 *data = *data_out; + guint size = *size_out; + gboolean ret = TRUE; + + if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_ZLIB) { +#ifdef HAVE_ZLIB + /* zlib encoded data */ + z_stream zstream; + guint orig_size; + int result; + + orig_size = size; + zstream.zalloc = (alloc_func) 0; + zstream.zfree = (free_func) 0; + zstream.opaque = (voidpf) 0; + if (inflateInit (&zstream) != Z_OK) { + GST_WARNING ("zlib initialization failed."); + ret = FALSE; + goto out; + } + zstream.next_in = (Bytef *) data; + zstream.avail_in = orig_size; + new_size = orig_size; + new_data = g_malloc (new_size); + zstream.avail_out = new_size; + zstream.next_out = (Bytef *) new_data; + + do { + result = inflate (&zstream, Z_NO_FLUSH); + if (result != Z_OK && result != Z_STREAM_END) { + GST_WARNING ("zlib decompression failed."); + g_free (new_data); + inflateEnd (&zstream); + break; + } + new_size += 4000; + new_data = g_realloc (new_data, new_size); + zstream.next_out = (Bytef *) (new_data + zstream.total_out); + zstream.avail_out += 4000; + } while (zstream.avail_in != 0 && result != Z_STREAM_END); + + if (result != Z_STREAM_END) { + ret = FALSE; + goto out; + } else { + new_size = zstream.total_out; + inflateEnd (&zstream); + } +#else + GST_WARNING ("zlib encoded tracks not supported."); + ret = FALSE; + goto out; +#endif + } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_BZLIB) { +#ifdef HAVE_BZ2 + /* bzip2 encoded data */ + bz_stream bzstream; + guint orig_size; + int result; + + bzstream.bzalloc = NULL; + bzstream.bzfree = NULL; + bzstream.opaque = NULL; + orig_size = size; + + if (BZ2_bzDecompressInit (&bzstream, 0, 0) != BZ_OK) { + GST_WARNING ("bzip2 initialization failed."); + ret = FALSE; + goto out; + } + + bzstream.next_in = (char *) data; + bzstream.avail_in = orig_size; + new_size = orig_size; + new_data = g_malloc (new_size); + bzstream.avail_out = new_size; + bzstream.next_out = (char *) new_data; + + do { + result = BZ2_bzDecompress (&bzstream); + if (result != BZ_OK && result != BZ_STREAM_END) { + GST_WARNING ("bzip2 decompression failed."); + g_free (new_data); + BZ2_bzDecompressEnd (&bzstream); + break; + } + new_size += 4000; + new_data = g_realloc (new_data, new_size); + bzstream.next_out = (char *) (new_data + bzstream.total_out_lo32); + bzstream.avail_out += 4000; + } while (bzstream.avail_in != 0 && result != BZ_STREAM_END); + + if (result != BZ_STREAM_END) { + ret = FALSE; + goto out; + } else { + new_size = bzstream.total_out_lo32; + BZ2_bzDecompressEnd (&bzstream); + } +#else + GST_WARNING ("bzip2 encoded tracks not supported."); + ret = FALSE; + goto out; +#endif + } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_LZO1X) { + /* lzo encoded data */ + int result; + int orig_size, out_size; + + orig_size = size; + out_size = size; + new_size = size; + new_data = g_malloc (new_size); + + do { + orig_size = size; + out_size = new_size; + + result = lzo1x_decode (new_data, &out_size, data, &orig_size); + + if (orig_size > 0) { + new_size += 4000; + new_data = g_realloc (new_data, new_size); + } + } while (orig_size > 0 && result == LZO_OUTPUT_FULL); + + new_size -= out_size; + + if (result != LZO_OUTPUT_FULL) { + GST_WARNING ("lzo decompression failed"); + g_free (new_data); + + ret = FALSE; + goto out; + } + + } else if (algo == GST_MATROSKA_TRACK_COMPRESSION_ALGORITHM_HEADERSTRIP) { + /* header stripped encoded data */ + if (enc->comp_settings_length > 0) { + new_data = g_malloc (size + enc->comp_settings_length); + new_size = size + enc->comp_settings_length; + + memcpy (new_data, enc->comp_settings, enc->comp_settings_length); + memcpy (new_data + enc->comp_settings_length, data, size); + } + } else { + GST_ERROR ("invalid compression algorithm %d", algo); + ret = FALSE; + } + +out: + + if (!ret) { + *data_out = NULL; + *size_out = 0; + } else { + *data_out = new_data; + *size_out = new_size; + } + + return ret; +} + +GstFlowReturn +gst_matroska_decode_content_encodings (GArray * encodings) +{ + gint i; + + if (encodings == NULL) + return GST_FLOW_OK; + + for (i = 0; i < encodings->len; i++) { + GstMatroskaTrackEncoding *enc = + &g_array_index (encodings, GstMatroskaTrackEncoding, i); + guint8 *data = NULL; + guint size; + + if ((enc->scope & GST_MATROSKA_TRACK_ENCODING_SCOPE_NEXT_CONTENT_ENCODING) + == 0) + continue; + + /* Encryption not supported yet */ + if (enc->type != 0) + return GST_FLOW_ERROR; + + if (i + 1 >= encodings->len) + return GST_FLOW_ERROR; + + if (enc->comp_settings_length == 0) + continue; + + data = enc->comp_settings; + size = enc->comp_settings_length; + + if (!gst_matroska_decompress_data (enc, &data, &size, enc->comp_algo)) + return GST_FLOW_ERROR; + + g_free (enc->comp_settings); + + enc->comp_settings = data; + enc->comp_settings_length = size; + } + + return GST_FLOW_OK; +} + +gboolean +gst_matroska_decode_data (GArray * encodings, guint8 ** data_out, + guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free) +{ + guint8 *data; + guint size; + gboolean ret = TRUE; + gint i; + + g_return_val_if_fail (encodings != NULL, FALSE); + g_return_val_if_fail (data_out != NULL && *data_out != NULL, FALSE); + g_return_val_if_fail (size_out != NULL, FALSE); + + data = *data_out; + size = *size_out; + + for (i = 0; i < encodings->len; i++) { + GstMatroskaTrackEncoding *enc = + &g_array_index (encodings, GstMatroskaTrackEncoding, i); + guint8 *new_data = NULL; + guint new_size = 0; + + if ((enc->scope & scope) == 0) + continue; + + /* Encryption not supported yet */ + if (enc->type != 0) { + ret = FALSE; + break; + } + + new_data = data; + new_size = size; + + ret = + gst_matroska_decompress_data (enc, &new_data, &new_size, + enc->comp_algo); + + if (!ret) + break; + + if ((data == *data_out && free) || (data != *data_out)) + g_free (data); + + data = new_data; + size = new_size; + } + + if (!ret) { + if ((data == *data_out && free) || (data != *data_out)) + g_free (data); + + *data_out = NULL; + *size_out = 0; + } else { + *data_out = data; + *size_out = size; + } + + return ret; +} + +static gint +gst_matroska_index_compare (GstMatroskaIndex * i1, GstMatroskaIndex * i2) +{ + if (i1->time < i2->time) + return -1; + else if (i1->time > i2->time) + return 1; + else if (i1->block < i2->block) + return -1; + else if (i1->block > i2->block) + return 1; + else + return 0; +} + +gint +gst_matroska_index_seek_find (GstMatroskaIndex * i1, GstClockTime * time, + gpointer user_data) +{ + if (i1->time < *time) + return -1; + else if (i1->time > *time) + return 1; + else + return 0; +} + +GstMatroskaIndex * +gst_matroska_read_common_do_index_seek (GstMatroskaReadCommon * common, + GstMatroskaTrackContext * track, gint64 seek_pos, GArray ** _index, + gint * _entry_index) +{ + GstMatroskaIndex *entry = NULL; + GArray *index; + + if (!common->index || !common->index->len) + return NULL; + + /* find entry just before or at the requested position */ + if (track && track->index_table) + index = track->index_table; + else + index = common->index; + + entry = + gst_util_array_binary_search (index->data, index->len, + sizeof (GstMatroskaIndex), + (GCompareDataFunc) gst_matroska_index_seek_find, GST_SEARCH_MODE_BEFORE, + &seek_pos, NULL); + + if (entry == NULL) + entry = &g_array_index (index, GstMatroskaIndex, 0); + + if (_index) + *_index = index; + if (_entry_index) + *_entry_index = entry - (GstMatroskaIndex *) index->data; + + return entry; +} + +static gint +gst_matroska_read_common_encoding_cmp (GstMatroskaTrackEncoding * a, + GstMatroskaTrackEncoding * b) +{ + if (b->order > a->order) + return 1; + else if (b->order < a->order) + return -1; + else + return 0; +} + +static gboolean +gst_matroska_read_common_encoding_order_unique (GArray * encodings, guint64 + order) +{ + gint i; + + if (encodings == NULL || encodings->len == 0) + return TRUE; + + for (i = 0; i < encodings->len; i++) + if (g_array_index (encodings, GstMatroskaTrackEncoding, i).order == order) + return FALSE; + + return TRUE; +} + +/* takes ownership of taglist */ +void +gst_matroska_read_common_found_global_tag (GstMatroskaReadCommon * common, + GstElement * el, GstTagList * taglist) +{ + if (common->global_tags) { + /* nothing sent yet, add to cache */ + gst_tag_list_insert (common->global_tags, taglist, GST_TAG_MERGE_APPEND); + gst_tag_list_free (taglist); + } else { + /* hm, already sent, no need to cache and wait anymore */ + GST_DEBUG_OBJECT (common, "Sending late global tags %" GST_PTR_FORMAT, + taglist); + gst_element_found_tags (el, taglist); + } +} + +gint64 +gst_matroska_read_common_get_length (GstMatroskaReadCommon * common) +{ + GstFormat fmt = GST_FORMAT_BYTES; + gint64 end = -1; + + if (!gst_pad_query_peer_duration (common->sinkpad, &fmt, &end) || + fmt != GST_FORMAT_BYTES || end < 0) + GST_DEBUG_OBJECT (common, "no upstream length"); + + return end; +} + +/* determine track to seek in */ +GstMatroskaTrackContext * +gst_matroska_read_common_get_seek_track (GstMatroskaReadCommon * common, + GstMatroskaTrackContext * track) +{ + gint i; + + if (track && track->type == GST_MATROSKA_TRACK_TYPE_VIDEO) + return track; + + for (i = 0; i < common->src->len; i++) { + GstMatroskaTrackContext *stream; + + stream = g_ptr_array_index (common->src, i); + if (stream->type == GST_MATROSKA_TRACK_TYPE_VIDEO && stream->index_table) + track = stream; + } + + return track; +} + +/* skip unknown or alike element */ +GstFlowReturn +gst_matroska_read_common_parse_skip (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, const gchar * parent_name, guint id) +{ + if (id == GST_EBML_ID_VOID) { + GST_DEBUG_OBJECT (common, "Skipping EBML Void element"); + } else if (id == GST_EBML_ID_CRC32) { + GST_DEBUG_OBJECT (common, "Skipping EBML CRC32 element"); + } else { + GST_WARNING_OBJECT (common, + "Unknown %s subelement 0x%x - ignoring", parent_name, id); + } + + return gst_ebml_read_skip (ebml); +} + +static GstFlowReturn +gst_matroska_read_common_parse_attached_file (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, GstTagList * taglist) +{ + guint32 id; + GstFlowReturn ret; + gchar *description = NULL; + gchar *filename = NULL; + gchar *mimetype = NULL; + guint8 *data = NULL; + guint64 datalen = 0; + + DEBUG_ELEMENT_START (common, ebml, "AttachedFile"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "AttachedFile", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + /* read all sub-entries */ + + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_FILEDESCRIPTION: + if (description) { + GST_WARNING_OBJECT (common, "FileDescription can only appear once"); + break; + } + + ret = gst_ebml_read_utf8 (ebml, &id, &description); + GST_DEBUG_OBJECT (common, "FileDescription: %s", + GST_STR_NULL (description)); + break; + case GST_MATROSKA_ID_FILENAME: + if (filename) { + GST_WARNING_OBJECT (common, "FileName can only appear once"); + break; + } + + ret = gst_ebml_read_utf8 (ebml, &id, &filename); + + GST_DEBUG_OBJECT (common, "FileName: %s", GST_STR_NULL (filename)); + break; + case GST_MATROSKA_ID_FILEMIMETYPE: + if (mimetype) { + GST_WARNING_OBJECT (common, "FileMimeType can only appear once"); + break; + } + + ret = gst_ebml_read_ascii (ebml, &id, &mimetype); + GST_DEBUG_OBJECT (common, "FileMimeType: %s", GST_STR_NULL (mimetype)); + break; + case GST_MATROSKA_ID_FILEDATA: + if (data) { + GST_WARNING_OBJECT (common, "FileData can only appear once"); + break; + } + + ret = gst_ebml_read_binary (ebml, &id, &data, &datalen); + GST_DEBUG_OBJECT (common, "FileData of size %" G_GUINT64_FORMAT, + datalen); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, + "AttachedFile", id); + break; + case GST_MATROSKA_ID_FILEUID: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "AttachedFile", ret); + + if (filename && mimetype && data && datalen > 0) { + GstTagImageType image_type = GST_TAG_IMAGE_TYPE_NONE; + GstBuffer *tagbuffer = NULL; + GstCaps *caps; + gchar *filename_lc = g_utf8_strdown (filename, -1); + + GST_DEBUG_OBJECT (common, "Creating tag for attachment with " + "filename '%s', mimetype '%s', description '%s', " + "size %" G_GUINT64_FORMAT, filename, mimetype, + GST_STR_NULL (description), datalen); + + /* TODO: better heuristics for different image types */ + if (strstr (filename_lc, "cover")) { + if (strstr (filename_lc, "back")) + image_type = GST_TAG_IMAGE_TYPE_BACK_COVER; + else + image_type = GST_TAG_IMAGE_TYPE_FRONT_COVER; + } else if (g_str_has_prefix (mimetype, "image/") || + g_str_has_suffix (filename_lc, "png") || + g_str_has_suffix (filename_lc, "jpg") || + g_str_has_suffix (filename_lc, "jpeg") || + g_str_has_suffix (filename_lc, "gif") || + g_str_has_suffix (filename_lc, "bmp")) { + image_type = GST_TAG_IMAGE_TYPE_UNDEFINED; + } + g_free (filename_lc); + + /* First try to create an image tag buffer from this */ + if (image_type != GST_TAG_IMAGE_TYPE_NONE) { + tagbuffer = + gst_tag_image_data_to_image_buffer (data, datalen, image_type); + + if (!tagbuffer) + image_type = GST_TAG_IMAGE_TYPE_NONE; + } + + /* if this failed create an attachment buffer */ + if (!tagbuffer) { + tagbuffer = gst_buffer_new_and_alloc (datalen); + + memcpy (GST_BUFFER_DATA (tagbuffer), data, datalen); + GST_BUFFER_SIZE (tagbuffer) = datalen; + + caps = gst_type_find_helper_for_buffer (NULL, tagbuffer, NULL); + if (caps == NULL) + caps = gst_caps_new_simple (mimetype, NULL); + gst_buffer_set_caps (tagbuffer, caps); + gst_caps_unref (caps); + } + + /* Set filename and description on the caps */ + caps = GST_BUFFER_CAPS (tagbuffer); + gst_caps_set_simple (caps, "filename", G_TYPE_STRING, filename, NULL); + if (description) + gst_caps_set_simple (caps, "description", G_TYPE_STRING, description, + NULL); + + GST_DEBUG_OBJECT (common, + "Created attachment buffer with caps: %" GST_PTR_FORMAT, caps); + + /* and append to the tag list */ + if (image_type != GST_TAG_IMAGE_TYPE_NONE) + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, tagbuffer, + NULL); + else + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ATTACHMENT, + tagbuffer, NULL); + + /* the tag list adds it own ref */ + gst_buffer_unref (tagbuffer); + } + + g_free (filename); + g_free (mimetype); + g_free (data); + g_free (description); + + return ret; +} + +GstFlowReturn +gst_matroska_read_common_parse_attachments (GstMatroskaReadCommon * common, + GstElement * el, GstEbmlRead * ebml) +{ + guint32 id; + GstFlowReturn ret = GST_FLOW_OK; + GstTagList *taglist; + + DEBUG_ELEMENT_START (common, ebml, "Attachments"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "Attachments", ret); + return ret; + } + + taglist = gst_tag_list_new (); + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_ATTACHEDFILE: + ret = gst_matroska_read_common_parse_attached_file (common, ebml, + taglist); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, + "Attachments", id); + break; + } + } + DEBUG_ELEMENT_STOP (common, ebml, "Attachments", ret); + + if (gst_structure_n_fields (GST_STRUCTURE (taglist)) > 0) { + GST_DEBUG_OBJECT (common, "Storing attachment tags"); + gst_matroska_read_common_found_global_tag (common, el, taglist); + } else { + GST_DEBUG_OBJECT (common, "No valid attachments found"); + gst_tag_list_free (taglist); + } + + common->attachments_parsed = TRUE; + + return ret; +} + +GstFlowReturn +gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * common, + GstEbmlRead * ebml) +{ + guint32 id; + GstFlowReturn ret = GST_FLOW_OK; + + GST_WARNING_OBJECT (common, "Parsing of chapters not implemented yet"); + + /* TODO: implement parsing of chapters */ + + DEBUG_ELEMENT_START (common, ebml, "Chapters"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "Chapters", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + default: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "Chapters", ret); + return ret; +} + +GstFlowReturn +gst_matroska_read_common_parse_header (GstMatroskaReadCommon * common, + GstEbmlRead * ebml) +{ + GstFlowReturn ret; + gchar *doctype; + guint version; + guint32 id; + + /* this function is the first to be called */ + + /* default init */ + doctype = NULL; + version = 1; + + ret = gst_ebml_peek_id (ebml, &id); + if (ret != GST_FLOW_OK) + return ret; + + GST_DEBUG_OBJECT (common, "id: %08x", id); + + if (id != GST_EBML_ID_HEADER) { + GST_ERROR_OBJECT (common, "Failed to read header"); + goto exit; + } + + ret = gst_ebml_read_master (ebml, &id); + if (ret != GST_FLOW_OK) + return ret; + + while (gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + ret = gst_ebml_peek_id (ebml, &id); + if (ret != GST_FLOW_OK) + return ret; + + switch (id) { + /* is our read version uptodate? */ + case GST_EBML_ID_EBMLREADVERSION:{ + guint64 num; + + ret = gst_ebml_read_uint (ebml, &id, &num); + if (ret != GST_FLOW_OK) + return ret; + if (num != GST_EBML_VERSION) { + GST_ERROR_OBJECT (ebml, "Unsupported EBML version %" G_GUINT64_FORMAT, + num); + return GST_FLOW_ERROR; + } + + GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); + break; + } + + /* we only handle 8 byte lengths at max */ + case GST_EBML_ID_EBMLMAXSIZELENGTH:{ + guint64 num; + + ret = gst_ebml_read_uint (ebml, &id, &num); + if (ret != GST_FLOW_OK) + return ret; + if (num > sizeof (guint64)) { + GST_ERROR_OBJECT (ebml, + "Unsupported EBML maximum size %" G_GUINT64_FORMAT, num); + return GST_FLOW_ERROR; + } + GST_DEBUG_OBJECT (ebml, "EbmlMaxSizeLength: %" G_GUINT64_FORMAT, num); + break; + } + + /* we handle 4 byte IDs at max */ + case GST_EBML_ID_EBMLMAXIDLENGTH:{ + guint64 num; + + ret = gst_ebml_read_uint (ebml, &id, &num); + if (ret != GST_FLOW_OK) + return ret; + if (num > sizeof (guint32)) { + GST_ERROR_OBJECT (ebml, + "Unsupported EBML maximum ID %" G_GUINT64_FORMAT, num); + return GST_FLOW_ERROR; + } + GST_DEBUG_OBJECT (ebml, "EbmlMaxIdLength: %" G_GUINT64_FORMAT, num); + break; + } + + case GST_EBML_ID_DOCTYPE:{ + gchar *text; + + ret = gst_ebml_read_ascii (ebml, &id, &text); + if (ret != GST_FLOW_OK) + return ret; + + GST_DEBUG_OBJECT (ebml, "EbmlDocType: %s", GST_STR_NULL (text)); + + if (doctype) + g_free (doctype); + doctype = text; + break; + } + + case GST_EBML_ID_DOCTYPEREADVERSION:{ + guint64 num; + + ret = gst_ebml_read_uint (ebml, &id, &num); + if (ret != GST_FLOW_OK) + return ret; + version = num; + GST_DEBUG_OBJECT (ebml, "EbmlReadVersion: %" G_GUINT64_FORMAT, num); + break; + } + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, + "EBML header", id); + if (ret != GST_FLOW_OK) + return ret; + break; + + /* we ignore these two, as they don't tell us anything we care about */ + case GST_EBML_ID_EBMLVERSION: + case GST_EBML_ID_DOCTYPEVERSION: + ret = gst_ebml_read_skip (ebml); + if (ret != GST_FLOW_OK) + return ret; + break; + } + } + +exit: + + if ((doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_MATROSKA)) || + (doctype != NULL && !strcmp (doctype, GST_MATROSKA_DOCTYPE_WEBM)) || + (doctype == NULL)) { + if (version <= 2) { + if (doctype) { + GST_INFO_OBJECT (common, "Input is %s version %d", doctype, version); + } else { + GST_WARNING_OBJECT (common, "Input is EBML without doctype, assuming " + "matroska (version %d)", version); + } + ret = GST_FLOW_OK; + } else { + GST_ELEMENT_ERROR (common, STREAM, DEMUX, (NULL), + ("Demuxer version (2) is too old to read %s version %d", + GST_STR_NULL (doctype), version)); + ret = GST_FLOW_ERROR; + } + g_free (doctype); + } else { + GST_ELEMENT_ERROR (common, STREAM, WRONG_TYPE, (NULL), + ("Input is not a matroska stream (doctype=%s)", doctype)); + ret = GST_FLOW_ERROR; + g_free (doctype); + } + + return ret; +} + +static GstFlowReturn +gst_matroska_read_common_parse_index_cuetrack (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, guint * nentries) +{ + guint32 id; + GstFlowReturn ret; + GstMatroskaIndex idx; + + idx.pos = (guint64) - 1; + idx.track = 0; + idx.time = GST_CLOCK_TIME_NONE; + idx.block = 1; + + DEBUG_ELEMENT_START (common, ebml, "CueTrackPositions"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "CueTrackPositions", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + /* track number */ + case GST_MATROSKA_ID_CUETRACK: + { + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num == 0) { + idx.track = 0; + GST_WARNING_OBJECT (common, "Invalid CueTrack 0"); + break; + } + + GST_DEBUG_OBJECT (common, "CueTrack: %" G_GUINT64_FORMAT, num); + idx.track = num; + break; + } + + /* position in file */ + case GST_MATROSKA_ID_CUECLUSTERPOSITION: + { + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num > G_MAXINT64) { + GST_WARNING_OBJECT (common, "CueClusterPosition %" G_GUINT64_FORMAT + " too large", num); + break; + } + + idx.pos = num; + break; + } + + /* number of block in the cluster */ + case GST_MATROSKA_ID_CUEBLOCKNUMBER: + { + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num == 0) { + GST_WARNING_OBJECT (common, "Invalid CueBlockNumber 0"); + break; + } + + GST_DEBUG_OBJECT (common, "CueBlockNumber: %" G_GUINT64_FORMAT, num); + idx.block = num; + + /* mild sanity check, disregard strange cases ... */ + if (idx.block > G_MAXUINT16) { + GST_DEBUG_OBJECT (common, "... looks suspicious, ignoring"); + idx.block = 1; + } + break; + } + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, + "CueTrackPositions", id); + break; + + case GST_MATROSKA_ID_CUECODECSTATE: + case GST_MATROSKA_ID_CUEREFERENCE: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "CueTrackPositions", ret); + + /* (e.g.) lavf typically creates entries without a block number, + * which is bogus and leads to contradictory information */ + if (common->index->len) { + GstMatroskaIndex *last_idx; + + last_idx = &g_array_index (common->index, GstMatroskaIndex, + common->index->len - 1); + if (last_idx->block == idx.block && last_idx->pos == idx.pos && + last_idx->track == idx.track && idx.time > last_idx->time) { + GST_DEBUG_OBJECT (common, "Cue entry refers to same location, " + "but has different time than previous entry; discarding"); + idx.track = 0; + } + } + + if ((ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) + && idx.pos != (guint64) - 1 && idx.track > 0) { + g_array_append_val (common->index, idx); + (*nentries)++; + } else if (ret == GST_FLOW_OK || ret == GST_FLOW_UNEXPECTED) { + GST_DEBUG_OBJECT (common, "CueTrackPositions without valid content"); + } + + return ret; +} + +static GstFlowReturn +gst_matroska_read_common_parse_index_pointentry (GstMatroskaReadCommon * + common, GstEbmlRead * ebml) +{ + guint32 id; + GstFlowReturn ret; + GstClockTime time = GST_CLOCK_TIME_NONE; + guint nentries = 0; + + DEBUG_ELEMENT_START (common, ebml, "CuePoint"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "CuePoint", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + /* one single index entry ('point') */ + case GST_MATROSKA_ID_CUETIME: + { + if ((ret = gst_ebml_read_uint (ebml, &id, &time)) != GST_FLOW_OK) + break; + + GST_DEBUG_OBJECT (common, "CueTime: %" G_GUINT64_FORMAT, time); + time = time * common->time_scale; + break; + } + + /* position in the file + track to which it belongs */ + case GST_MATROSKA_ID_CUETRACKPOSITIONS: + { + if ((ret = + gst_matroska_read_common_parse_index_cuetrack (common, ebml, + &nentries)) != GST_FLOW_OK) + break; + break; + } + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, "CuePoint", + id); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "CuePoint", ret); + + if (nentries > 0) { + if (time == GST_CLOCK_TIME_NONE) { + GST_WARNING_OBJECT (common, "CuePoint without valid time"); + g_array_remove_range (common->index, common->index->len - nentries, + nentries); + } else { + gint i; + + for (i = common->index->len - nentries; i < common->index->len; i++) { + GstMatroskaIndex *idx = + &g_array_index (common->index, GstMatroskaIndex, i); + + idx->time = time; + GST_DEBUG_OBJECT (common, "Index entry: pos=%" G_GUINT64_FORMAT + ", time=%" GST_TIME_FORMAT ", track=%u, block=%u", idx->pos, + GST_TIME_ARGS (idx->time), (guint) idx->track, (guint) idx->block); + } + } + } else { + GST_DEBUG_OBJECT (common, "Empty CuePoint"); + } + + return ret; +} + +gint +gst_matroska_read_common_stream_from_num (GstMatroskaReadCommon * common, + guint track_num) +{ + guint n; + + g_assert (common->src->len == common->num_streams); + for (n = 0; n < common->src->len; n++) { + GstMatroskaTrackContext *context = g_ptr_array_index (common->src, n); + + if (context->num == track_num) { + return n; + } + } + + if (n == common->num_streams) + GST_WARNING_OBJECT (common, + "Failed to find corresponding pad for tracknum %d", track_num); + + return -1; +} + +GstFlowReturn +gst_matroska_read_common_parse_index (GstMatroskaReadCommon * common, + GstEbmlRead * ebml) +{ + guint32 id; + GstFlowReturn ret = GST_FLOW_OK; + guint i; + + if (common->index) + g_array_free (common->index, TRUE); + common->index = + g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); + + DEBUG_ELEMENT_START (common, ebml, "Cues"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "Cues", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + /* one single index entry ('point') */ + case GST_MATROSKA_ID_POINTENTRY: + ret = gst_matroska_read_common_parse_index_pointentry (common, ebml); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, "Cues", id); + break; + } + } + DEBUG_ELEMENT_STOP (common, ebml, "Cues", ret); + + /* Sort index by time, smallest time first, for easier searching */ + g_array_sort (common->index, (GCompareFunc) gst_matroska_index_compare); + + /* Now sort the track specific index entries into their own arrays */ + for (i = 0; i < common->index->len; i++) { + GstMatroskaIndex *idx = &g_array_index (common->index, GstMatroskaIndex, + i); + gint track_num; + GstMatroskaTrackContext *ctx; + + if (common->element_index) { + gint writer_id; + + if (idx->track != 0 && + (track_num = + gst_matroska_read_common_stream_from_num (common, + idx->track)) != -1) { + ctx = g_ptr_array_index (common->src, track_num); + + if (ctx->index_writer_id == -1) + gst_index_get_writer_id (common->element_index, + GST_OBJECT (ctx->pad), &ctx->index_writer_id); + writer_id = ctx->index_writer_id; + } else { + if (common->element_index_writer_id == -1) + gst_index_get_writer_id (common->element_index, GST_OBJECT (common), + &common->element_index_writer_id); + writer_id = common->element_index_writer_id; + } + + GST_LOG_OBJECT (common, "adding association %" GST_TIME_FORMAT "-> %" + G_GUINT64_FORMAT " for writer id %d", GST_TIME_ARGS (idx->time), + idx->pos, writer_id); + gst_index_add_association (common->element_index, writer_id, + GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, idx->time, + GST_FORMAT_BYTES, idx->pos + common->ebml_segment_start, NULL); + } + + if (idx->track == 0) + continue; + + track_num = gst_matroska_read_common_stream_from_num (common, idx->track); + if (track_num == -1) + continue; + + ctx = g_ptr_array_index (common->src, track_num); + + if (ctx->index_table == NULL) + ctx->index_table = + g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaIndex), 128); + + g_array_append_vals (ctx->index_table, idx, 1); + } + + common->index_parsed = TRUE; + + /* sanity check; empty index normalizes to no index */ + if (common->index->len == 0) { + g_array_free (common->index, TRUE); + common->index = NULL; + } + + return ret; +} + +GstFlowReturn +gst_matroska_read_common_parse_info (GstMatroskaReadCommon * common, + GstElement * el, GstEbmlRead * ebml) +{ + GstFlowReturn ret = GST_FLOW_OK; + gdouble dur_f = -1.0; + guint32 id; + + DEBUG_ELEMENT_START (common, ebml, "SegmentInfo"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "SegmentInfo", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + /* cluster timecode */ + case GST_MATROSKA_ID_TIMECODESCALE:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + + GST_DEBUG_OBJECT (common, "TimeCodeScale: %" G_GUINT64_FORMAT, num); + common->time_scale = num; + break; + } + + case GST_MATROSKA_ID_DURATION:{ + if ((ret = gst_ebml_read_float (ebml, &id, &dur_f)) != GST_FLOW_OK) + break; + + if (dur_f <= 0.0) { + GST_WARNING_OBJECT (common, "Invalid duration %lf", dur_f); + break; + } + + GST_DEBUG_OBJECT (common, "Duration: %lf", dur_f); + break; + } + + case GST_MATROSKA_ID_WRITINGAPP:{ + gchar *text; + + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; + + GST_DEBUG_OBJECT (common, "WritingApp: %s", GST_STR_NULL (text)); + common->writing_app = text; + break; + } + + case GST_MATROSKA_ID_MUXINGAPP:{ + gchar *text; + + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; + + GST_DEBUG_OBJECT (common, "MuxingApp: %s", GST_STR_NULL (text)); + common->muxing_app = text; + break; + } + + case GST_MATROSKA_ID_DATEUTC:{ + gint64 time; + + if ((ret = gst_ebml_read_date (ebml, &id, &time)) != GST_FLOW_OK) + break; + + GST_DEBUG_OBJECT (common, "DateUTC: %" G_GINT64_FORMAT, time); + common->created = time; + break; + } + + case GST_MATROSKA_ID_TITLE:{ + gchar *text; + GstTagList *taglist; + + if ((ret = gst_ebml_read_utf8 (ebml, &id, &text)) != GST_FLOW_OK) + break; + + GST_DEBUG_OBJECT (common, "Title: %s", GST_STR_NULL (text)); + taglist = gst_tag_list_new (); + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, text, + NULL); + gst_matroska_read_common_found_global_tag (common, el, taglist); + g_free (text); + break; + } + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, + "SegmentInfo", id); + break; + + /* fall through */ + case GST_MATROSKA_ID_SEGMENTUID: + case GST_MATROSKA_ID_SEGMENTFILENAME: + case GST_MATROSKA_ID_PREVUID: + case GST_MATROSKA_ID_PREVFILENAME: + case GST_MATROSKA_ID_NEXTUID: + case GST_MATROSKA_ID_NEXTFILENAME: + case GST_MATROSKA_ID_SEGMENTFAMILY: + case GST_MATROSKA_ID_CHAPTERTRANSLATE: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + if (dur_f > 0.0) { + GstClockTime dur_u; + + dur_u = gst_gdouble_to_guint64 (dur_f * + gst_guint64_to_gdouble (common->time_scale)); + if (GST_CLOCK_TIME_IS_VALID (dur_u) && dur_u <= G_MAXINT64) + gst_segment_set_duration (&common->segment, GST_FORMAT_TIME, dur_u); + } + + DEBUG_ELEMENT_STOP (common, ebml, "SegmentInfo", ret); + + common->segmentinfo_parsed = TRUE; + + return ret; +} + +static GstFlowReturn +gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon * + common, GstEbmlRead * ebml, GstTagList ** p_taglist) +{ + /* FIXME: check if there are more useful mappings */ + static const struct + { + const gchar *matroska_tagname; + const gchar *gstreamer_tagname; + } + tag_conv[] = { + { + GST_MATROSKA_TAG_ID_TITLE, GST_TAG_TITLE}, { + GST_MATROSKA_TAG_ID_ARTIST, GST_TAG_ARTIST}, { + GST_MATROSKA_TAG_ID_AUTHOR, GST_TAG_ARTIST}, { + GST_MATROSKA_TAG_ID_ALBUM, GST_TAG_ALBUM}, { + GST_MATROSKA_TAG_ID_COMMENTS, GST_TAG_COMMENT}, { + GST_MATROSKA_TAG_ID_BITSPS, GST_TAG_BITRATE}, { + GST_MATROSKA_TAG_ID_BPS, GST_TAG_BITRATE}, { + GST_MATROSKA_TAG_ID_ENCODER, GST_TAG_ENCODER}, { + GST_MATROSKA_TAG_ID_DATE, GST_TAG_DATE}, { + GST_MATROSKA_TAG_ID_ISRC, GST_TAG_ISRC}, { + GST_MATROSKA_TAG_ID_COPYRIGHT, GST_TAG_COPYRIGHT}, { + GST_MATROSKA_TAG_ID_BPM, GST_TAG_BEATS_PER_MINUTE}, { + GST_MATROSKA_TAG_ID_TERMS_OF_USE, GST_TAG_LICENSE}, { + GST_MATROSKA_TAG_ID_COMPOSER, GST_TAG_COMPOSER}, { + GST_MATROSKA_TAG_ID_LEAD_PERFORMER, GST_TAG_PERFORMER}, { + GST_MATROSKA_TAG_ID_GENRE, GST_TAG_GENRE} + }; + GstFlowReturn ret; + guint32 id; + gchar *value = NULL; + gchar *tag = NULL; + + DEBUG_ELEMENT_START (common, ebml, "SimpleTag"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "SimpleTag", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + /* read all sub-entries */ + + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_TAGNAME: + g_free (tag); + tag = NULL; + ret = gst_ebml_read_ascii (ebml, &id, &tag); + GST_DEBUG_OBJECT (common, "TagName: %s", GST_STR_NULL (tag)); + break; + + case GST_MATROSKA_ID_TAGSTRING: + g_free (value); + value = NULL; + ret = gst_ebml_read_utf8 (ebml, &id, &value); + GST_DEBUG_OBJECT (common, "TagString: %s", GST_STR_NULL (value)); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, "SimpleTag", + id); + break; + /* fall-through */ + + case GST_MATROSKA_ID_TAGLANGUAGE: + case GST_MATROSKA_ID_TAGDEFAULT: + case GST_MATROSKA_ID_TAGBINARY: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "SimpleTag", ret); + + if (tag && value) { + guint i; + + for (i = 0; i < G_N_ELEMENTS (tag_conv); i++) { + const gchar *tagname_gst = tag_conv[i].gstreamer_tagname; + + const gchar *tagname_mkv = tag_conv[i].matroska_tagname; + + if (strcmp (tagname_mkv, tag) == 0) { + GValue dest = { 0, }; + GType dest_type = gst_tag_get_type (tagname_gst); + + /* Ensure that any date string is complete */ + if (dest_type == GST_TYPE_DATE) { + guint year = 1901, month = 1, day = 1; + + /* Dates can be yyyy-MM-dd, yyyy-MM or yyyy, but we need + * the first type */ + if (sscanf (value, "%04u-%02u-%02u", &year, &month, &day) != 0) { + g_free (value); + value = g_strdup_printf ("%04u-%02u-%02u", year, month, day); + } + } + + g_value_init (&dest, dest_type); + if (gst_value_deserialize (&dest, value)) { + gst_tag_list_add_values (*p_taglist, GST_TAG_MERGE_APPEND, + tagname_gst, &dest, NULL); + } else { + GST_WARNING_OBJECT (common, "Can't transform tag '%s' with " + "value '%s' to target type '%s'", tag, value, + g_type_name (dest_type)); + } + g_value_unset (&dest); + break; + } + } + } + + g_free (tag); + g_free (value); + + return ret; +} + +static GstFlowReturn +gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, GstTagList ** p_taglist) +{ + guint32 id; + GstFlowReturn ret; + + DEBUG_ELEMENT_START (common, ebml, "Tag"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + /* read all sub-entries */ + + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_SIMPLETAG: + ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common, + ebml, p_taglist); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, "Tag", id); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret); + + return ret; +} + +GstFlowReturn +gst_matroska_read_common_parse_metadata (GstMatroskaReadCommon * common, + GstElement * el, GstEbmlRead * ebml) +{ + GstTagList *taglist; + GstFlowReturn ret = GST_FLOW_OK; + guint32 id; + GList *l; + guint64 curpos; + + curpos = gst_ebml_read_get_pos (ebml); + + /* Make sure we don't parse a tags element twice and + * post it's tags twice */ + curpos = gst_ebml_read_get_pos (ebml); + for (l = common->tags_parsed; l; l = l->next) { + guint64 *pos = l->data; + + if (*pos == curpos) { + GST_DEBUG_OBJECT (common, "Skipping already parsed Tags at offset %" + G_GUINT64_FORMAT, curpos); + return GST_FLOW_OK; + } + } + + common->tags_parsed = + g_list_prepend (common->tags_parsed, g_slice_new (guint64)); + *((guint64 *) common->tags_parsed->data) = curpos; + /* fall-through */ + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "Tags", ret); + return ret; + } + + taglist = gst_tag_list_new (); + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_TAG: + ret = gst_matroska_read_common_parse_metadata_id_tag (common, ebml, + &taglist); + break; + + default: + ret = gst_matroska_read_common_parse_skip (common, ebml, "Tags", id); + break; + /* FIXME: Use to limit the tags to specific pads */ + case GST_MATROSKA_ID_TARGETS: + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "Tags", ret); + + gst_matroska_read_common_found_global_tag (common, el, taglist); + + return ret; +} + +static GstFlowReturn +gst_matroska_read_common_peek_adapter (GstMatroskaReadCommon * common, guint + peek, const guint8 ** data) +{ + *data = gst_adapter_peek (common->adapter, peek); + if (*data == NULL) + return GST_FLOW_UNEXPECTED; + + return GST_FLOW_OK; +} + +/* + * Calls pull_range for (offset,size) without advancing our offset + */ +GstFlowReturn +gst_matroska_read_common_peek_bytes (GstMatroskaReadCommon * common, guint64 + offset, guint size, GstBuffer ** p_buf, guint8 ** bytes) +{ + GstFlowReturn ret; + + /* Caching here actually makes much less difference than one would expect. + * We do it mainly to avoid pulling buffers of 1 byte all the time */ + if (common->cached_buffer) { + guint64 cache_offset = GST_BUFFER_OFFSET (common->cached_buffer); + guint cache_size = GST_BUFFER_SIZE (common->cached_buffer); + + if (cache_offset <= common->offset && + (common->offset + size) <= (cache_offset + cache_size)) { + if (p_buf) + *p_buf = gst_buffer_create_sub (common->cached_buffer, + common->offset - cache_offset, size); + if (bytes) + *bytes = GST_BUFFER_DATA (common->cached_buffer) + common->offset - + cache_offset; + return GST_FLOW_OK; + } + /* not enough data in the cache, free cache and get a new one */ + gst_buffer_unref (common->cached_buffer); + common->cached_buffer = NULL; + } + + /* refill the cache */ + ret = gst_pad_pull_range (common->sinkpad, common->offset, + MAX (size, 64 * 1024), &common->cached_buffer); + if (ret != GST_FLOW_OK) { + common->cached_buffer = NULL; + return ret; + } + + if (GST_BUFFER_SIZE (common->cached_buffer) >= size) { + if (p_buf) + *p_buf = gst_buffer_create_sub (common->cached_buffer, 0, size); + if (bytes) + *bytes = GST_BUFFER_DATA (common->cached_buffer); + return GST_FLOW_OK; + } + + /* Not possible to get enough data, try a last time with + * requesting exactly the size we need */ + gst_buffer_unref (common->cached_buffer); + common->cached_buffer = NULL; + + ret = + gst_pad_pull_range (common->sinkpad, common->offset, size, + &common->cached_buffer); + if (ret != GST_FLOW_OK) { + GST_DEBUG_OBJECT (common, "pull_range returned %d", ret); + if (p_buf) + *p_buf = NULL; + if (bytes) + *bytes = NULL; + return ret; + } + + if (GST_BUFFER_SIZE (common->cached_buffer) < size) { + GST_WARNING_OBJECT (common, "Dropping short buffer at offset %" + G_GUINT64_FORMAT ": wanted %u bytes, got %u bytes", common->offset, + size, GST_BUFFER_SIZE (common->cached_buffer)); + + gst_buffer_unref (common->cached_buffer); + common->cached_buffer = NULL; + if (p_buf) + *p_buf = NULL; + if (bytes) + *bytes = NULL; + return GST_FLOW_UNEXPECTED; + } + + if (p_buf) + *p_buf = gst_buffer_create_sub (common->cached_buffer, 0, size); + if (bytes) + *bytes = GST_BUFFER_DATA (common->cached_buffer); + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_matroska_read_common_peek_pull (GstMatroskaReadCommon * common, guint peek, + guint8 ** data) +{ + return gst_matroska_read_common_peek_bytes (common, common->offset, peek, + NULL, data); +} + +GstFlowReturn +gst_matroska_read_common_peek_id_length_pull (GstMatroskaReadCommon * common, + GstElement * el, guint32 * _id, guint64 * _length, guint * _needed) +{ + return gst_ebml_peek_id_length (_id, _length, _needed, + (GstPeekData) gst_matroska_read_common_peek_pull, (gpointer) common, el, + common->offset); +} + +GstFlowReturn +gst_matroska_read_common_peek_id_length_push (GstMatroskaReadCommon * common, + GstElement * el, guint32 * _id, guint64 * _length, guint * _needed) +{ + return gst_ebml_peek_id_length (_id, _length, _needed, + (GstPeekData) gst_matroska_read_common_peek_adapter, (gpointer) common, + el, common->offset); +} + +static GstFlowReturn +gst_matroska_read_common_read_track_encoding (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, GstMatroskaTrackContext * context) +{ + GstMatroskaTrackEncoding enc = { 0, }; + GstFlowReturn ret; + guint32 id; + + DEBUG_ELEMENT_START (common, ebml, "ContentEncoding"); + /* Set default values */ + enc.scope = 1; + /* All other default values are 0 */ + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "ContentEncoding", ret); + return ret; + } + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_CONTENTENCODINGORDER:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (!gst_matroska_read_common_encoding_order_unique (context->encodings, + num)) { + GST_ERROR_OBJECT (common, "ContentEncodingOrder %" G_GUINT64_FORMAT + "is not unique for track %d", num, context->num); + ret = GST_FLOW_ERROR; + break; + } + + GST_DEBUG_OBJECT (common, "ContentEncodingOrder: %" G_GUINT64_FORMAT, + num); + enc.order = num; + break; + } + case GST_MATROSKA_ID_CONTENTENCODINGSCOPE:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num > 7 && num == 0) { + GST_ERROR_OBJECT (common, "Invalid ContentEncodingScope %" + G_GUINT64_FORMAT, num); + ret = GST_FLOW_ERROR; + break; + } + + GST_DEBUG_OBJECT (common, "ContentEncodingScope: %" G_GUINT64_FORMAT, + num); + enc.scope = num; + + break; + } + case GST_MATROSKA_ID_CONTENTENCODINGTYPE:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) + break; + + if (num > 1) { + GST_ERROR_OBJECT (common, "Invalid ContentEncodingType %" + G_GUINT64_FORMAT, num); + ret = GST_FLOW_ERROR; + break; + } else if (num != 0) { + GST_ERROR_OBJECT (common, "Encrypted tracks are not supported yet"); + ret = GST_FLOW_ERROR; + break; + } + GST_DEBUG_OBJECT (common, "ContentEncodingType: %" G_GUINT64_FORMAT, + num); + enc.type = num; + break; + } + case GST_MATROSKA_ID_CONTENTCOMPRESSION:{ + + DEBUG_ELEMENT_START (common, ebml, "ContentCompression"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) + break; + + while (ret == GST_FLOW_OK && + gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_CONTENTCOMPALGO:{ + guint64 num; + + if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) { + break; + } + if (num > 3) { + GST_ERROR_OBJECT (common, "Invalid ContentCompAlgo %" + G_GUINT64_FORMAT, num); + ret = GST_FLOW_ERROR; + break; + } + GST_DEBUG_OBJECT (common, "ContentCompAlgo: %" G_GUINT64_FORMAT, + num); + enc.comp_algo = num; + + break; + } + case GST_MATROSKA_ID_CONTENTCOMPSETTINGS:{ + guint8 *data; + guint64 size; + + if ((ret = + gst_ebml_read_binary (ebml, &id, &data, + &size)) != GST_FLOW_OK) { + break; + } + enc.comp_settings = data; + enc.comp_settings_length = size; + GST_DEBUG_OBJECT (common, + "ContentCompSettings of size %" G_GUINT64_FORMAT, size); + break; + } + default: + GST_WARNING_OBJECT (common, + "Unknown ContentCompression subelement 0x%x - ignoring", id); + ret = gst_ebml_read_skip (ebml); + break; + } + } + DEBUG_ELEMENT_STOP (common, ebml, "ContentCompression", ret); + break; + } + + case GST_MATROSKA_ID_CONTENTENCRYPTION: + GST_ERROR_OBJECT (common, "Encrypted tracks not yet supported"); + gst_ebml_read_skip (ebml); + ret = GST_FLOW_ERROR; + break; + default: + GST_WARNING_OBJECT (common, + "Unknown ContentEncoding subelement 0x%x - ignoring", id); + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "ContentEncoding", ret); + if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) + return ret; + + /* TODO: Check if the combination of values is valid */ + + g_array_append_val (context->encodings, enc); + + return ret; +} + +GstFlowReturn +gst_matroska_read_common_read_track_encodings (GstMatroskaReadCommon * common, + GstEbmlRead * ebml, GstMatroskaTrackContext * context) +{ + GstFlowReturn ret; + guint32 id; + + DEBUG_ELEMENT_START (common, ebml, "ContentEncodings"); + + if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) { + DEBUG_ELEMENT_STOP (common, ebml, "ContentEncodings", ret); + return ret; + } + + context->encodings = + g_array_sized_new (FALSE, FALSE, sizeof (GstMatroskaTrackEncoding), 1); + + while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) { + if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK) + break; + + switch (id) { + case GST_MATROSKA_ID_CONTENTENCODING: + ret = gst_matroska_read_common_read_track_encoding (common, ebml, + context); + break; + default: + GST_WARNING_OBJECT (common, + "Unknown ContentEncodings subelement 0x%x - ignoring", id); + ret = gst_ebml_read_skip (ebml); + break; + } + } + + DEBUG_ELEMENT_STOP (common, ebml, "ContentEncodings", ret); + if (ret != GST_FLOW_OK && ret != GST_FLOW_UNEXPECTED) + return ret; + + /* Sort encodings according to their order */ + g_array_sort (context->encodings, + (GCompareFunc) gst_matroska_read_common_encoding_cmp); + + return gst_matroska_decode_content_encodings (context->encodings); +} + +/* call with object lock held */ +void +gst_matroska_read_common_reset_streams (GstMatroskaReadCommon * common, + GstClockTime time, gboolean full) +{ + gint i; + + GST_DEBUG_OBJECT (common, "resetting stream state"); + + g_assert (common->src->len == common->num_streams); + for (i = 0; i < common->src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (common->src, i); + context->pos = time; + context->set_discont = TRUE; + context->eos = FALSE; + context->from_time = GST_CLOCK_TIME_NONE; + +#ifdef MKV_DEMUX_MODIFICATION + context->found_next_kframe = FALSE; + context->num_frames_bw_keyframes = 0; + context->avg_duration_bw_keyframes = GST_CLOCK_TIME_NONE; + context->frames_to_show_bw_keyframes = 0; + context->prev_kframe_timestamp = GST_CLOCK_TIME_NONE; + context->next_kframe_timestamp = GST_CLOCK_TIME_NONE; + context->last_ts = GST_CLOCK_TIME_NONE; +#endif + + if (full) + context->last_flow = GST_FLOW_OK; + if (context->type == GST_MATROSKA_TRACK_TYPE_VIDEO) { + GstMatroskaTrackVideoContext *videocontext = + (GstMatroskaTrackVideoContext *) context; + /* demux object lock held by caller */ + videocontext->earliest_time = GST_CLOCK_TIME_NONE; + } + } +} + +gboolean +gst_matroska_read_common_tracknumber_unique (GstMatroskaReadCommon * common, + guint64 num) +{ + gint i; + + g_assert (common->src->len == common->num_streams); + for (i = 0; i < common->src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (common->src, i); + + if (context->num == num) + return FALSE; + } + + return TRUE; +} diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h new file mode 100644 index 0000000..cf617e6 --- /dev/null +++ b/gst/matroska/matroska-read-common.h @@ -0,0 +1,139 @@ +/* GStreamer Matroska muxer/demuxer + * (c) 2003 Ronald Bultje + * (c) 2011 Debarshi Ray + * + * matroska-read-common.h: shared by matroska file/stream demuxer and parser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MATROSKA_READ_COMMON_H__ +#define __GST_MATROSKA_READ_COMMON_H__ + +#include +#include +#include + +#include "matroska-ids.h" + +G_BEGIN_DECLS + +GST_DEBUG_CATEGORY_EXTERN(matroskareadcommon_debug); + +typedef enum { + GST_MATROSKA_READ_STATE_START, + GST_MATROSKA_READ_STATE_SEGMENT, + GST_MATROSKA_READ_STATE_HEADER, + GST_MATROSKA_READ_STATE_DATA, + GST_MATROSKA_READ_STATE_SEEK, + GST_MATROSKA_READ_STATE_SCANNING +} GstMatroskaReadState; + +typedef struct _GstMatroskaReadCommon { + GstIndex *element_index; + gint element_index_writer_id; + + /* pads */ + GstPad *sinkpad; + GPtrArray *src; + guint num_streams; + + /* metadata */ + gchar *muxing_app; + gchar *writing_app; + gint64 created; + + /* state */ + GstMatroskaReadState state; + + /* did we parse cues/tracks/segmentinfo already? */ + gboolean index_parsed; + gboolean segmentinfo_parsed; + gboolean attachments_parsed; + GList *tags_parsed; + + /* start-of-segment */ + guint64 ebml_segment_start; + + /* a cue (index) table */ + GArray *index; + + /* timescale in the file */ + guint64 time_scale; + + /* keeping track of playback position */ + GstSegment segment; + + GstTagList *global_tags; + + /* pull mode caching */ + GstBuffer *cached_buffer; + + /* push and pull mode */ + guint64 offset; + + /* push based mode usual suspects */ + GstAdapter *adapter; +} GstMatroskaReadCommon; + +GstFlowReturn gst_matroska_decode_content_encodings (GArray * encodings); +gboolean gst_matroska_decode_data (GArray * encodings, guint8 ** data_out, + guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free); +gint gst_matroska_index_seek_find (GstMatroskaIndex * i1, GstClockTime * time, + gpointer user_data); +GstMatroskaIndex * gst_matroska_read_common_do_index_seek ( + GstMatroskaReadCommon * common, GstMatroskaTrackContext * track, gint64 + seek_pos, GArray ** _index, gint * _entry_index); +void gst_matroska_read_common_found_global_tag (GstMatroskaReadCommon * common, + GstElement * el, GstTagList * taglist); +gint64 gst_matroska_read_common_get_length (GstMatroskaReadCommon * common); +GstMatroskaTrackContext * gst_matroska_read_common_get_seek_track ( + GstMatroskaReadCommon * common, GstMatroskaTrackContext * track); +GstFlowReturn gst_matroska_read_common_parse_index (GstMatroskaReadCommon * + common, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_info (GstMatroskaReadCommon * + common, GstElement * el, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_attachments ( + GstMatroskaReadCommon * common, GstElement * el, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_chapters (GstMatroskaReadCommon * + common, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_header (GstMatroskaReadCommon * + common, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_metadata (GstMatroskaReadCommon * + common, GstElement * el, GstEbmlRead * ebml); +GstFlowReturn gst_matroska_read_common_parse_skip (GstMatroskaReadCommon * + common, GstEbmlRead * ebml, const gchar * parent_name, guint id); +GstFlowReturn gst_matroska_read_common_peek_bytes (GstMatroskaReadCommon * + common, guint64 offset, guint size, GstBuffer ** p_buf, guint8 ** bytes); +GstFlowReturn gst_matroska_read_common_peek_id_length_pull (GstMatroskaReadCommon * + common, GstElement * el, guint32 * _id, guint64 * _length, guint * + _needed); +GstFlowReturn gst_matroska_read_common_peek_id_length_push (GstMatroskaReadCommon * + common, GstElement * el, guint32 * _id, guint64 * _length, guint * + _needed); +gint gst_matroska_read_common_stream_from_num (GstMatroskaReadCommon * common, + guint track_num); +GstFlowReturn gst_matroska_read_common_read_track_encodings ( + GstMatroskaReadCommon * common, GstEbmlRead * ebml, + GstMatroskaTrackContext * context); +void gst_matroska_read_common_reset_streams (GstMatroskaReadCommon * common, + GstClockTime time, gboolean full); +gboolean gst_matroska_read_common_tracknumber_unique (GstMatroskaReadCommon * + common, guint64 num); + +G_END_DECLS + +#endif /* __GST_MATROSKA_READ_COMMON_H__ */ diff --git a/gst/matroska/matroska.c b/gst/matroska/matroska.c index 57db7a3..5391400 100644 --- a/gst/matroska/matroska.c +++ b/gst/matroska/matroska.c @@ -25,6 +25,7 @@ #include "matroska-demux.h" #include "matroska-parse.h" +#include "matroska-read-common.h" #include "matroska-mux.h" #include "matroska-ids.h" #include "webm-mux.h" @@ -40,6 +41,9 @@ plugin_init (GstPlugin * plugin) gst_matroska_register_tags (); + GST_DEBUG_CATEGORY_INIT (matroskareadcommon_debug, "matroskareadcommon", 0, + "Matroska demuxer/parser shared debug"); + ret = gst_matroska_demux_plugin_init (plugin); ret &= gst_matroska_parse_plugin_init (plugin); ret &= gst_element_register (plugin, "matroskamux", GST_RANK_PRIMARY, diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c index 94584af..885c651 100644 --- a/gst/matroska/webm-mux.c +++ b/gst/matroska/webm-mux.c @@ -86,12 +86,12 @@ gst_webm_mux_class_init (GstWebMMuxClass * klass) { GstElementClass *gstelement_class = (GstElementClass *) klass; - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&webm_videosink_templ)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&webm_audiosink_templ)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&webm_src_templ)); + gst_element_class_add_static_pad_template (gstelement_class, + &webm_videosink_templ); + gst_element_class_add_static_pad_template (gstelement_class, + &webm_audiosink_templ); + gst_element_class_add_static_pad_template (gstelement_class, + &webm_src_templ); gst_element_class_set_details_simple (gstelement_class, "WebM muxer", "Codec/Muxer", "Muxes video and audio streams into a WebM stream", diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in index 56bdf3e..c49327e 100644 --- a/gst/monoscope/Makefile.in +++ b/gst/monoscope/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstmonoscope_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstmonoscope_la_OBJECTS = libgstmonoscope_la-gstmonoscope.lo \ libgstmonoscope_la-monoscope.lo libgstmonoscope_la-convolve.lo libgstmonoscope_la_OBJECTS = $(am_libgstmonoscope_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmonoscope_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmonoscope_la_SOURCES) DIST_SOURCES = $(libgstmonoscope_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -549,7 +549,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmonoscope.la: $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_DEPENDENCIES) +libgstmonoscope.la: $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_DEPENDENCIES) $(EXTRA_libgstmonoscope_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmonoscope_la_LINK) -rpath $(plugindir) $(libgstmonoscope_la_OBJECTS) $(libgstmonoscope_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -565,50 +565,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmonoscope_la-gstmonoscope.lo: gstmonoscope.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-gstmonoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Tpo -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Tpo $(DEPDIR)/libgstmonoscope_la-gstmonoscope.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmonoscope.c' object='libgstmonoscope_la-gstmonoscope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmonoscope.c' object='libgstmonoscope_la-gstmonoscope.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-gstmonoscope.lo `test -f 'gstmonoscope.c' || echo '$(srcdir)/'`gstmonoscope.c libgstmonoscope_la-monoscope.lo: monoscope.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-monoscope.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-monoscope.Tpo -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-monoscope.Tpo $(DEPDIR)/libgstmonoscope_la-monoscope.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='monoscope.c' object='libgstmonoscope_la-monoscope.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='monoscope.c' object='libgstmonoscope_la-monoscope.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-monoscope.lo `test -f 'monoscope.c' || echo '$(srcdir)/'`monoscope.c libgstmonoscope_la-convolve.lo: convolve.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -MT libgstmonoscope_la-convolve.lo -MD -MP -MF $(DEPDIR)/libgstmonoscope_la-convolve.Tpo -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmonoscope_la-convolve.Tpo $(DEPDIR)/libgstmonoscope_la-convolve.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='convolve.c' object='libgstmonoscope_la-convolve.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='convolve.c' object='libgstmonoscope_la-convolve.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmonoscope_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmonoscope_la_CFLAGS) $(CFLAGS) -c -o libgstmonoscope_la-convolve.lo `test -f 'convolve.c' || echo '$(srcdir)/'`convolve.c mostlyclean-libtool: -rm -f *.lo @@ -715,10 +709,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/monoscope/gstmonoscope.c b/gst/monoscope/gstmonoscope.c index f45b923..14b003c 100644 --- a/gst/monoscope/gstmonoscope.c +++ b/gst/monoscope/gstmonoscope.c @@ -101,10 +101,9 @@ gst_monoscope_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "Monoscope", "Visualization", "Displays a highly stabilised waveform of audio input", diff --git a/gst/multifile/Makefile.am b/gst/multifile/Makefile.am index 52e33bc..3c9e316 100644 --- a/gst/multifile/Makefile.am +++ b/gst/multifile/Makefile.am @@ -1,13 +1,18 @@ plugin_LTLIBRARIES = libgstmultifile.la -libgstmultifile_la_SOURCES = gstmultifilesink.c gstmultifilesrc.c gstmultifile.c -libgstmultifile_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) -libgstmultifile_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) +libgstmultifile_la_SOURCES = \ + gstmultifilesink.c \ + gstmultifilesrc.c \ + gstmultifile.c \ + gstsplitfilesrc.c \ + patternspec.c +libgstmultifile_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) +libgstmultifile_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS) libgstmultifile_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstmultifile_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h +noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h gstsplitfilesrc.h patternspec.h Android.mk: Makefile.am $(BUILT_SOURCES) diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in index 84e0303..60d4d58 100644 --- a/gst/multifile/Makefile.in +++ b/gst/multifile/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,18 +102,27 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstmultifile_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstmultifile_la_OBJECTS = \ libgstmultifile_la-gstmultifilesink.lo \ libgstmultifile_la-gstmultifilesrc.lo \ - libgstmultifile_la-gstmultifile.lo + libgstmultifile_la-gstmultifile.lo \ + libgstmultifile_la-gstsplitfilesrc.lo \ + libgstmultifile_la-patternspec.lo libgstmultifile_la_OBJECTS = $(am_libgstmultifile_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmultifile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmultifile_la_SOURCES) DIST_SOURCES = $(libgstmultifile_la_SOURCES) @@ -227,7 +235,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +313,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +371,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +427,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +462,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -480,12 +483,18 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstmultifile.la -libgstmultifile_la_SOURCES = gstmultifilesink.c gstmultifilesrc.c gstmultifile.c -libgstmultifile_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) -libgstmultifile_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) +libgstmultifile_la_SOURCES = \ + gstmultifilesink.c \ + gstmultifilesrc.c \ + gstmultifile.c \ + gstsplitfilesrc.c \ + patternspec.c + +libgstmultifile_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) +libgstmultifile_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-@GST_MAJORMINOR@ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS) libgstmultifile_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstmultifile_la_LIBTOOLFLAGS = --tag=disable-static -noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h +noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h gstsplitfilesrc.h patternspec.h all: all-am .SUFFIXES: @@ -551,7 +560,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmultifile.la: $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_DEPENDENCIES) +libgstmultifile.la: $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_DEPENDENCIES) $(EXTRA_libgstmultifile_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmultifile_la_LINK) -rpath $(plugindir) $(libgstmultifile_la_OBJECTS) $(libgstmultifile_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -563,54 +572,64 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmultifile_la-gstmultifile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmultifile_la-gstmultifilesink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmultifile_la-patternspec.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmultifile_la-gstmultifilesink.lo: gstmultifilesink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesink.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Tpo -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifilesink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmultifilesink.c' object='libgstmultifile_la-gstmultifilesink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmultifilesink.c' object='libgstmultifile_la-gstmultifilesink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesink.lo `test -f 'gstmultifilesink.c' || echo '$(srcdir)/'`gstmultifilesink.c libgstmultifile_la-gstmultifilesrc.lo: gstmultifilesrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Tpo -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifilesrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmultifilesrc.c' object='libgstmultifile_la-gstmultifilesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmultifilesrc.c' object='libgstmultifile_la-gstmultifilesrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifilesrc.lo `test -f 'gstmultifilesrc.c' || echo '$(srcdir)/'`gstmultifilesrc.c libgstmultifile_la-gstmultifile.lo: gstmultifile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstmultifile.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstmultifile.Tpo -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstmultifile.Tpo $(DEPDIR)/libgstmultifile_la-gstmultifile.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmultifile.c' object='libgstmultifile_la-gstmultifile.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmultifile.c' object='libgstmultifile_la-gstmultifile.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstmultifile.lo `test -f 'gstmultifile.c' || echo '$(srcdir)/'`gstmultifile.c + +libgstmultifile_la-gstsplitfilesrc.lo: gstsplitfilesrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-gstsplitfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Tpo -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Tpo $(DEPDIR)/libgstmultifile_la-gstsplitfilesrc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsplitfilesrc.c' object='libgstmultifile_la-gstsplitfilesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-gstsplitfilesrc.lo `test -f 'gstsplitfilesrc.c' || echo '$(srcdir)/'`gstsplitfilesrc.c + +libgstmultifile_la-patternspec.lo: patternspec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -MT libgstmultifile_la-patternspec.lo -MD -MP -MF $(DEPDIR)/libgstmultifile_la-patternspec.Tpo -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultifile_la-patternspec.Tpo $(DEPDIR)/libgstmultifile_la-patternspec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='patternspec.c' object='libgstmultifile_la-patternspec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultifile_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultifile_la_CFLAGS) $(CFLAGS) -c -o libgstmultifile_la-patternspec.lo `test -f 'patternspec.c' || echo '$(srcdir)/'`patternspec.c mostlyclean-libtool: -rm -f *.lo @@ -717,10 +736,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/multifile/gstmultifile.c b/gst/multifile/gstmultifile.c index d2ba57b..7441103 100644 --- a/gst/multifile/gstmultifile.c +++ b/gst/multifile/gstmultifile.c @@ -30,6 +30,7 @@ #include "gstmultifilesink.h" #include "gstmultifilesrc.h" +#include "gstsplitfilesrc.h" static gboolean plugin_init (GstPlugin * plugin) @@ -38,6 +39,8 @@ plugin_init (GstPlugin * plugin) gst_multi_file_src_get_type ()); gst_element_register (plugin, "multifilesink", GST_RANK_NONE, gst_multi_file_sink_get_type ()); + gst_element_register (plugin, "splitfilesrc", GST_RANK_NONE, + gst_split_file_src_get_type ()); return TRUE; } diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c index b333e80..2be3b56 100644 --- a/gst/multifile/gstmultifilesink.c +++ b/gst/multifile/gstmultifilesink.c @@ -3,6 +3,7 @@ * 2000 Wim Taymans * 2006 Wim Taymans * 2006 David A. Schleef + * 2011 Collabora Ltd. * * gstmultifilesink.c: * @@ -110,6 +111,7 @@ # include "config.h" #endif #include +#include #include #include "gstmultifilesink.h" @@ -125,6 +127,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_multi_file_sink_debug); #define DEFAULT_INDEX 0 #define DEFAULT_POST_MESSAGES FALSE #define DEFAULT_NEXT_FILE GST_MULTI_FILE_SINK_NEXT_BUFFER +#define DEFAULT_MAX_FILES 0 +#define DEFAULT_MAX_FILE_SIZE G_GUINT64_CONSTANT(2*1024*1024*1024) enum { @@ -133,6 +137,8 @@ enum PROP_INDEX, PROP_POST_MESSAGES, PROP_NEXT_FILE, + PROP_MAX_FILES, + PROP_MAX_FILE_SIZE, PROP_LAST }; @@ -146,8 +152,18 @@ static void gst_multi_file_sink_get_property (GObject * object, guint prop_id, static gboolean gst_multi_file_sink_stop (GstBaseSink * sink); static GstFlowReturn gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer); +static GstFlowReturn gst_multi_file_sink_render_list (GstBaseSink * sink, + GstBufferList * buffer_list); static gboolean gst_multi_file_sink_set_caps (GstBaseSink * sink, GstCaps * caps); +static gboolean gst_multi_file_sink_open_next_file (GstMultiFileSink * + multifilesink); +static void gst_multi_file_sink_close_file (GstMultiFileSink * multifilesink, + GstBuffer * buffer); +static void gst_multi_file_sink_ensure_max_files (GstMultiFileSink * + multifilesink); +static gboolean gst_multi_file_sink_event (GstBaseSink * sink, + GstEvent * event); #define GST_TYPE_MULTI_FILE_SINK_NEXT (gst_multi_file_sink_next_get_type ()) static GType @@ -160,6 +176,11 @@ gst_multi_file_sink_next_get_type (void) "discont"}, {GST_MULTI_FILE_SINK_NEXT_KEY_FRAME, "New file at each key frame " "(Useful for MPEG-TS segmenting)", "key-frame"}, + {GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT, + "New file after a force key unit event", "key-unit-event"}, + {GST_MULTI_FILE_SINK_NEXT_MAX_SIZE, "New file when the configured maximum " + "file size would be exceeded with the next buffer or buffer list", + "max-size"}, {0, NULL, NULL} }; @@ -182,8 +203,7 @@ gst_multi_file_sink_base_init (gpointer g_class) GST_DEBUG_CATEGORY_INIT (gst_multi_file_sink_debug, "multifilesink", 0, "multifilesink element"); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); + gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate); gst_element_class_set_details_simple (gstelement_class, "Multi-File Sink", "Sink/File", "Write buffers to a sequentially named set of files", @@ -234,13 +254,45 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) GST_TYPE_MULTI_FILE_SINK_NEXT, DEFAULT_NEXT_FILE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_STATIC_STRINGS)); + + /** + * GstMultiFileSink:max-files + * + * Maximum number of files to keep on disk. Once the maximum is reached, old + * files start to be deleted to make room for new ones. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_MAX_FILES, + g_param_spec_uint ("max-files", "Max files", + "Maximum number of files to keep on disk. Once the maximum is reached," + "old files start to be deleted to make room for new ones.", + 0, G_MAXUINT, DEFAULT_MAX_FILES, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstMultiFileSink:max-file-size + * + * Maximum file size before starting a new file in max-size mode. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_MAX_FILE_SIZE, + g_param_spec_uint64 ("max-file-size", "Maximum File Size", + "Maximum file size before starting a new file in max-size mode", + 0, G_MAXUINT64, DEFAULT_MAX_FILE_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gobject_class->finalize = gst_multi_file_sink_finalize; gstbasesink_class->get_times = NULL; gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_multi_file_sink_stop); gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_multi_file_sink_render); + gstbasesink_class->render_list = + GST_DEBUG_FUNCPTR (gst_multi_file_sink_render_list); gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_multi_file_sink_set_caps); + gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_multi_file_sink_event); } static void @@ -250,10 +302,15 @@ gst_multi_file_sink_init (GstMultiFileSink * multifilesink, multifilesink->filename = g_strdup (DEFAULT_LOCATION); multifilesink->index = DEFAULT_INDEX; multifilesink->post_messages = DEFAULT_POST_MESSAGES; + multifilesink->max_files = DEFAULT_MAX_FILES; + multifilesink->max_file_size = DEFAULT_MAX_FILE_SIZE; + multifilesink->files = NULL; + multifilesink->n_files = 0; gst_base_sink_set_sync (GST_BASE_SINK (multifilesink), FALSE); multifilesink->next_segment = GST_CLOCK_TIME_NONE; + multifilesink->force_key_unit_count = -1; } static void @@ -262,6 +319,8 @@ gst_multi_file_sink_finalize (GObject * object) GstMultiFileSink *sink = GST_MULTI_FILE_SINK (object); g_free (sink->filename); + g_slist_foreach (sink->files, (GFunc) g_free, NULL); + g_slist_free (sink->files); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -296,6 +355,12 @@ gst_multi_file_sink_set_property (GObject * object, guint prop_id, case PROP_NEXT_FILE: sink->next_file = g_value_get_enum (value); break; + case PROP_MAX_FILES: + sink->max_files = g_value_get_uint (value); + break; + case PROP_MAX_FILE_SIZE: + sink->max_file_size = g_value_get_uint64 (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -321,6 +386,12 @@ gst_multi_file_sink_get_property (GObject * object, guint prop_id, case PROP_NEXT_FILE: g_value_set_enum (value, sink->next_file); break; + case PROP_MAX_FILES: + g_value_set_uint (value, sink->max_files); + break; + case PROP_MAX_FILE_SIZE: + g_value_set_uint64 (value, sink->max_file_size); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -345,48 +416,95 @@ gst_multi_file_sink_stop (GstBaseSink * sink) gst_buffer_unref (multifilesink->streamheaders[i]); } g_free (multifilesink->streamheaders); + multifilesink->streamheaders = NULL; } + multifilesink->force_key_unit_count = -1; + return TRUE; } static void +gst_multi_file_sink_post_message_full (GstMultiFileSink * multifilesink, + GstClockTime timestamp, GstClockTime duration, GstClockTime offset, + GstClockTime offset_end, GstClockTime running_time, + GstClockTime stream_time, const char *filename) +{ + GstStructure *s; + + if (!multifilesink->post_messages) + return; + + s = gst_structure_new ("GstMultiFileSink", + "filename", G_TYPE_STRING, filename, + "index", G_TYPE_INT, multifilesink->index, + "timestamp", G_TYPE_UINT64, timestamp, + "stream-time", G_TYPE_UINT64, stream_time, + "running-time", G_TYPE_UINT64, running_time, + "duration", G_TYPE_UINT64, duration, + "offset", G_TYPE_UINT64, offset, + "offset-end", G_TYPE_UINT64, offset_end, NULL); + + gst_element_post_message (GST_ELEMENT_CAST (multifilesink), + gst_message_new_element (GST_OBJECT_CAST (multifilesink), s)); +} + + +static void gst_multi_file_sink_post_message (GstMultiFileSink * multifilesink, GstBuffer * buffer, const char *filename) { - if (multifilesink->post_messages) { - GstClockTime duration, timestamp; - GstClockTime running_time, stream_time; - guint64 offset, offset_end; - GstStructure *s; - GstSegment *segment; - GstFormat format; - - segment = &GST_BASE_SINK (multifilesink)->segment; - format = segment->format; - - timestamp = GST_BUFFER_TIMESTAMP (buffer); - duration = GST_BUFFER_DURATION (buffer); - offset = GST_BUFFER_OFFSET (buffer); - offset_end = GST_BUFFER_OFFSET_END (buffer); - - running_time = gst_segment_to_running_time (segment, format, timestamp); - stream_time = gst_segment_to_stream_time (segment, format, timestamp); - - s = gst_structure_new ("GstMultiFileSink", - "filename", G_TYPE_STRING, filename, - "index", G_TYPE_INT, multifilesink->index, - "timestamp", G_TYPE_UINT64, timestamp, - "stream-time", G_TYPE_UINT64, stream_time, - "running-time", G_TYPE_UINT64, running_time, - "duration", G_TYPE_UINT64, duration, - "offset", G_TYPE_UINT64, offset, - "offset-end", G_TYPE_UINT64, offset_end, NULL); - - gst_element_post_message (GST_ELEMENT_CAST (multifilesink), - gst_message_new_element (GST_OBJECT_CAST (multifilesink), s)); + GstClockTime duration, timestamp; + GstClockTime running_time, stream_time; + guint64 offset, offset_end; + GstSegment *segment; + GstFormat format; + + if (!multifilesink->post_messages) + return; + + segment = &GST_BASE_SINK (multifilesink)->segment; + format = segment->format; + + timestamp = GST_BUFFER_TIMESTAMP (buffer); + duration = GST_BUFFER_DURATION (buffer); + offset = GST_BUFFER_OFFSET (buffer); + offset_end = GST_BUFFER_OFFSET_END (buffer); + + running_time = gst_segment_to_running_time (segment, format, timestamp); + stream_time = gst_segment_to_stream_time (segment, format, timestamp); + + gst_multi_file_sink_post_message_full (multifilesink, timestamp, duration, + offset, offset_end, running_time, stream_time, filename); +} + +static gboolean +gst_multi_file_sink_write_stream_headers (GstMultiFileSink * sink) +{ + int i; + + if (sink->streamheaders == NULL) + return TRUE; + + /* we want to write these at the beginning */ + g_assert (sink->cur_file_size == 0); + + for (i = 0; i < sink->n_streamheaders; i++) { + GstBuffer *hdr; + int ret; + + hdr = sink->streamheaders[i]; + + ret = fwrite (GST_BUFFER_DATA (hdr), GST_BUFFER_SIZE (hdr), 1, sink->file); + + if (ret != 1) + return FALSE; + + sink->cur_file_size += GST_BUFFER_SIZE (hdr); } + + return TRUE; } static GstFlowReturn @@ -406,39 +524,29 @@ gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer) switch (multifilesink->next_file) { case GST_MULTI_FILE_SINK_NEXT_BUFFER: + gst_multi_file_sink_ensure_max_files (multifilesink); + filename = g_strdup_printf (multifilesink->filename, multifilesink->index); - ret = g_file_set_contents (filename, (char *) data, size, &error); if (!ret) goto write_error; + multifilesink->files = g_slist_append (multifilesink->files, filename); + multifilesink->n_files += 1; + gst_multi_file_sink_post_message (multifilesink, buffer, filename); multifilesink->index++; - g_free (filename); break; case GST_MULTI_FILE_SINK_NEXT_DISCONT: if (GST_BUFFER_IS_DISCONT (buffer)) { - if (multifilesink->file) { - fclose (multifilesink->file); - multifilesink->file = NULL; - - filename = g_strdup_printf (multifilesink->filename, - multifilesink->index); - gst_multi_file_sink_post_message (multifilesink, buffer, filename); - g_free (filename); - multifilesink->index++; - } + if (multifilesink->file) + gst_multi_file_sink_close_file (multifilesink, buffer); } if (multifilesink->file == NULL) { - filename = g_strdup_printf (multifilesink->filename, - multifilesink->index); - multifilesink->file = g_fopen (filename, "wb"); - g_free (filename); - - if (multifilesink->file == NULL) + if (!gst_multi_file_sink_open_next_file (multifilesink)) goto stdio_write_error; } @@ -459,48 +567,68 @@ gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer) if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) && GST_BUFFER_TIMESTAMP (buffer) >= multifilesink->next_segment && !GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) { - if (multifilesink->file) { - fclose (multifilesink->file); - multifilesink->file = NULL; - - filename = g_strdup_printf (multifilesink->filename, - multifilesink->index); - gst_multi_file_sink_post_message (multifilesink, buffer, filename); - g_free (filename); - multifilesink->index++; - } + if (multifilesink->file) + gst_multi_file_sink_close_file (multifilesink, buffer); multifilesink->next_segment += 10 * GST_SECOND; } if (multifilesink->file == NULL) { - int i; + if (!gst_multi_file_sink_open_next_file (multifilesink)) + goto stdio_write_error; - filename = g_strdup_printf (multifilesink->filename, - multifilesink->index); - multifilesink->file = g_fopen (filename, "wb"); - g_free (filename); + gst_multi_file_sink_write_stream_headers (multifilesink); + } - if (multifilesink->file == NULL) + ret = fwrite (GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), 1, + multifilesink->file); + if (ret != 1) + goto stdio_write_error; + + break; + case GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT: + if (multifilesink->file == NULL) { + if (!gst_multi_file_sink_open_next_file (multifilesink)) goto stdio_write_error; + } - if (multifilesink->streamheaders) { - for (i = 0; i < multifilesink->n_streamheaders; i++) { - ret = fwrite (GST_BUFFER_DATA (multifilesink->streamheaders[i]), - GST_BUFFER_SIZE (multifilesink->streamheaders[i]), 1, - multifilesink->file); - if (ret != 1) - goto stdio_write_error; - } - } + ret = fwrite (GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), 1, + multifilesink->file); + if (ret != 1) + goto stdio_write_error; + + break; + case GST_MULTI_FILE_SINK_NEXT_MAX_SIZE:{ + guint64 new_size; + + new_size = multifilesink->cur_file_size + GST_BUFFER_SIZE (buffer); + if (new_size > multifilesink->max_file_size) { + + GST_INFO_OBJECT (multifilesink, "current size: %" G_GUINT64_FORMAT + ", new_size: %" G_GUINT64_FORMAT ", max. size %" G_GUINT64_FORMAT, + multifilesink->cur_file_size, new_size, + multifilesink->max_file_size); + + if (multifilesink->file != NULL) + gst_multi_file_sink_close_file (multifilesink, NULL); + } + + if (multifilesink->file == NULL) { + if (!gst_multi_file_sink_open_next_file (multifilesink)) + goto stdio_write_error; + + gst_multi_file_sink_write_stream_headers (multifilesink); } ret = fwrite (GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), 1, multifilesink->file); + if (ret != 1) goto stdio_write_error; + multifilesink->cur_file_size += GST_BUFFER_SIZE (buffer); break; + } default: g_assert_not_reached (); } @@ -528,11 +656,71 @@ write_error: return GST_FLOW_ERROR; } stdio_write_error: - GST_ELEMENT_ERROR (multifilesink, RESOURCE, WRITE, - ("Error while writing to file."), (NULL)); + switch (errno) { + case ENOSPC: + GST_ELEMENT_ERROR (multifilesink, RESOURCE, NO_SPACE_LEFT, + ("Error while writing to file."), ("%s", g_strerror (errno))); + break; + default: + GST_ELEMENT_ERROR (multifilesink, RESOURCE, WRITE, + ("Error while writing to file."), ("%s", g_strerror (errno))); + } return GST_FLOW_ERROR; } +static GstBufferListItem +buffer_list_calc_size (GstBuffer ** buf, guint group, guint idx, gpointer data) +{ + guint *p_size = data; + guint buf_size; + + buf_size = GST_BUFFER_SIZE (*buf); + GST_TRACE ("buffer %u in group %u has size %u", idx, group, buf_size); + *p_size += buf_size; + + return GST_BUFFER_LIST_CONTINUE; +} + +static GstBufferListItem +buffer_list_copy_data (GstBuffer ** buf, guint group, guint idx, gpointer data) +{ + GstBuffer *dest = data; + + if (group == 0 && idx == 0) + gst_buffer_copy_metadata (dest, *buf, GST_BUFFER_COPY_ALL); + + memcpy (GST_BUFFER_DATA (dest) + GST_BUFFER_SIZE (dest), + GST_BUFFER_DATA (*buf), GST_BUFFER_SIZE (*buf)); + GST_BUFFER_SIZE (dest) += GST_BUFFER_SIZE (*buf); + + return GST_BUFFER_LIST_CONTINUE; +} + +/* Our assumption for now is that the buffers in a buffer list should always + * end up in the same file. If someone wants different behaviour, they'll just + * have to add a property for that. */ +static GstFlowReturn +gst_multi_file_sink_render_list (GstBaseSink * sink, GstBufferList * list) +{ + GstBuffer *buf; + guint size; + + gst_buffer_list_foreach (list, buffer_list_calc_size, &size); + GST_LOG_OBJECT (sink, "total size of buffer list %p: %u", list, size); + + /* copy all buffers in the list into one single buffer, so we can use + * the normal render function (FIXME: optimise to avoid the memcpy) */ + buf = gst_buffer_new_and_alloc (size); + GST_BUFFER_SIZE (buf) = 0; + gst_buffer_list_foreach (list, buffer_list_copy_data, buf); + g_assert (GST_BUFFER_SIZE (buf) == size); + + gst_multi_file_sink_render (sink, buf); + gst_buffer_unref (buf); + + return GST_FLOW_OK; +} + static gboolean gst_multi_file_sink_set_caps (GstBaseSink * sink, GstCaps * caps) { @@ -571,3 +759,125 @@ gst_multi_file_sink_set_caps (GstBaseSink * sink, GstCaps * caps) return TRUE; } + +static void +gst_multi_file_sink_ensure_max_files (GstMultiFileSink * multifilesink) +{ + char *filename; + + while (multifilesink->max_files && + multifilesink->n_files >= multifilesink->max_files) { + filename = multifilesink->files->data; + g_remove (filename); + g_free (filename); + multifilesink->files = g_slist_delete_link (multifilesink->files, + multifilesink->files); + multifilesink->n_files -= 1; + } +} + +static gboolean +gst_multi_file_sink_event (GstBaseSink * sink, GstEvent * event) +{ + GstMultiFileSink *multifilesink; + gchar *filename; + gboolean res = TRUE; + + multifilesink = GST_MULTI_FILE_SINK (sink); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_DOWNSTREAM: + { + GstClockTime timestamp, duration; + GstClockTime running_time, stream_time; + guint64 offset, offset_end; + gboolean all_headers; + guint count; + + if (multifilesink->next_file != GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT || + !gst_video_event_is_force_key_unit (event)) + goto out; + + gst_video_event_parse_downstream_force_key_unit (event, ×tamp, + &stream_time, &running_time, &all_headers, &count); + + if (multifilesink->force_key_unit_count != -1 && + multifilesink->force_key_unit_count == count) + goto out; + + multifilesink->force_key_unit_count = count; + + if (multifilesink->file) { + duration = GST_CLOCK_TIME_NONE; + offset = offset_end = -1; + filename = g_strdup_printf (multifilesink->filename, + multifilesink->index); + gst_multi_file_sink_post_message_full (multifilesink, timestamp, + duration, offset, offset_end, running_time, stream_time, filename); + + g_free (filename); + + gst_multi_file_sink_close_file (multifilesink, NULL); + + } + + if (multifilesink->file == NULL) { + if (!gst_multi_file_sink_open_next_file (multifilesink)) + goto stdio_write_error; + } + + break; + } + default: + break; + } + +out: + return res; + +stdio_write_error: + GST_ELEMENT_ERROR (multifilesink, RESOURCE, WRITE, + ("Error while writing to file."), (NULL)); + return FALSE; +} + +static gboolean +gst_multi_file_sink_open_next_file (GstMultiFileSink * multifilesink) +{ + char *filename; + + g_return_val_if_fail (multifilesink->file == NULL, FALSE); + + gst_multi_file_sink_ensure_max_files (multifilesink); + filename = g_strdup_printf (multifilesink->filename, multifilesink->index); + multifilesink->file = g_fopen (filename, "wb"); + if (multifilesink->file == NULL) { + g_free (filename); + return FALSE; + } + + GST_INFO_OBJECT (multifilesink, "opening file %s", filename); + multifilesink->files = g_slist_append (multifilesink->files, filename); + multifilesink->n_files += 1; + + multifilesink->cur_file_size = 0; + return TRUE; +} + +static void +gst_multi_file_sink_close_file (GstMultiFileSink * multifilesink, + GstBuffer * buffer) +{ + char *filename; + + fclose (multifilesink->file); + multifilesink->file = NULL; + + if (buffer) { + filename = g_strdup_printf (multifilesink->filename, multifilesink->index); + gst_multi_file_sink_post_message (multifilesink, buffer, filename); + g_free (filename); + } + + multifilesink->index++; +} diff --git a/gst/multifile/gstmultifilesink.h b/gst/multifile/gstmultifilesink.h index c551570..dd234d6 100644 --- a/gst/multifile/gstmultifilesink.h +++ b/gst/multifile/gstmultifilesink.h @@ -52,10 +52,25 @@ G_BEGIN_DECLS typedef struct _GstMultiFileSink GstMultiFileSink; typedef struct _GstMultiFileSinkClass GstMultiFileSinkClass; +/** + * GstMultiFileSinkNext: + * @GST_MULTI_FILE_SINK_NEXT_BUFFER: New file for each buffer + * @GST_MULTI_FILE_SINK_NEXT_DISCONT: New file after each discontinuity + * @GST_MULTI_FILE_SINK_NEXT_KEY_FRAME: New file at each key frame + * (Useful for MPEG-TS segmenting) + * @GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT: New file after a force key unit + * event (Since: 0.10.31) + * @GST_MULTI_FILE_SINK_NEXT_MAX_SIZE: New file when the configured maximum file + * size would be exceeded with the next buffer or buffer list (Since: 0.10.31) + * + * File splitting modes. + */ typedef enum { GST_MULTI_FILE_SINK_NEXT_BUFFER, GST_MULTI_FILE_SINK_NEXT_DISCONT, - GST_MULTI_FILE_SINK_NEXT_KEY_FRAME + GST_MULTI_FILE_SINK_NEXT_KEY_FRAME, + GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT, + GST_MULTI_FILE_SINK_NEXT_MAX_SIZE } GstMultiFileSinkNext; struct _GstMultiFileSink @@ -67,11 +82,18 @@ struct _GstMultiFileSink gboolean post_messages; GstMultiFileSinkNext next_file; FILE *file; + guint max_files; + GSList *files; + guint n_files; gint64 next_segment; int n_streamheaders; GstBuffer **streamheaders; + guint force_key_unit_count; + + guint64 cur_file_size; + guint64 max_file_size; }; struct _GstMultiFileSinkClass diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c index 7f945b8..48f5c1f 100644 --- a/gst/multifile/gstmultifilesrc.c +++ b/gst/multifile/gstmultifilesrc.c @@ -74,7 +74,10 @@ enum ARG_0, ARG_LOCATION, ARG_INDEX, - ARG_CAPS + ARG_START_INDEX, + ARG_STOP_INDEX, + ARG_CAPS, + ARG_LOOP }; #define DEFAULT_LOCATION "%05d" @@ -92,8 +95,8 @@ gst_multi_file_src_base_init (gpointer g_class) GST_DEBUG_CATEGORY_INIT (gst_multi_file_src_debug, "multifilesrc", 0, "multifilesrc element"); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_multi_file_src_pad_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_multi_file_src_pad_template); gst_element_class_set_details_simple (gstelement_class, "Multi-File Source", "Source/File", "Read a sequentially named set of files into buffers", @@ -122,10 +125,26 @@ gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) "index is incremented by one for each buffer read.", 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_START_INDEX, + g_param_spec_int ("start-index", "Start Index", + "Start value of index. The initial value of index can be set " + "either by setting index or start-index. When the end of the loop " + "is reached, the index will be set to the value start-index.", + 0, INT_MAX, DEFAULT_INDEX, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_STOP_INDEX, + g_param_spec_int ("stop-index", "Start Index", + "Stop value of index. The special value -1 means no stop.", + -1, INT_MAX, DEFAULT_INDEX, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, ARG_CAPS, g_param_spec_boxed ("caps", "Caps", "Caps describing the format of the data.", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_LOOP, + g_param_spec_boolean ("loop", "Loop", + "Whether to repeat from the beginning when all files have been read.", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gobject_class->dispose = gst_multi_file_src_dispose; @@ -144,7 +163,9 @@ static void gst_multi_file_src_init (GstMultiFileSrc * multifilesrc, GstMultiFileSrcClass * g_class) { + multifilesrc->start_index = DEFAULT_INDEX; multifilesrc->index = DEFAULT_INDEX; + multifilesrc->stop_index = -1; multifilesrc->filename = g_strdup (DEFAULT_LOCATION); multifilesrc->successful_read = FALSE; } @@ -235,6 +256,12 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id, case ARG_INDEX: src->index = g_value_get_int (value); break; + case ARG_START_INDEX: + src->start_index = g_value_get_int (value); + break; + case ARG_STOP_INDEX: + src->stop_index = g_value_get_int (value); + break; case ARG_CAPS: { const GstCaps *caps = gst_value_get_caps (value); @@ -249,6 +276,9 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id, gst_pad_set_caps (GST_BASE_SRC_PAD (src), new_caps); } break; + case ARG_LOOP: + src->loop = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -268,9 +298,18 @@ gst_multi_file_src_get_property (GObject * object, guint prop_id, case ARG_INDEX: g_value_set_int (value, src->index); break; + case ARG_START_INDEX: + g_value_set_int (value, src->start_index); + break; + case ARG_STOP_INDEX: + g_value_set_int (value, src->stop_index); + break; case ARG_CAPS: gst_value_set_caps (value, src->caps); break; + case ARG_LOOP: + g_value_set_boolean (value, src->loop); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -282,6 +321,7 @@ gst_multi_file_src_get_filename (GstMultiFileSrc * multifilesrc) { gchar *filename; + GST_DEBUG ("%d", multifilesrc->index); filename = g_strdup_printf (multifilesrc->filename, multifilesrc->index); return filename; @@ -300,6 +340,9 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) multifilesrc = GST_MULTI_FILE_SRC (src); + if (multifilesrc->index < multifilesrc->start_index) { + multifilesrc->index = multifilesrc->start_index; + } filename = gst_multi_file_src_get_filename (multifilesrc); GST_DEBUG_OBJECT (multifilesrc, "reading from file \"%s\".", filename); @@ -312,7 +355,23 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) g_free (filename); if (error != NULL) g_error_free (error); - return GST_FLOW_UNEXPECTED; + + if (multifilesrc->loop) { + error = NULL; + multifilesrc->index = multifilesrc->start_index; + + filename = gst_multi_file_src_get_filename (multifilesrc); + ret = g_file_get_contents (filename, &data, &size, &error); + if (!ret) { + g_free (filename); + if (error != NULL) + g_error_free (error); + + return GST_FLOW_UNEXPECTED; + } + } else { + return GST_FLOW_UNEXPECTED; + } } else { goto handle_error; } @@ -320,6 +379,10 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) multifilesrc->successful_read = TRUE; multifilesrc->index++; + if (multifilesrc->stop_index != -1 && + multifilesrc->index >= multifilesrc->stop_index) { + multifilesrc->index = multifilesrc->start_index; + } buf = gst_buffer_new (); GST_BUFFER_DATA (buf) = (unsigned char *) data; diff --git a/gst/multifile/gstmultifilesrc.h b/gst/multifile/gstmultifilesrc.h index 686ae4f..57ed038 100644 --- a/gst/multifile/gstmultifilesrc.h +++ b/gst/multifile/gstmultifilesrc.h @@ -46,10 +46,14 @@ struct _GstMultiFileSrc GstPushSrc parent; gchar *filename; + int start_index; + int stop_index; int index; int offset; + gboolean loop; + GstCaps *caps; gboolean successful_read; }; diff --git a/gst/multifile/gstsplitfilesrc.c b/gst/multifile/gstsplitfilesrc.c new file mode 100644 index 0000000..3125997 --- /dev/null +++ b/gst/multifile/gstsplitfilesrc.c @@ -0,0 +1,616 @@ +/* GStreamer Split File Source + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-splitfilesrc + * @see_also: #GstFileSrc, #GstMultiFileSrc + * + * Reads data from multiple files, presenting those files as one continuous + * file to downstream elements. This is useful for reading a large file that + * had to be split into multiple parts due to filesystem file size limitations, + * for example. + * + * The files to select are chosen via the location property, which supports + * (and expects) shell-style wildcards (but only for the filename, not for + * directories). The results will be sorted. + * + * + * Example launch line + * |[ + * gst-launch splitfilesrc location="/path/to/part-*.mpg" ! decodebin ! ... \ + * ]| Plays the different parts as if they were one single MPEG file. + * + * + * Since: 0.10.31 + */ + +/* TODO: + * - implement splitfile:// URI handler? + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstsplitfilesrc.h" +#include "patternspec.h" + +#include + +#ifdef G_OS_WIN32 +#define DEFAULT_PATTERN_MATCH_MODE MATCH_MODE_UTF8 +#else +#define DEFAULT_PATTERN_MATCH_MODE MATCH_MODE_AUTO +#endif + +enum +{ + PROP_LOCATION = 1 +}; + +#define DEFAULT_LOCATION NULL + +static void gst_split_file_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_split_file_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_split_file_src_finalize (GObject * obj); + +static gboolean gst_split_file_src_start (GstBaseSrc * basesrc); +static gboolean gst_split_file_src_stop (GstBaseSrc * basesrc); +static gboolean gst_split_file_src_can_seek (GstBaseSrc * basesrc); +static gboolean gst_split_file_src_check_get_range (GstBaseSrc * basesrc); +static gboolean gst_split_file_src_get_size (GstBaseSrc * basesrc, guint64 * s); +static gboolean gst_split_file_src_unlock (GstBaseSrc * basesrc); +static GstFlowReturn gst_split_file_src_create (GstBaseSrc * basesrc, + guint64 offset, guint size, GstBuffer ** buffer); + +static GstStaticPadTemplate gst_split_file_src_pad_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +GST_DEBUG_CATEGORY_STATIC (splitfilesrc_debug); +#define GST_CAT_DEFAULT splitfilesrc_debug + +GST_BOILERPLATE (GstSplitFileSrc, gst_split_file_src, GstBaseSrc, + GST_TYPE_BASE_SRC); + +static void +gst_split_file_src_base_init (gpointer g_class) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); + + GST_DEBUG_CATEGORY_INIT (splitfilesrc_debug, "splitfilesrc", 0, + "splitfilesrc element"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&gst_split_file_src_pad_template)); + + gst_element_class_set_details_simple (gstelement_class, "Split-File Source", + "Source/File", + "Read a sequentially named set of files as if it was one large file", + "Tim-Philipp Müller "); +} + +#ifdef G_OS_WIN32 +#define WIN32_BLURB " Location string must be in UTF-8 encoding (on Windows)." +#else +#define WIN32_BLURB /* nothing */ +#endif + +static void +gst_split_file_src_class_init (GstSplitFileSrcClass * klass) +{ + GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = gst_split_file_src_set_property; + gobject_class->get_property = gst_split_file_src_get_property; + gobject_class->finalize = gst_split_file_src_finalize; + + g_object_class_install_property (gobject_class, PROP_LOCATION, + g_param_spec_string ("location", "File Location", + "Wildcard pattern to match file names of the input files. If " + "the location is an absolute path or contains directory components, " + "only the base file name part will be considered for pattern " + "matching. The results will be sorted." WIN32_BLURB, + DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_split_file_src_start); + gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_split_file_src_stop); + gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_split_file_src_create); + gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_split_file_src_get_size); + gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_split_file_src_unlock); + gstbasesrc_class->is_seekable = + GST_DEBUG_FUNCPTR (gst_split_file_src_can_seek); + gstbasesrc_class->check_get_range = + GST_DEBUG_FUNCPTR (gst_split_file_src_check_get_range); +} + +static void +gst_split_file_src_init (GstSplitFileSrc * splitfilesrc, + GstSplitFileSrcClass * g_class) +{ +} + +static void +gst_split_file_src_finalize (GObject * obj) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (obj); + + g_free (src->location); + src->location = NULL; + + G_OBJECT_CLASS (parent_class)->finalize (obj); +} + +static gboolean +gst_split_file_src_can_seek (GstBaseSrc * basesrc) +{ + return TRUE; +} + +static gboolean +gst_split_file_src_check_get_range (GstBaseSrc * basesrc) +{ + return TRUE; +} + +static gboolean +gst_split_file_src_unlock (GstBaseSrc * basesrc) +{ + /* This is not actually that useful, since all normal file + * operations are fully blocking anyway */ +#if 0 + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (basesrc); + + GST_DEBUG_OBJECT (src, "cancelling pending I/O operation if there is one"); + /* g_cancellable_cancel (src->cancellable); */ + GST_DEBUG_OBJECT (src, "done"); +#endif + + return TRUE; +} + +static gboolean +gst_split_file_src_get_size (GstBaseSrc * basesrc, guint64 * size) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (basesrc); + + *size = src->parts[src->num_parts - 1].stop + 1; + return TRUE; +} + +static void +gst_split_file_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (object); + + switch (prop_id) { + case PROP_LOCATION: + GST_OBJECT_LOCK (src); + g_free (src->location); + src->location = g_value_dup_string (value); +#ifdef G_OS_WIN32 + if (!g_utf8_validate (src->location, -1, NULL)) { + g_warning ("splitfilesrc 'location' property must be in UTF-8 " + "encoding on Windows"); + } +#endif + GST_OBJECT_UNLOCK (src); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_split_file_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (object); + + switch (prop_id) { + case PROP_LOCATION: + GST_OBJECT_LOCK (src); + g_value_set_string (value, src->location); + GST_OBJECT_UNLOCK (src); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static int +gst_split_file_src_array_sortfunc (gchar ** a, gchar ** b) +{ + return strcmp (*a, *b); +} + +static gchar ** +gst_split_file_src_find_files (GstSplitFileSrc * src, const gchar * dirname, + const gchar * basename, GError ** err) +{ + PatternSpec *pspec; + GPtrArray *files; + const gchar *name; + GDir *dir; + + if (dirname == NULL || basename == NULL) + goto invalid_location; + + GST_INFO_OBJECT (src, "checking in directory '%s' for pattern '%s'", + dirname, basename); + + dir = g_dir_open (dirname, 0, err); + if (dir == NULL) + return NULL; + + if (DEFAULT_PATTERN_MATCH_MODE == MATCH_MODE_UTF8 && + !g_utf8_validate (basename, -1, NULL)) { + goto not_utf8; + } + + /* mode will be AUTO on linux/unix and UTF8 on win32 */ + pspec = pattern_spec_new (basename, DEFAULT_PATTERN_MATCH_MODE); + + files = g_ptr_array_new (); + + while ((name = g_dir_read_name (dir))) { + GST_TRACE_OBJECT (src, "check: %s", name); + if (pattern_match_string (pspec, name)) { + GST_DEBUG_OBJECT (src, "match: %s", name); + g_ptr_array_add (files, g_build_filename (dirname, name, NULL)); + } + } + + if (files->len == 0) + goto no_matches; + + g_ptr_array_sort (files, (GCompareFunc) gst_split_file_src_array_sortfunc); + g_ptr_array_add (files, NULL); + + pattern_spec_free (pspec); + g_dir_close (dir); + + return (gchar **) g_ptr_array_free (files, FALSE); + +/* ERRORS */ +invalid_location: + { + g_set_error_literal (err, G_FILE_ERROR, G_FILE_ERROR_INVAL, + "No filename specified."); + return NULL; + } +not_utf8: + { + g_dir_close (dir); + g_set_error_literal (err, G_FILE_ERROR, G_FILE_ERROR_INVAL, + "Filename pattern must be UTF-8 on Windows."); + return NULL; + } +no_matches: + { + pattern_spec_free (pspec); + g_dir_close (dir); + g_set_error_literal (err, G_FILE_ERROR, G_FILE_ERROR_NOENT, + "Found no files matching the pattern."); + return NULL; + } +} + +static gboolean +gst_split_file_src_start (GstBaseSrc * basesrc) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (basesrc); + GCancellable *cancel; + gboolean ret = FALSE; + guint64 offset; + GError *err = NULL; + gchar *basename = NULL; + gchar *dirname = NULL; + gchar **files; + guint i; + + GST_OBJECT_LOCK (src); + if (src->location != NULL && src->location[0] != '\0') { + basename = g_path_get_basename (src->location); + dirname = g_path_get_dirname (src->location); + } + GST_OBJECT_UNLOCK (src); + + files = gst_split_file_src_find_files (src, dirname, basename, &err); + + if (files == NULL || *files == NULL) + goto no_files; + + src->num_parts = g_strv_length (files); + src->parts = g_new0 (GstFilePart, src->num_parts); + + cancel = src->cancellable; + + offset = 0; + for (i = 0; i < src->num_parts; ++i) { + GFileInputStream *stream; + GFileInfo *info; + goffset size; + GFile *file; + + file = g_file_new_for_path (files[i]); + stream = g_file_read (file, cancel, &err); + g_object_unref (file); + + if (err != NULL) + goto open_read_error; + + info = g_file_input_stream_query_info (stream, "standard::*", NULL, &err); + if (err != NULL) { + g_object_unref (stream); + goto query_info_error; + } + + size = g_file_info_get_size (info); + g_object_unref (info); + + src->parts[i].stream = stream; + src->parts[i].path = g_strdup (files[i]); + src->parts[i].start = offset; + src->parts[i].stop = offset + size - 1; + + GST_DEBUG ("[%010" G_GUINT64_FORMAT "-%010" G_GUINT64_FORMAT "] %s", + src->parts[i].start, src->parts[i].stop, src->parts[i].path); + + offset += size; + } + + GST_INFO ("Successfully opened %u file parts for reading", src->num_parts); + + src->cur_part = 0; + + src->cancellable = g_cancellable_new (); + + ret = TRUE; + +done: + if (err != NULL) + g_error_free (err); + g_strfreev (files); + g_free (basename); + g_free (dirname); + return ret; + +/* ERRORS */ +no_files: + { + if (err->code == G_IO_ERROR_CANCELLED) + goto cancelled; + + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, ("%s", err->message), + ("Failed to find files in '%s' for pattern '%s'", + GST_STR_NULL (dirname), GST_STR_NULL (basename))); + goto done; + } +open_read_error: + { + if (err->code == G_IO_ERROR_CANCELLED) + goto cancelled; + + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, ("%s", err->message), + ("Failed to open file '%s' for reading", files[i])); + goto done; + } +query_info_error: + { + if (err->code == G_IO_ERROR_CANCELLED) + goto cancelled; + + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, ("%s", err->message), + ("Failed to query info for file '%s'", files[i])); + goto done; + } +cancelled: + { + GST_DEBUG_OBJECT (src, "I/O operation cancelled from another thread"); + goto done; + } +} + +static gboolean +gst_split_file_src_stop (GstBaseSrc * basesrc) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (basesrc); + guint i; + + for (i = 0; i < src->num_parts; ++i) { + if (src->parts[i].stream != NULL) + g_object_unref (src->parts[i].stream); + g_free (src->parts[i].path); + } + g_free (src->parts); + src->parts = NULL; + src->num_parts = 0; + + g_object_unref (src->cancellable); + src->cancellable = NULL; + + return TRUE; +} + +static gboolean +gst_split_file_src_find_part_for_offset (GstSplitFileSrc * src, guint64 offset, + guint * part_number) +{ + GstFilePart *part; + guint i; + + /* TODO: could use gst_util_array_binary_search() here */ + part = src->parts; + for (i = 0; i < src->num_parts; ++i) { + if (offset >= part->start && offset <= part->stop) { + *part_number = i; + return TRUE; + } + ++part; + } + + return FALSE; +} + +static GstFlowReturn +gst_split_file_src_create (GstBaseSrc * basesrc, guint64 offset, guint size, + GstBuffer ** buffer) +{ + GstSplitFileSrc *src = GST_SPLIT_FILE_SRC (basesrc); + GstFilePart cur_part; + GInputStream *stream; + GCancellable *cancel; + GSeekable *seekable; + GstBuffer *buf; + GError *err = NULL; + guint64 read_offset; + guint8 *data; + guint to_read; + + cur_part = src->parts[src->cur_part]; + if (offset < cur_part.start || offset > cur_part.stop) { + if (!gst_split_file_src_find_part_for_offset (src, offset, &src->cur_part)) + return GST_FLOW_UNEXPECTED; + cur_part = src->parts[src->cur_part]; + } + + GST_LOG_OBJECT (src, "current part: %u (%" G_GUINT64_FORMAT " - " + "%" G_GUINT64_FORMAT ", %s)", src->cur_part, cur_part.start, + cur_part.stop, cur_part.path); + + buf = gst_buffer_new_and_alloc (size); + + GST_BUFFER_OFFSET (buf) = offset; + + data = GST_BUFFER_DATA (buf); + + cancel = src->cancellable; + + while (size > 0) { + guint64 bytes_to_end_of_part; + gsize read = 0; + + /* we want the offset into the file part */ + read_offset = offset - cur_part.start; + + GST_LOG ("Reading part %03u from offset %" G_GUINT64_FORMAT " (%s)", + src->cur_part, read_offset, cur_part.path); + + /* FIXME: only seek when needed (hopefully gio is smart) */ + seekable = G_SEEKABLE (cur_part.stream); + if (!g_seekable_seek (seekable, read_offset, G_SEEK_SET, cancel, &err)) + goto seek_failed; + + GST_LOG_OBJECT (src, "now: %" G_GUINT64_FORMAT, g_seekable_tell (seekable)); + + bytes_to_end_of_part = (cur_part.stop - cur_part.start) + 1 - read_offset; + to_read = MIN (size, bytes_to_end_of_part); + + GST_LOG_OBJECT (src, "reading %u bytes from part %u (bytes to end of " + "part: %u)", to_read, src->cur_part, (guint) bytes_to_end_of_part); + + stream = G_INPUT_STREAM (cur_part.stream); + + /* NB: we won't try to read beyond EOF */ + if (!g_input_stream_read_all (stream, data, to_read, &read, cancel, &err)) + goto read_failed; + + GST_LOG_OBJECT (src, "read %u bytes", (guint) read); + + data += read; + size -= read; + offset += read; + + /* are we done? */ + if (size == 0) + break; + + GST_LOG_OBJECT (src, "%u bytes left to read for this chunk", size); + + /* corner case, this should never really happen (assuming basesrc clips + * requests beyond the file size) */ + if (read < to_read) { + if (src->cur_part == src->num_parts - 1) { + /* last file part, stop reading and truncate buffer */ + GST_BUFFER_SIZE (buf) = offset - GST_BUFFER_OFFSET (buf); + break; + } else { + goto file_part_changed; + } + } + + ++src->cur_part; + cur_part = src->parts[src->cur_part]; + } + + GST_BUFFER_OFFSET_END (buf) = offset; + + *buffer = buf; + GST_LOG_OBJECT (src, "read %u bytes into buf %p", GST_BUFFER_SIZE (buf), buf); + return GST_FLOW_OK; + +/* ERRORS */ +seek_failed: + { + if (err->code == G_IO_ERROR_CANCELLED) + goto cancelled; + + GST_ELEMENT_ERROR (src, RESOURCE, SEEK, (NULL), + ("Seek to %" G_GUINT64_FORMAT " in %s failed", read_offset, + cur_part.path)); + g_error_free (err); + gst_buffer_unref (buf); + return GST_FLOW_ERROR; + } +read_failed: + { + if (err->code == G_IO_ERROR_CANCELLED) + goto cancelled; + + GST_ELEMENT_ERROR (src, RESOURCE, READ, ("%s", err->message), + ("Read from %" G_GUINT64_FORMAT " in %s failed", read_offset, + cur_part.path)); + g_error_free (err); + gst_buffer_unref (buf); + return GST_FLOW_ERROR; + } +file_part_changed: + { + GST_ELEMENT_ERROR (src, RESOURCE, READ, + ("Read error while reading file part %s", cur_part.path), + ("Short read in file part, file may have been modified since start")); + gst_buffer_unref (buf); + return GST_FLOW_ERROR; + } +cancelled: + { + GST_DEBUG_OBJECT (src, "I/O operation cancelled from another thread"); + g_error_free (err); + gst_buffer_unref (buf); + return GST_FLOW_WRONG_STATE; + } +} diff --git a/gst/multifile/gstsplitfilesrc.h b/gst/multifile/gstsplitfilesrc.h new file mode 100644 index 0000000..f52b3bf --- /dev/null +++ b/gst/multifile/gstsplitfilesrc.h @@ -0,0 +1,74 @@ +/* GStreamer Split File Source + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifndef __GST_SPLIT_FILE_SRC_H__ +#define __GST_SPLIT_FILE_SRC_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SPLIT_FILE_SRC \ + (gst_split_file_src_get_type()) +#define GST_SPLIT_FILE_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SPLIT_FILE_SRC,GstSplitFileSrc)) +#define GST_SPLIT_FILE_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SPLIT_FILE_SRC,GstSplitFileSrcClass)) +#define GST_IS_SPLIT_FILE_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SPLIT_FILE_SRC)) +#define GST_IS_SPLIT_FILE_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SPLIT_FILE_SRC)) + +typedef struct _GstFilePart GstFilePart; +typedef struct _GstSplitFileSrc GstSplitFileSrc; +typedef struct _GstSplitFileSrcClass GstSplitFileSrcClass; + +struct _GstFilePart +{ + GFileInputStream *stream; + gchar *path; + guint64 start; /* inclusive */ + guint64 stop; /* inclusive */ +}; + +struct _GstSplitFileSrc +{ + GstBaseSrc parent; + + gchar *location; /* OBJECT_LOCK */ + + GstFilePart *parts; + guint num_parts; + + guint cur_part; /* part used last (likely also to be used next) */ + + GCancellable *cancellable; /* so we can interrupt blocking operations */ +}; + +struct _GstSplitFileSrcClass +{ + GstBaseSrcClass parent_class; +}; + +GType gst_split_file_src_get_type (void); + +G_END_DECLS + +#endif /* __GST_SPLIT_FILE_SRC_H__ */ diff --git a/gst/multifile/patternspec.c b/gst/multifile/patternspec.c new file mode 100644 index 0000000..59de8d1 --- /dev/null +++ b/gst/multifile/patternspec.c @@ -0,0 +1,334 @@ +/* GPattern copy that supports raw (non-utf8) matching + * based on: GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. + * + * 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 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., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "patternspec.h" +#include + +typedef enum +{ + MATCH_ALL, /* "*A?A*" */ + MATCH_ALL_TAIL, /* "*A?AA" */ + MATCH_HEAD, /* "AAAA*" */ + MATCH_TAIL, /* "*AAAA" */ + MATCH_EXACT, /* "AAAAA" */ + MATCH_LAST +} MatchType; + +struct _PatternSpec +{ + MatchMode match_mode; + MatchType match_type; + guint pattern_length; + guint min_length; + guint max_length; + gchar *pattern; +}; + +static inline gchar * +raw_strreverse (const gchar * str, gssize size) +{ + g_assert (size > 0); + return g_strreverse (g_strndup (str, size)); +} + +static inline gboolean +pattern_ph_match (const gchar * match_pattern, MatchMode match_mode, + const gchar * match_string, gboolean * wildcard_reached_p) +{ + register const gchar *pattern, *string; + register gchar ch; + + pattern = match_pattern; + string = match_string; + + ch = *pattern; + pattern++; + while (ch) { + switch (ch) { + case '?': + if (!*string) + return FALSE; + if (match_mode == MATCH_MODE_UTF8) + string = g_utf8_next_char (string); + else + ++string; + break; + + case '*': + *wildcard_reached_p = TRUE; + do { + ch = *pattern; + pattern++; + if (ch == '?') { + if (!*string) + return FALSE; + if (match_mode == MATCH_MODE_UTF8) + string = g_utf8_next_char (string); + else + ++string; + } + } + while (ch == '*' || ch == '?'); + if (!ch) + return TRUE; + do { + gboolean next_wildcard_reached = FALSE; + while (ch != *string) { + if (!*string) + return FALSE; + if (match_mode == MATCH_MODE_UTF8) + string = g_utf8_next_char (string); + else + ++string; + } + string++; + if (pattern_ph_match (pattern, match_mode, string, + &next_wildcard_reached)) + return TRUE; + if (next_wildcard_reached) + /* the forthcoming pattern substring up to the next wildcard has + * been matched, but a mismatch occoured for the rest of the + * pattern, following the next wildcard. + * there's no need to advance the current match position any + * further if the rest pattern will not match. + */ + return FALSE; + } + while (*string); + break; + + default: + if (ch == *string) + string++; + else + return FALSE; + break; + } + + ch = *pattern; + pattern++; + } + + return *string == 0; +} + +static gboolean +pattern_match (PatternSpec * pspec, guint string_length, + const gchar * string, const gchar * string_reversed) +{ + MatchMode match_mode; + + g_assert (pspec != NULL); + g_assert (string != NULL); + + if (string_length < pspec->min_length || string_length > pspec->max_length) + return FALSE; + + match_mode = pspec->match_mode; + if (match_mode == MATCH_MODE_AUTO) { + if (!g_utf8_validate (string, string_length, NULL)) + match_mode = MATCH_MODE_RAW; + else + match_mode = MATCH_MODE_UTF8; + } + + switch (pspec->match_type) { + gboolean dummy; + case MATCH_ALL: + return pattern_ph_match (pspec->pattern, match_mode, string, &dummy); + case MATCH_ALL_TAIL: + if (string_reversed) + return pattern_ph_match (pspec->pattern, match_mode, string_reversed, + &dummy); + else { + gboolean result; + gchar *tmp; + if (match_mode == MATCH_MODE_UTF8) { + tmp = g_utf8_strreverse (string, string_length); + } else { + tmp = raw_strreverse (string, string_length); + } + result = pattern_ph_match (pspec->pattern, match_mode, tmp, &dummy); + g_free (tmp); + return result; + } + case MATCH_HEAD: + if (pspec->pattern_length == string_length) + return memcmp (pspec->pattern, string, string_length) == 0; + else if (pspec->pattern_length) + return memcmp (pspec->pattern, string, pspec->pattern_length) == 0; + else + return TRUE; + case MATCH_TAIL: + if (pspec->pattern_length) + /* compare incl. NUL terminator */ + return memcmp (pspec->pattern, + string + (string_length - pspec->pattern_length), + pspec->pattern_length + 1) == 0; + else + return TRUE; + case MATCH_EXACT: + if (pspec->pattern_length != string_length) + return FALSE; + else + return memcmp (pspec->pattern, string, string_length) == 0; + default: + g_return_val_if_fail (pspec->match_type < MATCH_LAST, FALSE); + return FALSE; + } +} + +PatternSpec * +pattern_spec_new (const gchar * pattern, MatchMode match_mode) +{ + PatternSpec *pspec; + gboolean seen_joker = FALSE, seen_wildcard = FALSE, more_wildcards = FALSE; + gint hw_pos = -1, tw_pos = -1, hj_pos = -1, tj_pos = -1; + gboolean follows_wildcard = FALSE; + guint pending_jokers = 0; + const gchar *s; + gchar *d; + guint i; + + g_assert (pattern != NULL); + g_assert (match_mode != MATCH_MODE_UTF8 + || g_utf8_validate (pattern, -1, NULL)); + + /* canonicalize pattern and collect necessary stats */ + pspec = g_new (PatternSpec, 1); + pspec->match_mode = match_mode; + pspec->pattern_length = strlen (pattern); + pspec->min_length = 0; + pspec->max_length = 0; + pspec->pattern = g_new (gchar, pspec->pattern_length + 1); + + if (pspec->match_mode == MATCH_MODE_AUTO) { + if (!g_utf8_validate (pattern, -1, NULL)) + pspec->match_mode = MATCH_MODE_RAW; + } + + d = pspec->pattern; + for (i = 0, s = pattern; *s != 0; s++) { + switch (*s) { + case '*': + if (follows_wildcard) { /* compress multiple wildcards */ + pspec->pattern_length--; + continue; + } + follows_wildcard = TRUE; + if (hw_pos < 0) + hw_pos = i; + tw_pos = i; + break; + case '?': + pending_jokers++; + pspec->min_length++; + if (pspec->match_mode == MATCH_MODE_RAW) { + pspec->max_length += 1; + } else { + pspec->max_length += 4; /* maximum UTF-8 character length */ + } + continue; + default: + for (; pending_jokers; pending_jokers--, i++) { + *d++ = '?'; + if (hj_pos < 0) + hj_pos = i; + tj_pos = i; + } + follows_wildcard = FALSE; + pspec->min_length++; + pspec->max_length++; + break; + } + *d++ = *s; + i++; + } + for (; pending_jokers; pending_jokers--) { + *d++ = '?'; + if (hj_pos < 0) + hj_pos = i; + tj_pos = i; + } + *d++ = 0; + seen_joker = hj_pos >= 0; + seen_wildcard = hw_pos >= 0; + more_wildcards = seen_wildcard && hw_pos != tw_pos; + if (seen_wildcard) + pspec->max_length = G_MAXUINT; + + /* special case sole head/tail wildcard or exact matches */ + if (!seen_joker && !more_wildcards) { + if (pspec->pattern[0] == '*') { + pspec->match_type = MATCH_TAIL; + memmove (pspec->pattern, pspec->pattern + 1, --pspec->pattern_length); + pspec->pattern[pspec->pattern_length] = 0; + return pspec; + } + if (pspec->pattern_length > 0 && + pspec->pattern[pspec->pattern_length - 1] == '*') { + pspec->match_type = MATCH_HEAD; + pspec->pattern[--pspec->pattern_length] = 0; + return pspec; + } + if (!seen_wildcard) { + pspec->match_type = MATCH_EXACT; + return pspec; + } + } + + /* now just need to distinguish between head or tail match start */ + tw_pos = pspec->pattern_length - 1 - tw_pos; /* last pos to tail distance */ + tj_pos = pspec->pattern_length - 1 - tj_pos; /* last pos to tail distance */ + if (seen_wildcard) + pspec->match_type = tw_pos > hw_pos ? MATCH_ALL_TAIL : MATCH_ALL; + else /* seen_joker */ + pspec->match_type = tj_pos > hj_pos ? MATCH_ALL_TAIL : MATCH_ALL; + if (pspec->match_type == MATCH_ALL_TAIL) { + gchar *tmp = pspec->pattern; + + if (pspec->match_mode == MATCH_MODE_RAW) { + pspec->pattern = raw_strreverse (pspec->pattern, pspec->pattern_length); + } else { + pspec->pattern = + g_utf8_strreverse (pspec->pattern, pspec->pattern_length); + } + g_free (tmp); + } + return pspec; +} + +void +pattern_spec_free (PatternSpec * pspec) +{ + g_assert (pspec != NULL); + + g_free (pspec->pattern); + g_free (pspec); +} + +gboolean +pattern_match_string (PatternSpec * pspec, const gchar * string) +{ + return pattern_match (pspec, strlen (string), string, NULL); +} diff --git a/gst/multifile/patternspec.h b/gst/multifile/patternspec.h new file mode 100644 index 0000000..c3e9436 --- /dev/null +++ b/gst/multifile/patternspec.h @@ -0,0 +1,47 @@ +/* GPattern copy that supports raw (non-utf8) matching + * based on: GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. + * + * 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 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., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __PATTERN_SPEC_H__ +#define __PATTERN_SPEC_H__ + +#include + +G_BEGIN_DECLS + +typedef enum +{ + MATCH_MODE_AUTO = 0, + MATCH_MODE_UTF8, + MATCH_MODE_RAW +} MatchMode; + +typedef struct _PatternSpec PatternSpec; + +PatternSpec * pattern_spec_new (const gchar * pattern, + MatchMode match_mode); + +void pattern_spec_free (PatternSpec * pspec); + +gboolean pattern_match_string (PatternSpec * pspec, + const gchar * string); + +G_END_DECLS + +#endif /* __PATTERN_SPEC_H__ */ diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in index af8a6e8..7a421f3 100644 --- a/gst/multipart/Makefile.in +++ b/gst/multipart/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +117,8 @@ am_libgstmultipart_la_OBJECTS = libgstmultipart_la-multipart.lo \ libgstmultipart_la-multipartdemux.lo \ libgstmultipart_la-multipartmux.lo libgstmultipart_la_OBJECTS = $(am_libgstmultipart_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstmultipart_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -129,21 +134,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstmultipart_la_SOURCES) DIST_SOURCES = $(libgstmultipart_la_SOURCES) @@ -226,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -301,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -325,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -359,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -423,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -457,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -550,7 +550,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstmultipart.la: $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_DEPENDENCIES) +libgstmultipart.la: $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_DEPENDENCIES) $(EXTRA_libgstmultipart_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstmultipart_la_LINK) -rpath $(plugindir) $(libgstmultipart_la_OBJECTS) $(libgstmultipart_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -566,50 +566,44 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstmultipart_la-multipart.lo: multipart.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipart.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipart.Tpo -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipart.Tpo $(DEPDIR)/libgstmultipart_la-multipart.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='multipart.c' object='libgstmultipart_la-multipart.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='multipart.c' object='libgstmultipart_la-multipart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipart.lo `test -f 'multipart.c' || echo '$(srcdir)/'`multipart.c libgstmultipart_la-multipartdemux.lo: multipartdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartdemux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartdemux.Tpo -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipartdemux.Tpo $(DEPDIR)/libgstmultipart_la-multipartdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='multipartdemux.c' object='libgstmultipart_la-multipartdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='multipartdemux.c' object='libgstmultipart_la-multipartdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartdemux.lo `test -f 'multipartdemux.c' || echo '$(srcdir)/'`multipartdemux.c libgstmultipart_la-multipartmux.lo: multipartmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -MT libgstmultipart_la-multipartmux.lo -MD -MP -MF $(DEPDIR)/libgstmultipart_la-multipartmux.Tpo -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmultipart_la-multipartmux.Tpo $(DEPDIR)/libgstmultipart_la-multipartmux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='multipartmux.c' object='libgstmultipart_la-multipartmux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='multipartmux.c' object='libgstmultipart_la-multipartmux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmultipart_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmultipart_la_CFLAGS) $(CFLAGS) -c -o libgstmultipart_la-multipartmux.lo `test -f 'multipartmux.c' || echo '$(srcdir)/'`multipartmux.c mostlyclean-libtool: -rm -f *.lo @@ -716,10 +710,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/multipart/multipartdemux.c b/gst/multipart/multipartdemux.c index a5a51a2..525143c 100644 --- a/gst/multipart/multipartdemux.c +++ b/gst/multipart/multipartdemux.c @@ -62,14 +62,16 @@ enum LAST_SIGNAL }; -#define DEFAULT_AUTOSCAN FALSE -#define DEFAULT_BOUNDARY NULL +#define DEFAULT_AUTOSCAN FALSE +#define DEFAULT_BOUNDARY NULL +#define DEFAULT_SINGLE_STREAM FALSE enum { PROP_0, PROP_AUTOSCAN, - PROP_BOUNDARY + PROP_BOUNDARY, + PROP_SINGLE_STREAM }; static GstStaticPadTemplate multipart_demux_src_template_factory = @@ -132,10 +134,10 @@ gst_multipart_demux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&multipart_demux_sink_template_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&multipart_demux_src_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &multipart_demux_sink_template_factory); + gst_element_class_add_static_pad_template (element_class, + &multipart_demux_src_template_factory); gst_element_class_set_details_simple (element_class, "Multipart demuxer", "Codec/Demuxer", "demux multipart streams", @@ -165,6 +167,20 @@ gst_multipart_demux_class_init (GstMultipartDemuxClass * klass) "Try to autofind the prefix (deprecated unused, see boundary)", DEFAULT_AUTOSCAN, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstMultipartDemux::single-stream: + * + * Assume that there is only one stream whose content-type will + * not change and emit no-more-pads as soon as the first boundary + * content is parsed, decoded, and pads are linked. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_SINGLE_STREAM, + g_param_spec_boolean ("single-stream", "Single Stream", + "Assume that there is only one stream whose content-type will not change and emit no-more-pads as soon as the first boundary content is parsed, decoded, and pads are linked", + DEFAULT_SINGLE_STREAM, G_PARAM_READWRITE)); + /* populate gst names and mime types pairs */ klass->gstnames = g_hash_table_new (g_str_hash, g_str_equal); for (i = 0; gstnames[i].key; i++) { @@ -194,6 +210,7 @@ gst_multipart_demux_init (GstMultipartDemux * multipart, multipart->header_completed = FALSE; multipart->scanpos = 0; multipart->autoscan = DEFAULT_AUTOSCAN; + multipart->singleStream = DEFAULT_SINGLE_STREAM; } static void @@ -324,6 +341,10 @@ gst_multipart_find_pad_by_mime (GstMultipartDemux * demux, gchar * mime, *created = TRUE; } + if (demux->singleStream) { + gst_element_no_more_pads (GST_ELEMENT_CAST (demux)); + } + return mppad; } } @@ -664,6 +685,9 @@ gst_multipart_set_property (GObject * object, guint prop_id, case PROP_AUTOSCAN: filter->autoscan = g_value_get_boolean (value); break; + case PROP_SINGLE_STREAM: + filter->singleStream = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -686,6 +710,9 @@ gst_multipart_get_property (GObject * object, guint prop_id, case PROP_AUTOSCAN: g_value_set_boolean (value, filter->autoscan); break; + case PROP_SINGLE_STREAM: + g_value_set_boolean (value, filter->singleStream); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; diff --git a/gst/multipart/multipartdemux.h b/gst/multipart/multipartdemux.h index 36f935d..5d37bc9 100644 --- a/gst/multipart/multipartdemux.h +++ b/gst/multipart/multipartdemux.h @@ -84,6 +84,8 @@ struct _GstMultipartDemux /* Index inside the current data when manually looking for the boundary */ gint scanpos; + + gboolean singleStream; }; struct _GstMultipartDemuxClass diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c index 9f246dd..9d3e56a 100644 --- a/gst/multipart/multipartmux.c +++ b/gst/multipart/multipartmux.c @@ -128,10 +128,8 @@ gst_multipart_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Multipart muxer", "Codec/Muxer", "mux multipart streams", "Wim Taymans "); @@ -427,6 +425,7 @@ gst_multipart_mux_collected (GstCollectPads * pads, GstMultipartMux * mux) gchar *header = NULL; size_t headerlen; GstBuffer *headerbuf = NULL; + GstBuffer *footerbuf = NULL; GstBuffer *databuf = NULL; GstStructure *structure = NULL; const gchar *mime; @@ -484,7 +483,7 @@ gst_multipart_mux_collected (GstCollectPads * pads, GstMultipartMux * mux) /* get the mime type for the structure */ mime = gst_multipart_mux_get_mime (mux, structure); - header = g_strdup_printf ("\r\n--%s\r\nContent-Type: %s\r\n" + header = g_strdup_printf ("--%s\r\nContent-Type: %s\r\n" "Content-Length: %u\r\n\r\n", mux->boundary, mime, GST_BUFFER_SIZE (best->buffer)); headerlen = strlen (header); @@ -529,6 +528,29 @@ gst_multipart_mux_collected (GstCollectPads * pads, GstMultipartMux * mux) GST_DEBUG_OBJECT (mux, "pushing %u bytes data buffer", GST_BUFFER_SIZE (databuf)); ret = gst_pad_push (mux->srcpad, databuf); + if (ret != GST_FLOW_OK) + /* push always takes ownership of the buffer, even after an error, so we + * don't need to unref headerbuf here. */ + goto beach; + + ret = gst_pad_alloc_buffer_and_set_caps (mux->srcpad, GST_BUFFER_OFFSET_NONE, + 2, GST_PAD_CAPS (mux->srcpad), &footerbuf); + if (ret != GST_FLOW_OK) + goto alloc_failed; + + memcpy (GST_BUFFER_DATA (footerbuf), "\r\n", 2); + + /* the footer has the same timestamp as the data buffer and has a + * duration of 0 */ + GST_BUFFER_TIMESTAMP (footerbuf) = best->timestamp; + GST_BUFFER_DURATION (footerbuf) = 0; + GST_BUFFER_OFFSET (footerbuf) = mux->offset; + mux->offset += 2; + GST_BUFFER_OFFSET_END (footerbuf) = mux->offset; + GST_BUFFER_FLAG_SET (footerbuf, GST_BUFFER_FLAG_DELTA_UNIT); + + GST_DEBUG_OBJECT (mux, "pushing 2 bytes footer buffer"); + ret = gst_pad_push (mux->srcpad, footerbuf); beach: if (best && best->buffer) { diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in index 0810bfe..81018de 100644 --- a/gst/replaygain/Makefile.in +++ b/gst/replaygain/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +120,8 @@ am_libgstreplaygain_la_OBJECTS = libgstreplaygain_la-gstrganalysis.lo \ libgstreplaygain_la-replaygain.lo \ libgstreplaygain_la-rganalysis.lo libgstreplaygain_la_OBJECTS = $(am_libgstreplaygain_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstreplaygain_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -132,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstreplaygain_la_SOURCES) DIST_SOURCES = $(libgstreplaygain_la_SOURCES) @@ -229,7 +234,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -304,7 +312,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -328,6 +335,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -362,18 +370,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -426,6 +426,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -460,7 +461,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -572,7 +572,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstreplaygain.la: $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_DEPENDENCIES) +libgstreplaygain.la: $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_DEPENDENCIES) $(EXTRA_libgstreplaygain_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstreplaygain_la_LINK) -rpath $(plugindir) $(libgstreplaygain_la_OBJECTS) $(libgstreplaygain_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -590,66 +590,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstreplaygain_la-gstrganalysis.lo: gstrganalysis.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Tpo -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Tpo $(DEPDIR)/libgstreplaygain_la-gstrganalysis.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrganalysis.c' object='libgstreplaygain_la-gstrganalysis.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrganalysis.c' object='libgstreplaygain_la-gstrganalysis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrganalysis.lo `test -f 'gstrganalysis.c' || echo '$(srcdir)/'`gstrganalysis.c libgstreplaygain_la-gstrglimiter.lo: gstrglimiter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrglimiter.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Tpo -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Tpo $(DEPDIR)/libgstreplaygain_la-gstrglimiter.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrglimiter.c' object='libgstreplaygain_la-gstrglimiter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrglimiter.c' object='libgstreplaygain_la-gstrglimiter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrglimiter.lo `test -f 'gstrglimiter.c' || echo '$(srcdir)/'`gstrglimiter.c libgstreplaygain_la-gstrgvolume.lo: gstrgvolume.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-gstrgvolume.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Tpo -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Tpo $(DEPDIR)/libgstreplaygain_la-gstrgvolume.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrgvolume.c' object='libgstreplaygain_la-gstrgvolume.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrgvolume.c' object='libgstreplaygain_la-gstrgvolume.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-gstrgvolume.lo `test -f 'gstrgvolume.c' || echo '$(srcdir)/'`gstrgvolume.c libgstreplaygain_la-replaygain.lo: replaygain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-replaygain.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-replaygain.Tpo -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-replaygain.Tpo $(DEPDIR)/libgstreplaygain_la-replaygain.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='replaygain.c' object='libgstreplaygain_la-replaygain.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='replaygain.c' object='libgstreplaygain_la-replaygain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-replaygain.lo `test -f 'replaygain.c' || echo '$(srcdir)/'`replaygain.c libgstreplaygain_la-rganalysis.lo: rganalysis.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -MT libgstreplaygain_la-rganalysis.lo -MD -MP -MF $(DEPDIR)/libgstreplaygain_la-rganalysis.Tpo -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreplaygain_la-rganalysis.Tpo $(DEPDIR)/libgstreplaygain_la-rganalysis.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rganalysis.c' object='libgstreplaygain_la-rganalysis.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rganalysis.c' object='libgstreplaygain_la-rganalysis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstreplaygain_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreplaygain_la_CFLAGS) $(CFLAGS) -c -o libgstreplaygain_la-rganalysis.lo `test -f 'rganalysis.c' || echo '$(srcdir)/'`rganalysis.c mostlyclean-libtool: -rm -f *.lo @@ -756,10 +748,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c index 8a277c3..4a3abdb 100644 --- a/gst/replaygain/gstrganalysis.c +++ b/gst/replaygain/gstrganalysis.c @@ -155,10 +155,8 @@ gst_rg_analysis_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "ReplayGain analysis", "Filter/Analyzer/Audio", "Perform the ReplayGain analysis", diff --git a/gst/replaygain/gstrglimiter.c b/gst/replaygain/gstrglimiter.c index 2201eca..2fb387b 100644 --- a/gst/replaygain/gstrglimiter.c +++ b/gst/replaygain/gstrglimiter.c @@ -83,10 +83,8 @@ gst_rg_limiter_base_init (gpointer g_class) { GstElementClass *element_class = g_class; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "ReplayGain limiter", "Filter/Effect/Audio", "Apply signal compression to raw audio data", diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c index b75cbde..d3d105a 100644 --- a/gst/replaygain/gstrgvolume.c +++ b/gst/replaygain/gstrgvolume.c @@ -143,10 +143,9 @@ gst_rg_volume_base_init (gpointer g_class) { GstElementClass *element_class = g_class; - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "ReplayGain volume", "Filter/Effect/Audio", "Apply ReplayGain volume adjustment", diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am index dcccb66..5c43cce 100644 --- a/gst/rtp/Makefile.am +++ b/gst/rtp/Makefile.am @@ -86,6 +86,7 @@ libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-@GST_MAJORMINOR@ \ -lgsttag-@GST_MAJORMINOR@ \ -lgstrtp-@GST_MAJORMINOR@ \ + -lgstpbutils-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_LIBS) \ $(WINSOCK2_LIBS) $(LIBM) libgstrtp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in index 92983c4..301db36 100644 --- a/gst/rtp/Makefile.in +++ b/gst/rtp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -152,8 +157,8 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-fnv1hash.lo \ libgstrtp_la-gstrtpvorbispay.lo \ libgstrtp_la-gstrtpvrawdepay.lo libgstrtp_la-gstrtpvrawpay.lo libgstrtp_la_OBJECTS = $(am_libgstrtp_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -169,21 +174,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtp_la_SOURCES) DIST_SOURCES = $(libgstrtp_la_SOURCES) @@ -266,7 +271,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -341,7 +349,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -365,6 +372,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -399,18 +407,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -463,6 +463,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -497,7 +498,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -600,6 +600,7 @@ libgstrtp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstaudio-@GST_MAJORMINOR@ \ -lgsttag-@GST_MAJORMINOR@ \ -lgstrtp-@GST_MAJORMINOR@ \ + -lgstpbutils-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_LIBS) \ $(WINSOCK2_LIBS) $(LIBM) @@ -743,7 +744,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtp.la: $(libgstrtp_la_OBJECTS) $(libgstrtp_la_DEPENDENCIES) +libgstrtp.la: $(libgstrtp_la_OBJECTS) $(libgstrtp_la_DEPENDENCIES) $(EXTRA_libgstrtp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtp_la_LINK) -rpath $(plugindir) $(libgstrtp_la_OBJECTS) $(libgstrtp_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -828,602 +829,527 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtp_la-fnv1hash.lo: fnv1hash.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-fnv1hash.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-fnv1hash.Tpo $(DEPDIR)/libgstrtp_la-fnv1hash.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fnv1hash.c' object='libgstrtp_la-fnv1hash.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fnv1hash.c' object='libgstrtp_la-fnv1hash.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-fnv1hash.lo `test -f 'fnv1hash.c' || echo '$(srcdir)/'`fnv1hash.c libgstrtp_la-gstrtp.lo: gstrtp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtp.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtp.Tpo -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtp.Tpo $(DEPDIR)/libgstrtp_la-gstrtp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtp.c' object='libgstrtp_la-gstrtp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtp.c' object='libgstrtp_la-gstrtp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtp.lo `test -f 'gstrtp.c' || echo '$(srcdir)/'`gstrtp.c libgstrtp_la-gstrtpchannels.lo: gstrtpchannels.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpchannels.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpchannels.Tpo -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpchannels.Tpo $(DEPDIR)/libgstrtp_la-gstrtpchannels.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpchannels.c' object='libgstrtp_la-gstrtpchannels.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpchannels.c' object='libgstrtp_la-gstrtpchannels.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpchannels.lo `test -f 'gstrtpchannels.c' || echo '$(srcdir)/'`gstrtpchannels.c libgstrtp_la-gstrtpdepay.lo: gstrtpdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdepay.Tpo -c -o libgstrtp_la-gstrtpdepay.lo `test -f 'gstrtpdepay.c' || echo '$(srcdir)/'`gstrtpdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdepay.c' object='libgstrtp_la-gstrtpdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdepay.c' object='libgstrtp_la-gstrtpdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdepay.lo `test -f 'gstrtpdepay.c' || echo '$(srcdir)/'`gstrtpdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdepay.lo `test -f 'gstrtpdepay.c' || echo '$(srcdir)/'`gstrtpdepay.c libgstrtp_la-gstrtpac3depay.lo: gstrtpac3depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpac3depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Tpo -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpac3depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpac3depay.c' object='libgstrtp_la-gstrtpac3depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpac3depay.c' object='libgstrtp_la-gstrtpac3depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3depay.lo `test -f 'gstrtpac3depay.c' || echo '$(srcdir)/'`gstrtpac3depay.c libgstrtp_la-gstrtpac3pay.lo: gstrtpac3pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpac3pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Tpo -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpac3pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpac3pay.c' object='libgstrtp_la-gstrtpac3pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpac3pay.c' object='libgstrtp_la-gstrtpac3pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpac3pay.lo `test -f 'gstrtpac3pay.c' || echo '$(srcdir)/'`gstrtpac3pay.c libgstrtp_la-gstrtpbvdepay.lo: gstrtpbvdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpbvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Tpo -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpbvdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpbvdepay.c' object='libgstrtp_la-gstrtpbvdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpbvdepay.c' object='libgstrtp_la-gstrtpbvdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvdepay.lo `test -f 'gstrtpbvdepay.c' || echo '$(srcdir)/'`gstrtpbvdepay.c libgstrtp_la-gstrtpbvpay.lo: gstrtpbvpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpbvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Tpo -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpbvpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpbvpay.c' object='libgstrtp_la-gstrtpbvpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpbvpay.c' object='libgstrtp_la-gstrtpbvpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpbvpay.lo `test -f 'gstrtpbvpay.c' || echo '$(srcdir)/'`gstrtpbvpay.c libgstrtp_la-gstrtpceltdepay.lo: gstrtpceltdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpceltdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Tpo -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpceltdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpceltdepay.c' object='libgstrtp_la-gstrtpceltdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpceltdepay.c' object='libgstrtp_la-gstrtpceltdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltdepay.lo `test -f 'gstrtpceltdepay.c' || echo '$(srcdir)/'`gstrtpceltdepay.c libgstrtp_la-gstrtpceltpay.lo: gstrtpceltpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpceltpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Tpo -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpceltpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpceltpay.c' object='libgstrtp_la-gstrtpceltpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpceltpay.c' object='libgstrtp_la-gstrtpceltpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpceltpay.lo `test -f 'gstrtpceltpay.c' || echo '$(srcdir)/'`gstrtpceltpay.c libgstrtp_la-gstrtpdvdepay.lo: gstrtpdvdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpdvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Tpo -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpdvdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdvdepay.c' object='libgstrtp_la-gstrtpdvdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdvdepay.c' object='libgstrtp_la-gstrtpdvdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvdepay.lo `test -f 'gstrtpdvdepay.c' || echo '$(srcdir)/'`gstrtpdvdepay.c libgstrtp_la-gstrtpdvpay.lo: gstrtpdvpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpdvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Tpo -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpdvpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdvpay.c' object='libgstrtp_la-gstrtpdvpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdvpay.c' object='libgstrtp_la-gstrtpdvpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpdvpay.lo `test -f 'gstrtpdvpay.c' || echo '$(srcdir)/'`gstrtpdvpay.c libgstrtp_la-gstrtpgstdepay.lo: gstrtpgstdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgstdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Tpo -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpgstdepay.c' object='libgstrtp_la-gstrtpgstdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpgstdepay.c' object='libgstrtp_la-gstrtpgstdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstdepay.lo `test -f 'gstrtpgstdepay.c' || echo '$(srcdir)/'`gstrtpgstdepay.c libgstrtp_la-gstrtpgstpay.lo: gstrtpgstpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgstpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Tpo -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgstpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpgstpay.c' object='libgstrtp_la-gstrtpgstpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpgstpay.c' object='libgstrtp_la-gstrtpgstpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgstpay.lo `test -f 'gstrtpgstpay.c' || echo '$(srcdir)/'`gstrtpgstpay.c libgstrtp_la-gstrtpilbcdepay.lo: gstrtpilbcdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpilbcdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Tpo -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpilbcdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpilbcdepay.c' object='libgstrtp_la-gstrtpilbcdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpilbcdepay.c' object='libgstrtp_la-gstrtpilbcdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcdepay.lo `test -f 'gstrtpilbcdepay.c' || echo '$(srcdir)/'`gstrtpilbcdepay.c libgstrtp_la-gstrtpilbcpay.lo: gstrtpilbcpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpilbcpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Tpo -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpilbcpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpilbcpay.c' object='libgstrtp_la-gstrtpilbcpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpilbcpay.c' object='libgstrtp_la-gstrtpilbcpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpilbcpay.lo `test -f 'gstrtpilbcpay.c' || echo '$(srcdir)/'`gstrtpilbcpay.c libgstrtp_la-gstrtpmpadepay.lo: gstrtpmpadepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Tpo -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpadepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmpadepay.c' object='libgstrtp_la-gstrtpmpadepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmpadepay.c' object='libgstrtp_la-gstrtpmpadepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpadepay.lo `test -f 'gstrtpmpadepay.c' || echo '$(srcdir)/'`gstrtpmpadepay.c libgstrtp_la-gstrtpmpapay.lo: gstrtpmpapay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Tpo -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpapay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmpapay.c' object='libgstrtp_la-gstrtpmpapay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmpapay.c' object='libgstrtp_la-gstrtpmpapay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpapay.lo `test -f 'gstrtpmpapay.c' || echo '$(srcdir)/'`gstrtpmpapay.c libgstrtp_la-gstrtpmparobustdepay.lo: gstrtpmparobustdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmparobustdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Tpo -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmparobustdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmparobustdepay.c' object='libgstrtp_la-gstrtpmparobustdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmparobustdepay.c' object='libgstrtp_la-gstrtpmparobustdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmparobustdepay.lo `test -f 'gstrtpmparobustdepay.c' || echo '$(srcdir)/'`gstrtpmparobustdepay.c libgstrtp_la-gstrtpmpvdepay.lo: gstrtpmpvdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Tpo -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpvdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmpvdepay.c' object='libgstrtp_la-gstrtpmpvdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmpvdepay.c' object='libgstrtp_la-gstrtpmpvdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvdepay.lo `test -f 'gstrtpmpvdepay.c' || echo '$(srcdir)/'`gstrtpmpvdepay.c libgstrtp_la-gstrtpmpvpay.lo: gstrtpmpvpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmpvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Tpo -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmpvpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmpvpay.c' object='libgstrtp_la-gstrtpmpvpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmpvpay.c' object='libgstrtp_la-gstrtpmpvpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmpvpay.lo `test -f 'gstrtpmpvpay.c' || echo '$(srcdir)/'`gstrtpmpvpay.c libgstrtp_la-gstrtppcmadepay.lo: gstrtppcmadepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmadepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Tpo -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmadepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtppcmadepay.c' object='libgstrtp_la-gstrtppcmadepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtppcmadepay.c' object='libgstrtp_la-gstrtppcmadepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmadepay.lo `test -f 'gstrtppcmadepay.c' || echo '$(srcdir)/'`gstrtppcmadepay.c libgstrtp_la-gstrtppcmudepay.lo: gstrtppcmudepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmudepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Tpo -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmudepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtppcmudepay.c' object='libgstrtp_la-gstrtppcmudepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtppcmudepay.c' object='libgstrtp_la-gstrtppcmudepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmudepay.lo `test -f 'gstrtppcmudepay.c' || echo '$(srcdir)/'`gstrtppcmudepay.c libgstrtp_la-gstrtppcmupay.lo: gstrtppcmupay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmupay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Tpo -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmupay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtppcmupay.c' object='libgstrtp_la-gstrtppcmupay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtppcmupay.c' object='libgstrtp_la-gstrtppcmupay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmupay.lo `test -f 'gstrtppcmupay.c' || echo '$(srcdir)/'`gstrtppcmupay.c libgstrtp_la-gstrtppcmapay.lo: gstrtppcmapay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtppcmapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Tpo -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtppcmapay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtppcmapay.c' object='libgstrtp_la-gstrtppcmapay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtppcmapay.c' object='libgstrtp_la-gstrtppcmapay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtppcmapay.lo `test -f 'gstrtppcmapay.c' || echo '$(srcdir)/'`gstrtppcmapay.c libgstrtp_la-gstrtpg722depay.lo: gstrtpg722depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg722depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Tpo -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg722depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg722depay.c' object='libgstrtp_la-gstrtpg722depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg722depay.c' object='libgstrtp_la-gstrtpg722depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722depay.lo `test -f 'gstrtpg722depay.c' || echo '$(srcdir)/'`gstrtpg722depay.c libgstrtp_la-gstrtpg722pay.lo: gstrtpg722pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg722pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Tpo -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg722pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg722pay.c' object='libgstrtp_la-gstrtpg722pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg722pay.c' object='libgstrtp_la-gstrtpg722pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg722pay.lo `test -f 'gstrtpg722pay.c' || echo '$(srcdir)/'`gstrtpg722pay.c libgstrtp_la-gstrtpg723depay.lo: gstrtpg723depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg723depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Tpo -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg723depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg723depay.c' object='libgstrtp_la-gstrtpg723depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg723depay.c' object='libgstrtp_la-gstrtpg723depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723depay.lo `test -f 'gstrtpg723depay.c' || echo '$(srcdir)/'`gstrtpg723depay.c libgstrtp_la-gstrtpg723pay.lo: gstrtpg723pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg723pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Tpo -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg723pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg723pay.c' object='libgstrtp_la-gstrtpg723pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg723pay.c' object='libgstrtp_la-gstrtpg723pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg723pay.lo `test -f 'gstrtpg723pay.c' || echo '$(srcdir)/'`gstrtpg723pay.c libgstrtp_la-gstrtpg726pay.lo: gstrtpg726pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg726pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Tpo -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg726pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg726pay.c' object='libgstrtp_la-gstrtpg726pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg726pay.c' object='libgstrtp_la-gstrtpg726pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726pay.lo `test -f 'gstrtpg726pay.c' || echo '$(srcdir)/'`gstrtpg726pay.c libgstrtp_la-gstrtpg726depay.lo: gstrtpg726depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg726depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Tpo -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg726depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg726depay.c' object='libgstrtp_la-gstrtpg726depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg726depay.c' object='libgstrtp_la-gstrtpg726depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg726depay.lo `test -f 'gstrtpg726depay.c' || echo '$(srcdir)/'`gstrtpg726depay.c libgstrtp_la-gstrtpg729pay.lo: gstrtpg729pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg729pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Tpo -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg729pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg729pay.c' object='libgstrtp_la-gstrtpg729pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg729pay.c' object='libgstrtp_la-gstrtpg729pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729pay.lo `test -f 'gstrtpg729pay.c' || echo '$(srcdir)/'`gstrtpg729pay.c libgstrtp_la-gstrtpg729depay.lo: gstrtpg729depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpg729depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Tpo -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpg729depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpg729depay.c' object='libgstrtp_la-gstrtpg729depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpg729depay.c' object='libgstrtp_la-gstrtpg729depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpg729depay.lo `test -f 'gstrtpg729depay.c' || echo '$(srcdir)/'`gstrtpg729depay.c libgstrtp_la-gstrtpgsmdepay.lo: gstrtpgsmdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgsmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Tpo -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgsmdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpgsmdepay.c' object='libgstrtp_la-gstrtpgsmdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpgsmdepay.c' object='libgstrtp_la-gstrtpgsmdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmdepay.lo `test -f 'gstrtpgsmdepay.c' || echo '$(srcdir)/'`gstrtpgsmdepay.c libgstrtp_la-gstrtpgsmpay.lo: gstrtpgsmpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpgsmpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Tpo -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpgsmpay.c' object='libgstrtp_la-gstrtpgsmpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpgsmpay.c' object='libgstrtp_la-gstrtpgsmpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpgsmpay.lo `test -f 'gstrtpgsmpay.c' || echo '$(srcdir)/'`gstrtpgsmpay.c libgstrtp_la-gstrtpamrdepay.lo: gstrtpamrdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpamrdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Tpo -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpamrdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpamrdepay.c' object='libgstrtp_la-gstrtpamrdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpamrdepay.c' object='libgstrtp_la-gstrtpamrdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrdepay.lo `test -f 'gstrtpamrdepay.c' || echo '$(srcdir)/'`gstrtpamrdepay.c libgstrtp_la-gstrtpamrpay.lo: gstrtpamrpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpamrpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Tpo -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpamrpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpamrpay.c' object='libgstrtp_la-gstrtpamrpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpamrpay.c' object='libgstrtp_la-gstrtpamrpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c libgstrtp_la-gstrtph263pdepay.lo: gstrtph263pdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263pdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph263pdepay.c' object='libgstrtp_la-gstrtph263pdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph263pdepay.c' object='libgstrtp_la-gstrtph263pdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c libgstrtp_la-gstrtph263ppay.lo: gstrtph263ppay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263ppay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Tpo -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263ppay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph263ppay.c' object='libgstrtp_la-gstrtph263ppay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph263ppay.c' object='libgstrtp_la-gstrtph263ppay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263ppay.lo `test -f 'gstrtph263ppay.c' || echo '$(srcdir)/'`gstrtph263ppay.c libgstrtp_la-gstrtph263depay.lo: gstrtph263depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263depay.Tpo -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph263depay.c' object='libgstrtp_la-gstrtph263depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph263depay.c' object='libgstrtp_la-gstrtph263depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263depay.lo `test -f 'gstrtph263depay.c' || echo '$(srcdir)/'`gstrtph263depay.c libgstrtp_la-gstrtph263pay.lo: gstrtph263pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pay.Tpo -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph263pay.c' object='libgstrtp_la-gstrtph263pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph263pay.c' object='libgstrtp_la-gstrtph263pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph263pay.lo `test -f 'gstrtph263pay.c' || echo '$(srcdir)/'`gstrtph263pay.c libgstrtp_la-gstrtph264depay.lo: gstrtph264depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph264depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264depay.Tpo -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph264depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph264depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph264depay.c' object='libgstrtp_la-gstrtph264depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph264depay.c' object='libgstrtp_la-gstrtph264depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264depay.lo `test -f 'gstrtph264depay.c' || echo '$(srcdir)/'`gstrtph264depay.c libgstrtp_la-gstrtph264pay.lo: gstrtph264pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph264pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph264pay.Tpo -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph264pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph264pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtph264pay.c' object='libgstrtp_la-gstrtph264pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtph264pay.c' object='libgstrtp_la-gstrtph264pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph264pay.lo `test -f 'gstrtph264pay.c' || echo '$(srcdir)/'`gstrtph264pay.c libgstrtp_la-gstrtpj2kdepay.lo: gstrtpj2kdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpj2kdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Tpo -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpj2kdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpj2kdepay.c' object='libgstrtp_la-gstrtpj2kdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpj2kdepay.c' object='libgstrtp_la-gstrtpj2kdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kdepay.lo `test -f 'gstrtpj2kdepay.c' || echo '$(srcdir)/'`gstrtpj2kdepay.c libgstrtp_la-gstrtpj2kpay.lo: gstrtpj2kpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpj2kpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Tpo -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpj2kpay.c' object='libgstrtp_la-gstrtpj2kpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpj2kpay.c' object='libgstrtp_la-gstrtpj2kpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpj2kpay.lo `test -f 'gstrtpj2kpay.c' || echo '$(srcdir)/'`gstrtpj2kpay.c libgstrtp_la-gstrtpjpegdepay.lo: gstrtpjpegdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpjpegdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Tpo -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpjpegdepay.c' object='libgstrtp_la-gstrtpjpegdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpjpegdepay.c' object='libgstrtp_la-gstrtpjpegdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegdepay.lo `test -f 'gstrtpjpegdepay.c' || echo '$(srcdir)/'`gstrtpjpegdepay.c libgstrtp_la-gstrtpjpegpay.lo: gstrtpjpegpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpjpegpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Tpo -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpjpegpay.c' object='libgstrtp_la-gstrtpjpegpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpjpegpay.c' object='libgstrtp_la-gstrtpjpegpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c libgstrtp_la-gstrtpL16depay.lo: gstrtpL16depay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL16depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpL16depay.c' object='libgstrtp_la-gstrtpL16depay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpL16depay.c' object='libgstrtp_la-gstrtpL16depay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c libgstrtp_la-gstrtpL16pay.lo: gstrtpL16pay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL16pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Tpo -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL16pay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpL16pay.c' object='libgstrtp_la-gstrtpL16pay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpL16pay.c' object='libgstrtp_la-gstrtpL16pay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpL16pay.lo `test -f 'gstrtpL16pay.c' || echo '$(srcdir)/'`gstrtpL16pay.c libgstrtp_la-gstasteriskh263.lo: gstasteriskh263.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstasteriskh263.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstasteriskh263.Tpo $(DEPDIR)/libgstrtp_la-gstasteriskh263.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstasteriskh263.c' object='libgstrtp_la-gstasteriskh263.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstasteriskh263.c' object='libgstrtp_la-gstasteriskh263.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstasteriskh263.lo `test -f 'gstasteriskh263.c' || echo '$(srcdir)/'`gstasteriskh263.c libgstrtp_la-gstrtpmp1sdepay.lo: gstrtpmp1sdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp1sdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Tpo -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp1sdepay.c' object='libgstrtp_la-gstrtpmp1sdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp1sdepay.c' object='libgstrtp_la-gstrtpmp1sdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp1sdepay.lo `test -f 'gstrtpmp1sdepay.c' || echo '$(srcdir)/'`gstrtpmp1sdepay.c libgstrtp_la-gstrtpmp2tdepay.lo: gstrtpmp2tdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp2tdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Tpo -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp2tdepay.c' object='libgstrtp_la-gstrtpmp2tdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp2tdepay.c' object='libgstrtp_la-gstrtpmp2tdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tdepay.lo `test -f 'gstrtpmp2tdepay.c' || echo '$(srcdir)/'`gstrtpmp2tdepay.c libgstrtp_la-gstrtpmp2tpay.lo: gstrtpmp2tpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp2tpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Tpo -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp2tpay.c' object='libgstrtp_la-gstrtpmp2tpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp2tpay.c' object='libgstrtp_la-gstrtpmp2tpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp2tpay.lo `test -f 'gstrtpmp2tpay.c' || echo '$(srcdir)/'`gstrtpmp2tpay.c libgstrtp_la-gstrtpmp4vdepay.lo: gstrtpmp4vdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Tpo -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4vdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4vdepay.c' object='libgstrtp_la-gstrtpmp4vdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4vdepay.c' object='libgstrtp_la-gstrtpmp4vdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vdepay.lo `test -f 'gstrtpmp4vdepay.c' || echo '$(srcdir)/'`gstrtpmp4vdepay.c libgstrtp_la-gstrtpmp4vpay.lo: gstrtpmp4vpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4vpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Tpo -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4vpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4vpay.c' object='libgstrtp_la-gstrtpmp4vpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4vpay.c' object='libgstrtp_la-gstrtpmp4vpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4vpay.lo `test -f 'gstrtpmp4vpay.c' || echo '$(srcdir)/'`gstrtpmp4vpay.c libgstrtp_la-gstrtpmp4gdepay.lo: gstrtpmp4gdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4gdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Tpo -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4gdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4gdepay.c' object='libgstrtp_la-gstrtpmp4gdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4gdepay.c' object='libgstrtp_la-gstrtpmp4gdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gdepay.lo `test -f 'gstrtpmp4gdepay.c' || echo '$(srcdir)/'`gstrtpmp4gdepay.c libgstrtp_la-gstrtpmp4gpay.lo: gstrtpmp4gpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4gpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Tpo -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4gpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4gpay.c' object='libgstrtp_la-gstrtpmp4gpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4gpay.c' object='libgstrtp_la-gstrtpmp4gpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4gpay.lo `test -f 'gstrtpmp4gpay.c' || echo '$(srcdir)/'`gstrtpmp4gpay.c libgstrtp_la-gstrtpmp4adepay.lo: gstrtpmp4adepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4adepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Tpo -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4adepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4adepay.c' object='libgstrtp_la-gstrtpmp4adepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4adepay.c' object='libgstrtp_la-gstrtpmp4adepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4adepay.lo `test -f 'gstrtpmp4adepay.c' || echo '$(srcdir)/'`gstrtpmp4adepay.c libgstrtp_la-gstrtpmp4apay.lo: gstrtpmp4apay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpmp4apay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Tpo -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpmp4apay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmp4apay.c' object='libgstrtp_la-gstrtpmp4apay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmp4apay.c' object='libgstrtp_la-gstrtpmp4apay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpmp4apay.lo `test -f 'gstrtpmp4apay.c' || echo '$(srcdir)/'`gstrtpmp4apay.c libgstrtp_la-gstrtpqcelpdepay.lo: gstrtpqcelpdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpqcelpdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Tpo -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpqcelpdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpqcelpdepay.c' object='libgstrtp_la-gstrtpqcelpdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpqcelpdepay.c' object='libgstrtp_la-gstrtpqcelpdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqcelpdepay.lo `test -f 'gstrtpqcelpdepay.c' || echo '$(srcdir)/'`gstrtpqcelpdepay.c libgstrtp_la-gstrtpqdmdepay.lo: gstrtpqdmdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpqdmdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Tpo -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpqdmdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpqdmdepay.c' object='libgstrtp_la-gstrtpqdmdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpqdmdepay.c' object='libgstrtp_la-gstrtpqdmdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpqdmdepay.lo `test -f 'gstrtpqdmdepay.c' || echo '$(srcdir)/'`gstrtpqdmdepay.c libgstrtp_la-gstrtpsirenpay.lo: gstrtpsirenpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsirenpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpsirenpay.c' object='libgstrtp_la-gstrtpsirenpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsirenpay.c' object='libgstrtp_la-gstrtpsirenpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirenpay.lo `test -f 'gstrtpsirenpay.c' || echo '$(srcdir)/'`gstrtpsirenpay.c libgstrtp_la-gstrtpsirendepay.lo: gstrtpsirendepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsirendepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Tpo -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsirendepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpsirendepay.c' object='libgstrtp_la-gstrtpsirendepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsirendepay.c' object='libgstrtp_la-gstrtpsirendepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsirendepay.lo `test -f 'gstrtpsirendepay.c' || echo '$(srcdir)/'`gstrtpsirendepay.c libgstrtp_la-gstrtpspeexdepay.lo: gstrtpspeexdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpspeexdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Tpo -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpspeexdepay.c' object='libgstrtp_la-gstrtpspeexdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpspeexdepay.c' object='libgstrtp_la-gstrtpspeexdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexdepay.lo `test -f 'gstrtpspeexdepay.c' || echo '$(srcdir)/'`gstrtpspeexdepay.c libgstrtp_la-gstrtpspeexpay.lo: gstrtpspeexpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpspeexpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Tpo -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpspeexpay.c' object='libgstrtp_la-gstrtpspeexpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpspeexpay.c' object='libgstrtp_la-gstrtpspeexpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpspeexpay.lo `test -f 'gstrtpspeexpay.c' || echo '$(srcdir)/'`gstrtpspeexpay.c libgstrtp_la-gstrtpsv3vdepay.lo: gstrtpsv3vdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpsv3vdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Tpo -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpsv3vdepay.c' object='libgstrtp_la-gstrtpsv3vdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsv3vdepay.c' object='libgstrtp_la-gstrtpsv3vdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpsv3vdepay.lo `test -f 'gstrtpsv3vdepay.c' || echo '$(srcdir)/'`gstrtpsv3vdepay.c libgstrtp_la-gstrtptheoradepay.lo: gstrtptheoradepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtptheoradepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Tpo -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtptheoradepay.c' object='libgstrtp_la-gstrtptheoradepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtptheoradepay.c' object='libgstrtp_la-gstrtptheoradepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheoradepay.lo `test -f 'gstrtptheoradepay.c' || echo '$(srcdir)/'`gstrtptheoradepay.c libgstrtp_la-gstrtptheorapay.lo: gstrtptheorapay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtptheorapay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Tpo -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Tpo $(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtptheorapay.c' object='libgstrtp_la-gstrtptheorapay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtptheorapay.c' object='libgstrtp_la-gstrtptheorapay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtptheorapay.lo `test -f 'gstrtptheorapay.c' || echo '$(srcdir)/'`gstrtptheorapay.c libgstrtp_la-gstrtpvorbisdepay.lo: gstrtpvorbisdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvorbisdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Tpo -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvorbisdepay.c' object='libgstrtp_la-gstrtpvorbisdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvorbisdepay.c' object='libgstrtp_la-gstrtpvorbisdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbisdepay.lo `test -f 'gstrtpvorbisdepay.c' || echo '$(srcdir)/'`gstrtpvorbisdepay.c libgstrtp_la-gstrtpvorbispay.lo: gstrtpvorbispay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvorbispay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Tpo -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvorbispay.c' object='libgstrtp_la-gstrtpvorbispay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvorbispay.c' object='libgstrtp_la-gstrtpvorbispay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvorbispay.lo `test -f 'gstrtpvorbispay.c' || echo '$(srcdir)/'`gstrtpvorbispay.c libgstrtp_la-gstrtpvrawdepay.lo: gstrtpvrawdepay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvrawdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvrawdepay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvrawdepay.c' object='libgstrtp_la-gstrtpvrawdepay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvrawdepay.c' object='libgstrtp_la-gstrtpvrawdepay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawdepay.lo `test -f 'gstrtpvrawdepay.c' || echo '$(srcdir)/'`gstrtpvrawdepay.c libgstrtp_la-gstrtpvrawpay.lo: gstrtpvrawpay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpvrawpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Tpo -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpvrawpay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpvrawpay.c' object='libgstrtp_la-gstrtpvrawpay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpvrawpay.c' object='libgstrtp_la-gstrtpvrawpay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c mostlyclean-libtool: -rm -f *.lo @@ -1530,10 +1456,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c index 79aa32b..dd59c55 100644 --- a/gst/rtp/gstasteriskh263.c +++ b/gst/rtp/gstasteriskh263.c @@ -79,10 +79,10 @@ gst_asteriskh263_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_asteriskh263_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_asteriskh263_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_asteriskh263_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_asteriskh263_sink_template); gst_element_class_set_details_simple (element_class, "RTP Asterisk H263 depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c index 7943f1b..f7aef88 100644 --- a/gst/rtp/gstrtpL16depay.c +++ b/gst/rtp/gstrtpL16depay.c @@ -80,10 +80,10 @@ gst_rtp_L16_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_L16_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_L16_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_L16_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_L16_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP audio depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c index a6fbacc..b5dc20e 100644 --- a/gst/rtp/gstrtpL16pay.c +++ b/gst/rtp/gstrtpL16pay.c @@ -80,10 +80,10 @@ gst_rtp_L16_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_L16_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_L16_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_L16_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_L16_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP audio payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c index 2ba4cef..650090e 100644 --- a/gst/rtp/gstrtpac3depay.c +++ b/gst/rtp/gstrtpac3depay.c @@ -60,10 +60,10 @@ gst_rtp_ac3_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ac3_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ac3_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ac3_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ac3_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP AC3 depayloader", "Codec/Depayloader/Network/RTP", @@ -193,8 +193,9 @@ gst_rtp_ac3_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) /* We don't bother with fragmented packets yet */ outbuf = gst_rtp_buffer_get_payload_subbuffer (buf, 2, -1); - GST_DEBUG_OBJECT (rtpac3depay, "pushing buffer of size %d", - GST_BUFFER_SIZE (outbuf)); + if (outbuf) + GST_DEBUG_OBJECT (rtpac3depay, "pushing buffer of size %d", + GST_BUFFER_SIZE (outbuf)); return outbuf; } diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c index fddea38..27d4fff 100644 --- a/gst/rtp/gstrtpac3pay.c +++ b/gst/rtp/gstrtpac3pay.c @@ -67,10 +67,10 @@ GST_BOILERPLATE (GstRtpAC3Pay, gst_rtp_ac3_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ac3_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ac3_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ac3_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ac3_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP AC3 audio payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index 5a545bf..fa38759 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -119,10 +119,10 @@ gst_rtp_amr_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_amr_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_amr_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_amr_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_amr_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP AMR depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c index 89a149f..ea5ada6 100644 --- a/gst/rtp/gstrtpamrpay.c +++ b/gst/rtp/gstrtpamrpay.c @@ -101,10 +101,10 @@ gst_rtp_amr_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_amr_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_amr_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_amr_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_amr_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP AMR payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c index 3ee660a..c190982 100644 --- a/gst/rtp/gstrtpbvdepay.c +++ b/gst/rtp/gstrtpbvdepay.c @@ -62,10 +62,10 @@ gst_rtp_bv_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_bv_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_bv_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_bv_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_bv_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP BroadcomVoice depayloader", "Codec/Depayloader/Network/RTP", "Extracts BroadcomVoice audio from RTP packets (RFC 4298)", @@ -165,7 +165,7 @@ gst_rtp_bv_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (buf); - if (marker) { + if (marker && outbuf) { /* mark start of talkspurt with DISCONT */ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); } diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c index 0c01001..80eae8e 100644 --- a/gst/rtp/gstrtpbvpay.c +++ b/gst/rtp/gstrtpbvpay.c @@ -66,10 +66,10 @@ gst_rtp_bv_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_bv_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_bv_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_bv_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_bv_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP BV Payloader", "Codec/Payloader/Network/RTP", "Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)", diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c index c03a5b4..b583efd 100644 --- a/gst/rtp/gstrtpceltdepay.c +++ b/gst/rtp/gstrtpceltdepay.c @@ -78,10 +78,10 @@ gst_rtp_celt_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_celt_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_celt_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_celt_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_celt_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP CELT depayloader", "Codec/Depayloader/Network/RTP", "Extracts CELT audio from RTP packets", diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c index 05715c1..c727efc 100644 --- a/gst/rtp/gstrtpceltpay.c +++ b/gst/rtp/gstrtpceltpay.c @@ -70,10 +70,10 @@ gst_rtp_celt_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_celt_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_celt_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_celt_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_celt_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP CELT payloader", "Codec/Payloader/Network/RTP", "Payload-encodes CELT audio into a RTP packet", diff --git a/gst/rtp/gstrtpdepay.c b/gst/rtp/gstrtpdepay.c index d94d9b1..1566f97 100644 --- a/gst/rtp/gstrtpdepay.c +++ b/gst/rtp/gstrtpdepay.c @@ -63,14 +63,14 @@ gst_rtp_depay_base_init (gpointer klass) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_src_rtp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_src_rtcp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_sink_rtp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_sink_rtcp_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_rtp_depay_src_rtp_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_rtp_depay_src_rtcp_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_rtp_depay_sink_rtp_template); + gst_element_class_add_static_pad_template (gstelement_class, + &gst_rtp_depay_sink_rtcp_template); gst_element_class_set_details_simple (gstelement_class, "Dummy RTP session manager", "Codec/Depayloader/Network/RTP", "Accepts raw RTP and RTCP packets and sends them forward", diff --git a/gst/rtp/gstrtpdvdepay.c b/gst/rtp/gstrtpdvdepay.c index 883d115..4098c39 100644 --- a/gst/rtp/gstrtpdvdepay.c +++ b/gst/rtp/gstrtpdvdepay.c @@ -87,10 +87,8 @@ GST_BOILERPLATE (GstRTPDVDepay, gst_rtp_dv_depay, GstBaseRTPDepayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "RTP DV Depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpdvpay.c b/gst/rtp/gstrtpdvpay.c index 1d6230c..7231cc6 100644 --- a/gst/rtp/gstrtpdvpay.c +++ b/gst/rtp/gstrtpdvpay.c @@ -101,10 +101,10 @@ GST_BOILERPLATE (GstRTPDVPay, gst_rtp_dv_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dv_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dv_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dv_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dv_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP DV Payloader", "Codec/Payloader/Network/RTP", "Payloads DV into RTP packets (RFC 3189)", diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c index 1e892fb..726426b 100644 --- a/gst/rtp/gstrtpg722depay.c +++ b/gst/rtp/gstrtpg722depay.c @@ -75,10 +75,10 @@ gst_rtp_g722_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g722_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g722_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g722_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g722_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP audio depayloader", "Codec/Depayloader/Network/RTP", @@ -236,7 +236,7 @@ gst_rtp_g722_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (buf); marker = gst_rtp_buffer_get_marker (buf); - if (marker) { + if (marker && outbuf) { /* mark talk spurt with DISCONT */ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); } diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c index 29cd22a..06958e1 100644 --- a/gst/rtp/gstrtpg722pay.c +++ b/gst/rtp/gstrtpg722pay.c @@ -64,10 +64,10 @@ gst_rtp_g722_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g722_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g722_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g722_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g722_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP audio payloader", "Codec/Payloader/Network/RTP", @@ -160,9 +160,11 @@ gst_rtp_g722_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps) rtpg722pay->rate = rate; rtpg722pay->channels = channels; - /* octet-per-sample is 1 * channels for G722 */ + /* bits-per-sample is 4 * channels for G722, but as the RTP clock runs at + * half speed (8 instead of 16 khz), pretend it's 8 bits per sample + * channels. */ gst_base_rtp_audio_payload_set_samplebits_options (basertpaudiopayload, - 4 * rtpg722pay->channels); + 8 * rtpg722pay->channels); return res; diff --git a/gst/rtp/gstrtpg723depay.c b/gst/rtp/gstrtpg723depay.c index b4aa5fe..0f6f137 100644 --- a/gst/rtp/gstrtpg723depay.c +++ b/gst/rtp/gstrtpg723depay.c @@ -86,10 +86,10 @@ gst_rtp_g723_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g723_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g723_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g723_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g723_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP G.723 depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c index 439ef02..3fe906f 100644 --- a/gst/rtp/gstrtpg723pay.c +++ b/gst/rtp/gstrtpg723pay.c @@ -75,10 +75,10 @@ gst_rtp_g723_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g723_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g723_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g723_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g723_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP G.723 payloader", "Codec/Payloader/Network/RTP", "Packetize G.723 audio into RTP packets", diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c index 2b36755..2b171a0 100644 --- a/gst/rtp/gstrtpg726depay.c +++ b/gst/rtp/gstrtpg726depay.c @@ -95,10 +95,10 @@ gst_rtp_g726_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g726_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g726_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g726_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g726_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP G.726 depayloader", "Codec/Depayloader/Network/RTP", "Extracts G.726 audio from RTP packets", @@ -222,6 +222,8 @@ gst_rtp_g726_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) if (depay->aal2 || depay->force_aal2) { /* AAL2, we can just copy the bytes */ outbuf = gst_rtp_buffer_get_payload_buffer (buf); + if (!outbuf) + goto bad_len; } else { guint8 *in, *out, tmp; guint len; @@ -239,6 +241,10 @@ gst_rtp_g726_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (copy); gst_buffer_unref (copy); } + + if (!outbuf) + goto bad_len; + out = GST_BUFFER_DATA (outbuf); /* we need to reshuffle the bytes, input is always of the form @@ -335,6 +341,9 @@ gst_rtp_g726_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) } return outbuf; + +bad_len: + return NULL; } static void diff --git a/gst/rtp/gstrtpg726pay.c b/gst/rtp/gstrtpg726pay.c index 16086bf..07c0f27 100644 --- a/gst/rtp/gstrtpg726pay.c +++ b/gst/rtp/gstrtpg726pay.c @@ -83,10 +83,10 @@ gst_rtp_g726_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g726_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g726_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g726_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g726_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP G.726 payloader", "Codec/Payloader/Network/RTP", "Payload-encodes G.726 audio into a RTP packet", diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c index 3d22508..69799ad 100644 --- a/gst/rtp/gstrtpg729depay.c +++ b/gst/rtp/gstrtpg729depay.c @@ -84,10 +84,10 @@ gst_rtp_g729_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g729_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g729_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g729_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g729_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP G.729 depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c index 37049d6..60364cc 100644 --- a/gst/rtp/gstrtpg729pay.c +++ b/gst/rtp/gstrtpg729pay.c @@ -82,10 +82,10 @@ gst_rtp_g729_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g729_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_g729_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g729_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_g729_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP G.729 payloader", "Codec/Payloader/Network/RTP", "Packetize G.729 audio into RTP packets", diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c index bb62c50..989991f 100644 --- a/gst/rtp/gstrtpgsmdepay.c +++ b/gst/rtp/gstrtpgsmdepay.c @@ -70,10 +70,10 @@ gst_rtp_gsm_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gsm_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gsm_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gsm_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gsm_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP GSM depayloader", "Codec/Depayloader/Network/RTP", "Extracts GSM audio from RTP packets", "Zeeshan Ali "); @@ -136,7 +136,7 @@ gst_rtp_gsm_depay_process (GstBaseRTPDepayload * _depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (buf); - if (marker) { + if (marker && outbuf) { /* mark start of talkspurt with DISCONT */ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); } diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c index 479013e..6506262 100644 --- a/gst/rtp/gstrtpgsmpay.c +++ b/gst/rtp/gstrtpgsmpay.c @@ -65,10 +65,10 @@ gst_rtp_gsm_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gsm_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gsm_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gsm_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gsm_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP GSM payloader", "Codec/Payloader/Network/RTP", "Payload-encodes GSM audio into a RTP packet", diff --git a/gst/rtp/gstrtpgstdepay.c b/gst/rtp/gstrtpgstdepay.c index 6dc5e51..b187db4 100644 --- a/gst/rtp/gstrtpgstdepay.c +++ b/gst/rtp/gstrtpgstdepay.c @@ -64,10 +64,10 @@ gst_rtp_gst_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gst_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gst_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gst_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gst_depay_sink_template); gst_element_class_set_details_simple (element_class, "GStreamer depayloader", "Codec/Depayloader/Network", diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c index e6e23de..3f244bc 100644 --- a/gst/rtp/gstrtpgstpay.c +++ b/gst/rtp/gstrtpgstpay.c @@ -80,10 +80,10 @@ GST_BOILERPLATE (GstRtpGSTPay, gst_rtp_gst_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gst_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_gst_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gst_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_gst_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP GStreamer payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c index 4bc8704..08f96cc 100644 --- a/gst/rtp/gstrtph263depay.c +++ b/gst/rtp/gstrtph263depay.c @@ -79,10 +79,10 @@ gst_rtp_h263_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H263 depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c index 8eb85bc..0564d73 100644 --- a/gst/rtp/gstrtph263pay.c +++ b/gst/rtp/gstrtph263pay.c @@ -402,10 +402,10 @@ GST_BOILERPLATE (GstRtpH263Pay, gst_rtp_h263_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H263 packet payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c index 5cad4bf..37e8989 100644 --- a/gst/rtp/gstrtph263pdepay.c +++ b/gst/rtp/gstrtph263pdepay.c @@ -96,10 +96,10 @@ gst_rtp_h263p_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263p_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263p_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263p_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263p_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H263 depayloader", diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c index fff68ec..f85607e 100644 --- a/gst/rtp/gstrtph263ppay.c +++ b/gst/rtp/gstrtph263ppay.c @@ -22,6 +22,8 @@ #endif #include +#include +#include #include @@ -61,9 +63,23 @@ static GstStaticPadTemplate gst_rtp_h263p_pay_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-h263, " "variant = (string) \"itu\" ") + GST_STATIC_CAPS ("video/x-h263, " "variant = (string) \"itu\"") ); +/* + * We also return these in getcaps() as required by the SDP caps + * + * width = (int) [16, 4096] + * height = (int) [16, 4096] + * "annex-f = (boolean) {true, false}," + * "annex-i = (boolean) {true, false}," + * "annex-j = (boolean) {true, false}," + * "annex-l = (boolean) {true, false}," + * "annex-t = (boolean) {true, false}," + * "annex-v = (boolean) {true, false}") + */ + + static GstStaticPadTemplate gst_rtp_h263p_pay_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -87,6 +103,8 @@ static void gst_rtp_h263p_pay_get_property (GObject * object, guint prop_id, static gboolean gst_rtp_h263p_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); +static GstCaps *gst_rtp_h263p_pay_sink_getcaps (GstBaseRTPPayload * payload, + GstPad * pad); static GstFlowReturn gst_rtp_h263p_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); @@ -98,10 +116,10 @@ gst_rtp_h263p_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263p_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h263p_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263p_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h263p_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H263 payloader", "Codec/Payloader/Network/RTP", @@ -123,6 +141,7 @@ gst_rtp_h263p_pay_class_init (GstRtpH263PPayClass * klass) gobject_class->get_property = gst_rtp_h263p_pay_get_property; gstbasertppayload_class->set_caps = gst_rtp_h263p_pay_setcaps; + gstbasertppayload_class->get_caps = gst_rtp_h263p_pay_sink_getcaps; gstbasertppayload_class->handle_buffer = gst_rtp_h263p_pay_handle_buffer; g_object_class_install_property (G_OBJECT_CLASS (klass), @@ -162,14 +181,411 @@ static gboolean gst_rtp_h263p_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) { gboolean res; + GstCaps *peercaps; + gchar *encoding_name = NULL; + + g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE); + + peercaps = gst_pad_peer_get_caps (GST_BASE_RTP_PAYLOAD_SRCPAD (payload)); + if (peercaps) { + GstCaps *intersect = gst_caps_intersect (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_RTP_PAYLOAD_SRCPAD (payload))); + + gst_caps_unref (peercaps); + if (!gst_caps_is_empty (intersect)) { + GstStructure *s = gst_caps_get_structure (intersect, 0); + encoding_name = g_strdup (gst_structure_get_string (s, "encoding-name")); + } + gst_caps_unref (intersect); + } + + if (!encoding_name) + encoding_name = g_strdup ("H263-1998"); - gst_basertppayload_set_options (payload, "video", TRUE, "H263-1998", 90000); + gst_basertppayload_set_options (payload, "video", TRUE, + (gchar *) encoding_name, 90000); res = gst_basertppayload_set_outcaps (payload, NULL); + g_free (encoding_name); return res; } static void +caps_append (GstCaps * caps, GstStructure * in_s, guint x, guint y, guint mpi) +{ + GstStructure *s; + + if (!in_s) + return; + + if (mpi < 1 || mpi > 32) + return; + + s = gst_structure_copy (in_s); + + gst_structure_set (s, + "width", GST_TYPE_INT_RANGE, 1, x, + "height", GST_TYPE_INT_RANGE, 1, y, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30000, 1001 * mpi, NULL); + + gst_caps_merge_structure (caps, s); +} + + +static GstCaps * +gst_rtp_h263p_pay_sink_getcaps (GstBaseRTPPayload * payload, GstPad * pad) +{ + GstRtpH263PPay *rtph263ppay; + GstCaps *caps = NULL; + GstCaps *peercaps = NULL; + GstCaps *intersect = NULL; + guint i; + + rtph263ppay = GST_RTP_H263P_PAY (payload); + + peercaps = gst_pad_peer_get_caps (GST_BASE_RTP_PAYLOAD_SRCPAD (payload)); + if (!peercaps) + return + gst_caps_copy (gst_pad_get_pad_template_caps + (GST_BASE_RTP_PAYLOAD_SINKPAD (payload))); + + intersect = gst_caps_intersect (peercaps, + gst_pad_get_pad_template_caps (GST_BASE_RTP_PAYLOAD_SRCPAD (payload))); + gst_caps_unref (peercaps); + + if (gst_caps_is_empty (intersect)) + return intersect; + + caps = gst_caps_new_empty (); + for (i = 0; i < gst_caps_get_size (intersect); i++) { + GstStructure *s = gst_caps_get_structure (intersect, i); + const gchar *encoding_name = gst_structure_get_string (s, "encoding-name"); + + if (!strcmp (encoding_name, "H263-2000")) { + const gchar *profile_str = gst_structure_get_string (s, "profile"); + const gchar *level_str = gst_structure_get_string (s, "level"); + int profile = 0; + int level = 0; + + if (profile_str && level_str) { + gboolean i = FALSE, j = FALSE, l = FALSE, t = FALSE, f = FALSE, + v = FALSE; + GstStructure *new_s = gst_structure_new ("video/x-h263", + "variant", G_TYPE_STRING, "itu", + NULL); + + profile = atoi (profile_str); + level = atoi (level_str); + + /* These profiles are defined in the H.263 Annex X */ + switch (profile) { + case 0: + /* The Baseline Profile (Profile 0) */ + break; + case 1: + /* H.320 Coding Efficiency Version 2 Backward-Compatibility Profile + * (Profile 1) + * Baseline + Annexes I, J, L.4 and T + */ + i = j = l = t = TRUE; + break; + case 2: + /* Version 1 Backward-Compatibility Profile (Profile 2) + * Baseline + Annex F + */ + i = j = l = t = f = TRUE; + break; + case 3: + /* Version 2 Interactive and Streaming Wireless Profile + * Baseline + Annexes I, J, T + */ + i = j = t = TRUE; + break; + case 4: + /* Version 3 Interactive and Streaming Wireless Profile (Profile 4) + * Baseline + Annexes I, J, T, V, W.6.3.8, + */ + /* Missing W.6.3.8 */ + i = j = t = v = TRUE; + break; + case 5: + /* Conversational High Compression Profile (Profile 5) + * Baseline + Annexes F, I, J, L.4, T, D, U + */ + /* Missing D, U */ + f = i = j = l = t = TRUE; + break; + case 6: + /* Conversational Internet Profile (Profile 6) + * Baseline + Annexes F, I, J, L.4, T, D, U and + * K with arbitratry slice ordering + */ + /* Missing D, U, K with arbitratry slice ordering */ + f = i = j = l = t = TRUE; + break; + case 7: + /* Conversational Interlace Profile (Profile 7) + * Baseline + Annexes F, I, J, L.4, T, D, U, W.6.3.11 + */ + /* Missing D, U, W.6.3.11 */ + f = i = j = l = t = TRUE; + break; + case 8: + /* High Latency Profile (Profile 8) + * Baseline + Annexes F, I, J, L.4, T, D, U, P.5, O.1.1 and + * K with arbitratry slice ordering + */ + /* Missing D, U, P.5, O.1.1 */ + f = i = j = l = t = TRUE; + break; + } + + + if (f || i || j || t || l || v) { + GValue list = { 0 }; + GValue vstr = { 0 }; + + g_value_init (&list, GST_TYPE_LIST); + g_value_init (&vstr, G_TYPE_STRING); + + g_value_set_static_string (&vstr, "h263"); + gst_value_list_append_value (&list, &vstr); + g_value_set_static_string (&vstr, "h263p"); + gst_value_list_append_value (&list, &vstr); + + if (l || v) { + g_value_set_static_string (&vstr, "h263pp"); + gst_value_list_append_value (&list, &vstr); + } + g_value_unset (&vstr); + + gst_structure_set_value (new_s, "h263version", &list); + g_value_unset (&list); + } else { + gst_structure_set (new_s, "h263version", G_TYPE_STRING, "h263", NULL); + } + + + if (!f) + gst_structure_set (new_s, "annex-f", G_TYPE_BOOLEAN, FALSE, NULL); + if (!i) + gst_structure_set (new_s, "annex-i", G_TYPE_BOOLEAN, FALSE, NULL); + if (!j) + gst_structure_set (new_s, "annex-j", G_TYPE_BOOLEAN, FALSE, NULL); + if (!t) + gst_structure_set (new_s, "annex-t", G_TYPE_BOOLEAN, FALSE, NULL); + if (!l) + gst_structure_set (new_s, "annex-l", G_TYPE_BOOLEAN, FALSE, NULL); + if (!v) + gst_structure_set (new_s, "annex-v", G_TYPE_BOOLEAN, FALSE, NULL); + + + if (level <= 10 || level == 45) { + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 176, + "height", GST_TYPE_INT_RANGE, 1, 144, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30000, 2002, NULL); + gst_caps_merge_structure (caps, new_s); + } else if (level <= 20) { + GstStructure *s_copy = gst_structure_copy (new_s); + + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 352, + "height", GST_TYPE_INT_RANGE, 1, 288, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30000, 2002, NULL); + gst_caps_merge_structure (caps, new_s); + + gst_structure_set (s_copy, + "width", GST_TYPE_INT_RANGE, 1, 176, + "height", GST_TYPE_INT_RANGE, 1, 144, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30000, 1001, NULL); + gst_caps_merge_structure (caps, s_copy); + } else if (level <= 40) { + + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 352, + "height", GST_TYPE_INT_RANGE, 1, 288, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30000, 1001, NULL); + gst_caps_merge_structure (caps, new_s); + } else if (level <= 50) { + GstStructure *s_copy = gst_structure_copy (new_s); + + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 352, + "height", GST_TYPE_INT_RANGE, 1, 288, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 50, 1, NULL); + gst_caps_merge_structure (caps, new_s); + + gst_structure_set (s_copy, + "width", GST_TYPE_INT_RANGE, 1, 352, + "height", GST_TYPE_INT_RANGE, 1, 240, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 60000, 1001, NULL); + gst_caps_merge_structure (caps, s_copy); + } else if (level <= 60) { + GstStructure *s_copy = gst_structure_copy (new_s); + + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 720, + "height", GST_TYPE_INT_RANGE, 1, 288, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 50, 1, NULL); + gst_caps_merge_structure (caps, new_s); + + gst_structure_set (s_copy, + "width", GST_TYPE_INT_RANGE, 1, 720, + "height", GST_TYPE_INT_RANGE, 1, 240, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 60000, 1001, NULL); + gst_caps_merge_structure (caps, s_copy); + } else if (level <= 70) { + GstStructure *s_copy = gst_structure_copy (new_s); + + gst_structure_set (new_s, + "width", GST_TYPE_INT_RANGE, 1, 720, + "height", GST_TYPE_INT_RANGE, 1, 576, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 50, 1, NULL); + gst_caps_merge_structure (caps, new_s); + + gst_structure_set (s_copy, + "width", GST_TYPE_INT_RANGE, 1, 720, + "height", GST_TYPE_INT_RANGE, 1, 480, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 60000, 1001, NULL); + gst_caps_merge_structure (caps, s_copy); + } else { + gst_caps_merge_structure (caps, new_s); + } + + } else { + GstStructure *new_s = gst_structure_new ("video/x-h263", + "variant", G_TYPE_STRING, "itu", + "h263version", G_TYPE_STRING, "h263", + NULL); + + GST_DEBUG_OBJECT (rtph263ppay, "No profile or level specified" + " for H263-2000, defaulting to baseline H263"); + + gst_caps_merge_structure (caps, new_s); + } + } else { + gboolean f = FALSE, i = FALSE, j = FALSE, t = FALSE; + /* FIXME: ffmpeg support the Appendix K too, how do we express it ? + * guint k; + */ + const gchar *str; + GstStructure *new_s = gst_structure_new ("video/x-h263", + "variant", G_TYPE_STRING, "itu", + NULL); + gboolean added = FALSE; + + str = gst_structure_get_string (s, "f"); + if (str && !strcmp (str, "1")) + f = TRUE; + + str = gst_structure_get_string (s, "i"); + if (str && !strcmp (str, "1")) + i = TRUE; + + str = gst_structure_get_string (s, "j"); + if (str && !strcmp (str, "1")) + j = TRUE; + + str = gst_structure_get_string (s, "t"); + if (str && !strcmp (str, "1")) + t = TRUE; + + if (f || i || j || t) { + GValue list = { 0 }; + GValue vstr = { 0 }; + + g_value_init (&list, GST_TYPE_LIST); + g_value_init (&vstr, G_TYPE_STRING); + + g_value_set_static_string (&vstr, "h263"); + gst_value_list_append_value (&list, &vstr); + g_value_set_static_string (&vstr, "h263p"); + gst_value_list_append_value (&list, &vstr); + g_value_unset (&vstr); + + gst_structure_set_value (new_s, "h263version", &list); + g_value_unset (&list); + } else { + gst_structure_set (new_s, "h263version", G_TYPE_STRING, "h263", NULL); + } + + if (!f) + gst_structure_set (new_s, "annex-f", G_TYPE_BOOLEAN, FALSE, NULL); + if (!i) + gst_structure_set (new_s, "annex-i", G_TYPE_BOOLEAN, FALSE, NULL); + if (!j) + gst_structure_set (new_s, "annex-j", G_TYPE_BOOLEAN, FALSE, NULL); + if (!t) + gst_structure_set (new_s, "annex-t", G_TYPE_BOOLEAN, FALSE, NULL); + + + str = gst_structure_get_string (s, "custom"); + if (str) { + unsigned int xmax, ymax, mpi; + if (sscanf (str, "%u,%u,%u", &xmax, &ymax, &mpi) == 3) { + if (xmax % 4 && ymax % 4 && mpi >= 1 && mpi <= 32) { + caps_append (caps, new_s, xmax, ymax, mpi); + added = TRUE; + } else { + GST_WARNING_OBJECT (rtph263ppay, "Invalid custom framesize/MPI" + " %u x %u at %u, ignoring", xmax, ymax, mpi); + } + } else { + GST_WARNING_OBJECT (rtph263ppay, "Invalid custom framesize/MPI: %s," + " ignoring", str); + } + } + + str = gst_structure_get_string (s, "16cif"); + if (str) { + int mpi = atoi (str); + caps_append (caps, new_s, 1408, 1152, mpi); + added = TRUE; + } + + str = gst_structure_get_string (s, "4cif"); + if (str) { + int mpi = atoi (str); + caps_append (caps, new_s, 704, 576, mpi); + added = TRUE; + } + + str = gst_structure_get_string (s, "cif"); + if (str) { + int mpi = atoi (str); + caps_append (caps, new_s, 352, 288, mpi); + added = TRUE; + } + + str = gst_structure_get_string (s, "qcif"); + if (str) { + int mpi = atoi (str); + caps_append (caps, new_s, 176, 144, mpi); + added = TRUE; + } + + str = gst_structure_get_string (s, "sqcif"); + if (str) { + int mpi = atoi (str); + caps_append (caps, new_s, 128, 96, mpi); + added = TRUE; + } + + if (added) + gst_structure_free (new_s); + else + gst_caps_merge_structure (caps, new_s); + } + } + + gst_caps_unref (intersect); + + return caps; +} + + +static void gst_rtp_h263p_pay_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c index 0d62628..efe1725 100644 --- a/gst/rtp/gstrtph264depay.c +++ b/gst/rtp/gstrtph264depay.c @@ -95,16 +95,18 @@ static GstBuffer *gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf); static gboolean gst_rtp_h264_depay_setcaps (GstBaseRTPDepayload * filter, GstCaps * caps); +static gboolean gst_rtp_h264_depay_handle_event (GstBaseRTPDepayload * depay, + GstEvent * event); static void gst_rtp_h264_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h264_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h264_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h264_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h264_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H264 depayloader", "Codec/Depayloader/Network/RTP", @@ -141,6 +143,7 @@ gst_rtp_h264_depay_class_init (GstRtpH264DepayClass * klass) gstbasertpdepayload_class->process = gst_rtp_h264_depay_process; gstbasertpdepayload_class->set_caps = gst_rtp_h264_depay_setcaps; + gstbasertpdepayload_class->handle_event = gst_rtp_h264_depay_handle_event; GST_DEBUG_CATEGORY_INIT (rtph264depay_debug, "rtph264depay", 0, "H264 Video RTP Depayloader"); @@ -157,6 +160,18 @@ gst_rtp_h264_depay_init (GstRtpH264Depay * rtph264depay, } static void +gst_rtp_h264_depay_reset (GstRtpH264Depay * rtph264depay) +{ + gst_adapter_clear (rtph264depay->adapter); + rtph264depay->wait_start = TRUE; + gst_adapter_clear (rtph264depay->picture_adapter); + rtph264depay->picture_start = FALSE; + rtph264depay->last_keyframe = FALSE; + rtph264depay->last_ts = 0; + rtph264depay->current_fu_type = 0; +} + +static void gst_rtp_h264_depay_finalize (GObject * object) { GstRtpH264Depay *rtph264depay; @@ -466,13 +481,34 @@ incomplete_caps: } } +static GstBuffer * +gst_rtp_h264_complete_au (GstRtpH264Depay * rtph264depay, + GstClockTime * out_timestamp, gboolean * out_keyframe) +{ + guint outsize; + GstBuffer *outbuf; + + /* we had a picture in the adapter and we completed it */ + GST_DEBUG_OBJECT (rtph264depay, "taking completed AU"); + outsize = gst_adapter_available (rtph264depay->picture_adapter); + outbuf = gst_adapter_take_buffer (rtph264depay->picture_adapter, outsize); + + *out_timestamp = rtph264depay->last_ts; + *out_keyframe = rtph264depay->last_keyframe; + + rtph264depay->last_keyframe = FALSE; + rtph264depay->picture_start = FALSE; + + return outbuf; +} + /* SPS/PPS/IDR considered key, all others DELTA; * so downstream waiting for keyframe can pick up at SPS/PPS/IDR */ #define NAL_TYPE_IS_KEY(nt) (((nt) == 5) || ((nt) == 7) || ((nt) == 8)) -static gboolean +static GstBuffer * gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal, - GstClockTime in_timestamp) + GstClockTime in_timestamp, gboolean marker) { GstBaseRTPDepayload *depayload = GST_BASE_RTP_DEPAYLOAD (rtph264depay); gint nal_type; @@ -518,20 +554,9 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal, } GST_DEBUG_OBJECT (depayload, "start %d, complete %d", start, complete); - if (complete && rtph264depay->picture_start) { - guint outsize; - - /* we had a picture in the adapter and we completed it */ - GST_DEBUG_OBJECT (depayload, "taking completed AU"); - outsize = gst_adapter_available (rtph264depay->picture_adapter); - outbuf = gst_adapter_take_buffer (rtph264depay->picture_adapter, outsize); - - out_timestamp = rtph264depay->last_ts; - out_keyframe = rtph264depay->last_keyframe; - - rtph264depay->last_keyframe = FALSE; - rtph264depay->picture_start = FALSE; - } + if (complete && rtph264depay->picture_start) + outbuf = gst_rtp_h264_complete_au (rtph264depay, &out_timestamp, + &out_keyframe); /* add to adapter */ GST_DEBUG_OBJECT (depayload, "adding NAL to picture adapter"); @@ -539,6 +564,10 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal, rtph264depay->last_ts = in_timestamp; rtph264depay->last_keyframe |= keyframe; rtph264depay->picture_start |= start; + + if (marker) + outbuf = gst_rtp_h264_complete_au (rtph264depay, &out_timestamp, + &out_keyframe); } else { /* no merge, output is input nal */ GST_DEBUG_OBJECT (depayload, "using NAL as output"); @@ -563,18 +592,55 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal, GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT); gst_buffer_set_caps (outbuf, GST_PAD_CAPS (depayload->srcpad)); - - gst_base_rtp_depayload_push (depayload, outbuf); } - return TRUE; + return outbuf; /* ERRORS */ short_nal: { GST_WARNING_OBJECT (depayload, "dropping short NAL"); gst_buffer_unref (nal); - return FALSE; + return NULL; + } +} + +static GstBuffer * +gst_rtp_h264_push_fragmentation_unit (GstRtpH264Depay * rtph264depay, + gboolean send) +{ + guint outsize; + guint8 *outdata; + GstBuffer *outbuf; + + outsize = gst_adapter_available (rtph264depay->adapter); + outbuf = gst_adapter_take_buffer (rtph264depay->adapter, outsize); + outdata = GST_BUFFER_DATA (outbuf); + + GST_DEBUG_OBJECT (rtph264depay, "output %d bytes", outsize); + + if (rtph264depay->byte_stream) { + memcpy (outdata, sync_bytes, sizeof (sync_bytes)); + } else { + outsize -= 4; + outdata[0] = (outsize >> 24); + outdata[1] = (outsize >> 16); + outdata[2] = (outsize >> 8); + outdata[3] = (outsize); + } + + rtph264depay->current_fu_type = 0; + + if (send) { + outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, + rtph264depay->fu_timestamp, rtph264depay->fu_marker); + if (outbuf) + gst_base_rtp_depayload_push (GST_BASE_RTP_DEPAYLOAD (rtph264depay), + outbuf); + return NULL; + } else { + return gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, + rtph264depay->fu_timestamp, rtph264depay->fu_marker); } } @@ -582,7 +648,7 @@ static GstBuffer * gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) { GstRtpH264Depay *rtph264depay; - GstBuffer *outbuf; + GstBuffer *outbuf = NULL; guint8 nal_unit_type; rtph264depay = GST_RTP_H264_DEPAY (depayload); @@ -591,6 +657,7 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) if (GST_BUFFER_IS_DISCONT (buf)) { gst_adapter_clear (rtph264depay->adapter); rtph264depay->wait_start = TRUE; + rtph264depay->current_fu_type = 0; } { @@ -601,11 +668,13 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) guint8 *outdata; guint outsize, nalu_size; GstClockTime timestamp; + gboolean marker; timestamp = GST_BUFFER_TIMESTAMP (buf); payload_len = gst_rtp_buffer_get_payload_len (buf); payload = gst_rtp_buffer_get_payload (buf); + marker = gst_rtp_buffer_get_marker (buf); GST_DEBUG_OBJECT (rtph264depay, "receiving %d bytes", payload_len); @@ -629,6 +698,13 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) GST_DEBUG_OBJECT (rtph264depay, "NRI %d, Type %d", nal_ref_idc, nal_unit_type); + /* If FU unit was being processed, but the current nal is of a different + * type. Assume that the remote payloader is buggy (didn't set the end bit + * when the FU ended) and send out what we gathered thusfar */ + if (G_UNLIKELY (rtph264depay->current_fu_type != 0 && + nal_unit_type != rtph264depay->current_fu_type)) + gst_rtp_h264_push_fragmentation_unit (rtph264depay, TRUE); + switch (nal_unit_type) { case 0: case 30: @@ -659,8 +735,9 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) */ nalu_size = (payload[0] << 8) | payload[1]; - if (nalu_size > payload_len) - nalu_size = payload_len; + /* dont include nalu_size */ + if (nalu_size > (payload_len - 2)) + nalu_size = payload_len - 2; outsize = nalu_size + sizeof (sync_bytes); outbuf = gst_buffer_new_and_alloc (outsize); @@ -689,7 +766,8 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outsize = gst_adapter_available (rtph264depay->adapter); outbuf = gst_adapter_take_buffer (rtph264depay->adapter, outsize); - gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp); + outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, + marker); break; } case 26: @@ -728,6 +806,15 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) /* NAL unit starts here */ guint8 nal_header; + /* If a new FU unit started, while still processing an older one. + * Assume that the remote payloader is buggy (doesn't set the end + * bit) and send out what we've gathered thusfar */ + if (G_UNLIKELY (rtph264depay->current_fu_type != 0)) + gst_rtp_h264_push_fragmentation_unit (rtph264depay, TRUE); + + rtph264depay->current_fu_type = nal_unit_type; + rtph264depay->fu_timestamp = timestamp; + rtph264depay->wait_start = FALSE; /* reconstruct NAL header */ @@ -766,25 +853,12 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) gst_adapter_push (rtph264depay->adapter, outbuf); } - /* if NAL unit ends, flush the adapter */ - if (E) { - GST_DEBUG_OBJECT (rtph264depay, "output %d bytes", outsize); - - outsize = gst_adapter_available (rtph264depay->adapter); - outbuf = gst_adapter_take_buffer (rtph264depay->adapter, outsize); - outdata = GST_BUFFER_DATA (outbuf); + outbuf = NULL; + rtph264depay->fu_marker = marker; - if (rtph264depay->byte_stream) { - memcpy (outdata, sync_bytes, sizeof (sync_bytes)); - } else { - outsize -= 4; - outdata[0] = (outsize >> 24); - outdata[1] = (outsize >> 16); - outdata[2] = (outsize >> 8); - outdata[3] = (outsize); - } - gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp); - } + /* if NAL unit ends, flush the adapter */ + if (E) + outbuf = gst_rtp_h264_push_fragmentation_unit (rtph264depay, FALSE); break; } default: @@ -807,13 +881,14 @@ gst_rtp_h264_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outdata += sizeof (sync_bytes); memcpy (outdata, payload, nalu_size); - gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp); + outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, + marker); break; } } } - return NULL; + return outbuf; /* ERRORS */ undefined_type: @@ -835,6 +910,25 @@ not_implemented: } } +static gboolean +gst_rtp_h264_depay_handle_event (GstBaseRTPDepayload * depay, GstEvent * event) +{ + GstRtpH264Depay *rtph264depay; + + rtph264depay = GST_RTP_H264_DEPAY (depay); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_STOP: + gst_rtp_h264_depay_reset (rtph264depay); + break; + default: + break; + } + + return + GST_BASE_RTP_DEPAYLOAD_CLASS (parent_class)->handle_event (depay, event); +} + static GstStateChangeReturn gst_rtp_h264_depay_change_state (GstElement * element, GstStateChange transition) @@ -848,11 +942,7 @@ gst_rtp_h264_depay_change_state (GstElement * element, case GST_STATE_CHANGE_NULL_TO_READY: break; case GST_STATE_CHANGE_READY_TO_PAUSED: - gst_adapter_clear (rtph264depay->adapter); - rtph264depay->wait_start = TRUE; - gst_adapter_clear (rtph264depay->picture_adapter); - rtph264depay->picture_start = FALSE; - rtph264depay->last_keyframe = FALSE; + gst_rtp_h264_depay_reset (rtph264depay); break; default: break; diff --git a/gst/rtp/gstrtph264depay.h b/gst/rtp/gstrtph264depay.h index e801f1f..f50ffe6 100644 --- a/gst/rtp/gstrtph264depay.h +++ b/gst/rtp/gstrtph264depay.h @@ -56,6 +56,11 @@ struct _GstRtpH264Depay gboolean picture_start; GstClockTime last_ts; gboolean last_keyframe; + + /* Work around broken payloaders wrt. FU-A & FU-B */ + guint8 current_fu_type; + GstClockTime fu_timestamp; + gboolean fu_marker; }; struct _GstRtpH264DepayClass diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c index a4830e6..1d0721e 100644 --- a/gst/rtp/gstrtph264pay.c +++ b/gst/rtp/gstrtph264pay.c @@ -22,8 +22,10 @@ #endif #include +#include #include +#include #include "gstrtph264pay.h" @@ -108,6 +110,8 @@ static void gst_rtp_h264_pay_set_property (GObject * object, guint prop_id, static void gst_rtp_h264_pay_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static GstCaps *gst_rtp_h264_pay_getcaps (GstBaseRTPPayload * payload, + GstPad * pad); static gboolean gst_rtp_h264_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps); static GstFlowReturn gst_rtp_h264_pay_handle_buffer (GstBaseRTPPayload * pad, @@ -124,10 +128,10 @@ gst_rtp_h264_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h264_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_h264_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h264_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_h264_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP H264 payloader", "Codec/Payloader/Network/RTP", @@ -191,6 +195,7 @@ gst_rtp_h264_pay_class_init (GstRtpH264PayClass * klass) gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_basertppayload_change_state); + gstbasertppayload_class->get_caps = gst_rtp_h264_pay_getcaps; gstbasertppayload_class->set_caps = gst_rtp_h264_pay_setcaps; gstbasertppayload_class->handle_buffer = gst_rtp_h264_pay_handle_buffer; gstbasertppayload_class->handle_event = gst_rtp_h264_pay_handle_event; @@ -243,6 +248,133 @@ gst_rtp_h264_pay_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } +static const gchar *all_levels[] = { + "1", + "1b", + "1.1", + "1.2", + "1.3", + "2", + "2.1", + "2.2", + "3", + "3.1", + "3.2", + "4", + "4.1", + "4.2", + "5", + "5.1", + NULL +}; + +static GstCaps * +gst_rtp_h264_pay_getcaps (GstBaseRTPPayload * payload, GstPad * pad) +{ + GstCaps *allowed_caps; + + allowed_caps = + gst_pad_peer_get_caps_reffed (GST_BASE_RTP_PAYLOAD_SRCPAD (payload)); + + if (allowed_caps) { + GstCaps *caps = NULL; + guint i; + + if (gst_caps_is_any (allowed_caps)) { + gst_caps_unref (allowed_caps); + goto any; + } + + if (gst_caps_is_empty (allowed_caps)) + return allowed_caps; + + caps = gst_caps_new_empty (); + + for (i = 0; i < gst_caps_get_size (allowed_caps); i++) { + GstStructure *s = gst_caps_get_structure (allowed_caps, i); + GstStructure *new_s = gst_structure_new ("video/x-h264", NULL); + const gchar *profile_level_id; + + profile_level_id = gst_structure_get_string (s, "profile-level-id"); + + if (profile_level_id && strlen (profile_level_id) == 6) { + const gchar *profile; + const gchar *level; + long int spsint; + guint8 sps[3]; + + spsint = strtol (profile_level_id, NULL, 16); + sps[0] = spsint >> 16; + sps[1] = spsint >> 8; + sps[2] = spsint; + + profile = gst_codec_utils_h264_get_profile (sps, 3); + level = gst_codec_utils_h264_get_level (sps, 3); + + if (profile && level) { + GST_LOG_OBJECT (payload, "In caps, have profile %s and level %s", + profile, level); + + if (!strcmp (profile, "constrained-baseline")) + gst_structure_set (new_s, "profile", G_TYPE_STRING, profile, NULL); + else { + GValue val = { 0, }; + GValue profiles = { 0, }; + + g_value_init (&profiles, GST_TYPE_LIST); + g_value_init (&val, G_TYPE_STRING); + + g_value_set_static_string (&val, profile); + gst_value_list_append_value (&profiles, &val); + + g_value_set_static_string (&val, "constrained-baseline"); + gst_value_list_append_value (&profiles, &val); + + gst_structure_take_value (new_s, "profile", &profiles); + } + + if (!strcmp (level, "1")) + gst_structure_set (new_s, "level", G_TYPE_STRING, level, NULL); + else { + GValue levels = { 0, }; + GValue val = { 0, }; + int j; + + g_value_init (&levels, GST_TYPE_LIST); + g_value_init (&val, G_TYPE_STRING); + + for (j = 0; all_levels[j]; j++) { + g_value_set_static_string (&val, all_levels[j]); + gst_value_list_prepend_value (&levels, &val); + if (!strcmp (level, all_levels[j])) + break; + } + gst_structure_take_value (new_s, "level", &levels); + } + } else { + /* Invalid profile-level-id means baseline */ + + gst_structure_set (new_s, + "profile", G_TYPE_STRING, "constrained-baseline", NULL); + } + } else { + /* No profile-level-id also means baseline */ + + gst_structure_set (new_s, + "profile", G_TYPE_STRING, "constrained-baseline", NULL); + } + + gst_caps_merge_structure (caps, new_s); + } + + gst_caps_unref (allowed_caps); + return caps; + } + +any: + return gst_caps_new_simple ("video/x-h264", NULL); +} + /* take the currently configured SPS and PPS lists and set them on the caps as * sprop-parameter-sets */ static gboolean @@ -298,6 +430,7 @@ gst_rtp_h264_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps) const GValue *value; guint8 *data; guint size; + const gchar *alignment; rtph264pay = GST_RTP_H264_PAY (basepayload); @@ -307,7 +440,12 @@ gst_rtp_h264_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps) * NALs */ gst_basertppayload_set_options (basepayload, "video", TRUE, "H264", 90000); -#if 0 // yoserb yi - not to check sps/pps when savsenc_h264 and rtph264pay are linked + alignment = gst_structure_get_string (str, "alignment"); + if (alignment && !strcmp (alignment, "au")) + rtph264pay->au_alignment = TRUE; + else + rtph264pay->au_alignment = FALSE; + /* packetized AVC video has a codec_data */ if ((value = gst_structure_get_value (str, "codec_data"))) { GstBuffer *buffer; @@ -409,10 +547,6 @@ gst_rtp_h264_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps) GST_DEBUG_OBJECT (rtph264pay, "have bytestream h264"); rtph264pay->packetized = FALSE; } -#else - GST_DEBUG_OBJECT (rtph264pay, "have bytestream h264"); - rtph264pay->packetized = FALSE; -#endif return TRUE; @@ -646,7 +780,7 @@ gst_rtp_h264_pay_decode_nal (GstRtpH264Pay * payloader, static GstFlowReturn gst_rtp_h264_pay_payload_nal (GstBaseRTPPayload * basepayload, const guint8 * data, guint size, GstClockTime timestamp, - GstBuffer * buffer_orig); + GstBuffer * buffer_orig, gboolean end_of_au); static GstFlowReturn gst_rtp_h264_pay_send_sps_pps (GstBaseRTPPayload * basepayload, @@ -662,7 +796,7 @@ gst_rtp_h264_pay_send_sps_pps (GstBaseRTPPayload * basepayload, /* resend SPS */ ret = gst_rtp_h264_pay_payload_nal (basepayload, GST_BUFFER_DATA (sps_buf), GST_BUFFER_SIZE (sps_buf), timestamp, - sps_buf); + sps_buf, FALSE); /* Not critical here; but throw a warning */ if (ret != GST_FLOW_OK) GST_WARNING ("Problem pushing SPS"); @@ -674,7 +808,7 @@ gst_rtp_h264_pay_send_sps_pps (GstBaseRTPPayload * basepayload, /* resend PPS */ ret = gst_rtp_h264_pay_payload_nal (basepayload, GST_BUFFER_DATA (pps_buf), GST_BUFFER_SIZE (pps_buf), timestamp, - pps_buf); + pps_buf, FALSE); /* Not critical here; but throw a warning */ if (ret != GST_FLOW_OK) GST_WARNING ("Problem pushing PPS"); @@ -689,7 +823,7 @@ gst_rtp_h264_pay_send_sps_pps (GstBaseRTPPayload * basepayload, static GstFlowReturn gst_rtp_h264_pay_payload_nal (GstBaseRTPPayload * basepayload, const guint8 * data, guint size, GstClockTime timestamp, - GstBuffer * buffer_orig) + GstBuffer * buffer_orig, gboolean end_of_au) { GstRtpH264Pay *rtph264pay; GstFlowReturn ret; @@ -768,7 +902,7 @@ gst_rtp_h264_pay_payload_nal (GstBaseRTPPayload * basepayload, } /* only set the marker bit on packets containing access units */ - if (IS_ACCESS_UNIT (nalType)) { + if (IS_ACCESS_UNIT (nalType) && end_of_au) { gst_rtp_buffer_set_marker (outbuf, 1); } @@ -858,7 +992,7 @@ gst_rtp_h264_pay_payload_nal (GstBaseRTPPayload * basepayload, end = 1; } if (IS_ACCESS_UNIT (nalType)) { - gst_rtp_buffer_set_marker (outbuf, end); + gst_rtp_buffer_set_marker (outbuf, end && end_of_au); } /* FU indicator */ @@ -958,6 +1092,7 @@ gst_rtp_h264_pay_handle_buffer (GstBaseRTPPayload * basepayload, while (size > nal_length_size) { gint i; + gboolean end_of_au = FALSE; nal_len = 0; for (i = 0; i < nal_length_size; i++) { @@ -976,9 +1111,16 @@ gst_rtp_h264_pay_handle_buffer (GstBaseRTPPayload * basepayload, nal_len); } + /* If we're at the end of the buffer, then we're at the end of the + * access unit + */ + if (rtph264pay->au_alignment && size - nal_len <= nal_length_size) { + end_of_au = TRUE; + } + ret = gst_rtp_h264_pay_payload_nal (basepayload, data, nal_len, timestamp, - buffer); + buffer, end_of_au); if (ret != GST_FLOW_OK) break; @@ -1080,6 +1222,7 @@ gst_rtp_h264_pay_handle_buffer (GstBaseRTPPayload * basepayload, for (i = 0; i < nal_queue->len; i++) { guint size; + gboolean end_of_au = FALSE; nal_len = g_array_index (nal_queue, guint, i); /* skip start code */ @@ -1095,10 +1238,22 @@ gst_rtp_h264_pay_handle_buffer (GstBaseRTPPayload * basepayload, for (; size > 1 && data[size - 1] == 0x0; size--) /* skip */ ; + /* If it's the last nal unit we have in non-bytestream mode, we can + * assume it's the end of an access-unit + * + * FIXME: We need to wait until the next packet or EOS to + * actually payload the NAL so we can know if the current NAL is + * the last one of an access unit or not if we are in bytestream mode + */ + if (rtph264pay->au_alignment && + rtph264pay->scan_mode != GST_H264_SCAN_MODE_BYTESTREAM && + i == nal_queue->len - 1) + end_of_au = TRUE; + /* put the data in one or more RTP packets */ ret = gst_rtp_h264_pay_payload_nal (basepayload, data, size, timestamp, - buffer); + buffer, end_of_au); if (ret != GST_FLOW_OK) { break; } diff --git a/gst/rtp/gstrtph264pay.h b/gst/rtp/gstrtph264pay.h index 19e5aaa..6303e30 100644 --- a/gst/rtp/gstrtph264pay.h +++ b/gst/rtp/gstrtph264pay.h @@ -55,6 +55,7 @@ struct _GstRtpH264Pay GList *sps, *pps; gboolean packetized; + gboolean au_alignment; guint nal_length_size; GArray *queue; diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c index 18ca426..0cdf23f 100644 --- a/gst/rtp/gstrtpilbcdepay.c +++ b/gst/rtp/gstrtpilbcdepay.c @@ -96,10 +96,10 @@ gst_rtp_ilbc_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ilbc_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ilbc_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ilbc_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ilbc_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP iLBC depayloader", "Codec/Depayloader/Network/RTP", "Extracts iLBC audio from RTP packets (RFC 3952)", @@ -188,7 +188,7 @@ gst_rtp_ilbc_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (buf); - if (marker) { + if (marker && outbuf) { /* mark start of talkspurt with DISCONT */ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); } diff --git a/gst/rtp/gstrtpilbcpay.c b/gst/rtp/gstrtpilbcpay.c index c070d6c..677f5e2 100644 --- a/gst/rtp/gstrtpilbcpay.c +++ b/gst/rtp/gstrtpilbcpay.c @@ -61,10 +61,10 @@ gst_rtp_ilbc_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ilbc_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_ilbc_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ilbc_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_ilbc_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP iLBC Payloader", "Codec/Payloader/Network/RTP", "Packetize iLBC audio streams into RTP packets", diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c index 4ac7c34..799a0ad 100644 --- a/gst/rtp/gstrtpj2kdepay.c +++ b/gst/rtp/gstrtpj2kdepay.c @@ -89,10 +89,10 @@ gst_rtp_j2k_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_j2k_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_j2k_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_j2k_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_j2k_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP JPEG 2000 depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c index 782cf22..ef06a71 100644 --- a/gst/rtp/gstrtpj2kpay.c +++ b/gst/rtp/gstrtpj2kpay.c @@ -119,10 +119,10 @@ gst_rtp_j2k_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_j2k_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_j2k_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_j2k_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_j2k_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP JPEG 2000 payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c index 5ab88fb..3c84397 100644 --- a/gst/rtp/gstrtpjpegdepay.c +++ b/gst/rtp/gstrtpjpegdepay.c @@ -84,10 +84,10 @@ gst_rtp_jpeg_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jpeg_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jpeg_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jpeg_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jpeg_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP JPEG depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c index fc4096d..eae2840 100644 --- a/gst/rtp/gstrtpjpegpay.c +++ b/gst/rtp/gstrtpjpegpay.c @@ -89,6 +89,7 @@ typedef enum _RtpJpegMarker RtpJpegMarker; * @JPEG_MARKER_SOS: Start of Scan marker * @JPEG_MARKER_EOI: End of Image marker * @JPEG_MARKER_DRI: Define Restart Interval marker + * @JPEG_MARKER_H264: H264 marker * * Identifers for markers in JPEG header */ @@ -103,7 +104,8 @@ enum _RtpJpegMarker JPEG_MARKER_DHT = 0xC4, JPEG_MARKER_SOS = 0xDA, JPEG_MARKER_EOI = 0xD9, - JPEG_MARKER_DRI = 0xDD + JPEG_MARKER_DRI = 0xDD, + JPEG_MARKER_H264 = 0xE4 }; #define DEFAULT_JPEG_QUANT 255 @@ -242,10 +244,10 @@ gst_rtp_jpeg_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jpeg_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jpeg_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jpeg_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jpeg_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP JPEG payloader", "Codec/Payloader/Network/RTP", @@ -312,13 +314,13 @@ gst_rtp_jpeg_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps) if (height <= 0 || height > 2040) goto invalid_dimension; } - pay->height = height / 8; + pay->height = GST_ROUND_UP_8 (height) / 8; if (gst_structure_get_int (caps_structure, "width", &width)) { if (width <= 0 || width > 2040) goto invalid_dimension; } - pay->width = width / 8; + pay->width = GST_ROUND_UP_8 (width) / 8; gst_basertppayload_set_options (basepayload, "video", TRUE, "JPEG", 90000); res = gst_basertppayload_set_outcaps (basepayload, NULL); @@ -457,8 +459,8 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data, if (width == 0 || width > 2040) goto invalid_dimension; - pay->height = height / 8; - pay->width = width / 8; + pay->height = GST_ROUND_UP_8 (height) / 8; + pay->width = GST_ROUND_UP_8 (width) / 8; /* we only support 3 components */ if (data[off++] != 3) @@ -590,7 +592,7 @@ gst_rtp_jpeg_pay_scan_marker (const guint8 * data, guint size, guint * offset) guint8 marker; marker = data[*offset]; - GST_LOG ("found %02x marker at offset %u", marker, *offset); + GST_LOG ("found 0x%02x marker at offset %u", marker, *offset); (*offset)++; return marker; } @@ -644,6 +646,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstBaseRTPPayload * basepayload, case JPEG_MARKER_JFIF: case JPEG_MARKER_CMT: case JPEG_MARKER_DHT: + case JPEG_MARKER_H264: GST_LOG_OBJECT (pay, "skipping marker"); offset += gst_rtp_jpeg_pay_header_size (data, offset); break; @@ -716,7 +719,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstBaseRTPPayload * basepayload, guint qt; qt = info[i].qt; - if (qt > 15) + if (qt >= G_N_ELEMENTS (tables)) goto invalid_quant; qsize = tables[qt].size; diff --git a/gst/rtp/gstrtpmp1sdepay.c b/gst/rtp/gstrtpmp1sdepay.c index 4887c4c..e7ff2fb 100644 --- a/gst/rtp/gstrtpmp1sdepay.c +++ b/gst/rtp/gstrtpmp1sdepay.c @@ -75,10 +75,10 @@ gst_rtp_mp1s_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp1s_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp1s_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp1s_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp1s_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG1 System Stream depayloader", "Codec/Depayloader/Network/RTP", @@ -131,8 +131,9 @@ gst_rtp_mp1s_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_buffer (buf); - GST_DEBUG ("gst_rtp_mp1s_depay_chain: pushing buffer of size %d", - GST_BUFFER_SIZE (outbuf)); + if (outbuf) + GST_DEBUG ("gst_rtp_mp1s_depay_chain: pushing buffer of size %d", + GST_BUFFER_SIZE (outbuf)); return outbuf; } diff --git a/gst/rtp/gstrtpmp2tdepay.c b/gst/rtp/gstrtpmp2tdepay.c index fe6c5de..609bfba 100644 --- a/gst/rtp/gstrtpmp2tdepay.c +++ b/gst/rtp/gstrtpmp2tdepay.c @@ -86,10 +86,10 @@ gst_rtp_mp2t_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp2t_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp2t_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp2t_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp2t_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG Transport Stream depayloader", "Codec/Depayloader/Network/RTP", @@ -169,8 +169,9 @@ gst_rtp_mp2t_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) gst_rtp_buffer_get_payload_subbuffer (buf, rtpmp2tdepay->skip_first_bytes, -1); - GST_DEBUG ("gst_rtp_mp2t_depay_chain: pushing buffer of size %d", - GST_BUFFER_SIZE (outbuf)); + if (outbuf) + GST_DEBUG ("gst_rtp_mp2t_depay_chain: pushing buffer of size %d", + GST_BUFFER_SIZE (outbuf)); return outbuf; diff --git a/gst/rtp/gstrtpmp2tpay.c b/gst/rtp/gstrtpmp2tpay.c index 3ddb5cb..55ef623 100644 --- a/gst/rtp/gstrtpmp2tpay.c +++ b/gst/rtp/gstrtpmp2tpay.c @@ -60,10 +60,10 @@ gst_rtp_mp2t_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp2t_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp2t_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp2t_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp2t_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP MPEG2 Transport Stream payloader", "Codec/Payloader/Network/RTP", "Payload-encodes MPEG2 TS into RTP packets (RFC 2250)", @@ -127,6 +127,8 @@ gst_rtp_mp2t_pay_flush (GstRTPMP2TPay * rtpmp2tpay) GstBuffer *outbuf; avail = gst_adapter_available (rtpmp2tpay->adapter); + if (avail == 0) + return GST_FLOW_OK; outbuf = gst_rtp_buffer_new_allocate (avail, 0, 0); /* get payload */ diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c index 18ebfd2..e4343f8 100644 --- a/gst/rtp/gstrtpmp4adepay.c +++ b/gst/rtp/gstrtpmp4adepay.c @@ -51,7 +51,7 @@ GST_STATIC_PAD_TEMPLATE ("sink", /* All optional parameters * * "profile-level-id=[1,MAX]" - * "config=" + * "config=" */ ) ); @@ -75,10 +75,10 @@ gst_rtp_mp4a_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4a_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4a_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4a_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4a_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 audio depayloader", "Codec/Depayloader/Network/RTP", @@ -130,7 +130,7 @@ gst_rtp_mp4a_depay_finalize (GObject * object) } static const guint aac_sample_rates[] = { 96000, 88200, 64000, 48000, - 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000 + 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350 }; static gboolean @@ -229,7 +229,7 @@ gst_rtp_mp4a_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) if (!gst_bit_reader_get_bits_uint8 (&br, &sr_idx, 4)) goto bad_config; - if (sr_idx > 12 && sr_idx != 15) { + if (sr_idx >= G_N_ELEMENTS (aac_sample_rates) && sr_idx != 15) { GST_WARNING_OBJECT (depayload, "invalid sample rate index %d", sr_idx); goto bad_config; } @@ -247,6 +247,8 @@ gst_rtp_mp4a_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) /* index of 15 means we get the rate in the next 24 bits */ if (!gst_bit_reader_get_bits_uint32 (&br, &rate, 24)) goto bad_config; + } else if (sr_idx >= G_N_ELEMENTS (aac_sample_rates)) { + goto bad_config; } else { /* else use the rate from the table */ rate = aac_sample_rates[sr_idx]; @@ -315,7 +317,6 @@ gst_rtp_mp4a_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) guint8 *data; guint pos; GstClockTime timestamp; - guint offset; avail = gst_adapter_available (rtpmp4adepay->adapter); timestamp = gst_adapter_prev_timestamp (rtpmp4adepay->adapter, NULL); @@ -326,8 +327,6 @@ gst_rtp_mp4a_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) data = GST_BUFFER_DATA (outbuf); /* position in data we are at */ pos = 0; - /* timestamp offset */ - offset = 0; /* looping through the number of sub-frames in the audio payload */ for (i = 0; i <= rtpmp4adepay->numSubFrames; i++) { @@ -366,18 +365,15 @@ gst_rtp_mp4a_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) data += skip; avail -= skip; - if (offset > 0 && timestamp != -1 && depayload->clock_rate != 0) { - timestamp += - gst_util_uint64_scale_int (offset, GST_SECOND, - depayload->clock_rate); - } - GST_BUFFER_TIMESTAMP (tmp) = timestamp; gst_base_rtp_depayload_push (depayload, tmp); - /* calculate offsets for next buffers */ - if (rtpmp4adepay->frame_len) { - offset += rtpmp4adepay->frame_len; + /* shift ts for next buffers */ + if (rtpmp4adepay->frame_len && timestamp != -1 + && depayload->clock_rate != 0) { + timestamp += + gst_util_uint64_scale_int (rtpmp4adepay->frame_len, GST_SECOND, + depayload->clock_rate); } } diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c index 70fdbed..bfafbd8 100644 --- a/gst/rtp/gstrtpmp4apay.c +++ b/gst/rtp/gstrtpmp4apay.c @@ -71,10 +71,10 @@ GST_BOILERPLATE (GstRtpMP4APay, gst_rtp_mp4a_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4a_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4a_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4a_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4a_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 audio payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c index 02ac8d6..1dd049b 100644 --- a/gst/rtp/gstrtpmp4gdepay.c +++ b/gst/rtp/gstrtpmp4gdepay.c @@ -147,10 +147,10 @@ gst_rtp_mp4g_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4g_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4g_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4g_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4g_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 ES depayloader", "Codec/Depayloader/Network/RTP", @@ -611,6 +611,8 @@ gst_rtp_mp4g_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) rtpmp4gdepay->next_AU_index = GST_BUFFER_OFFSET (outbuf); gst_rtp_mp4g_depay_flush_queue (rtpmp4gdepay); } + /* rebase next_AU_index to current rtp's first AU_index */ + rtpmp4gdepay->next_AU_index = AU_index; } rtpmp4gdepay->prev_rtptime = rtptime; rtpmp4gdepay->prev_AU_num = num_AU_headers; diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c index b3a6966..4100ab7 100644 --- a/gst/rtp/gstrtpmp4gpay.c +++ b/gst/rtp/gstrtpmp4gpay.c @@ -91,10 +91,10 @@ GST_BOILERPLATE (GstRtpMP4GPay, gst_rtp_mp4g_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4g_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4g_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4g_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4g_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 ES payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c index ce18cec..ba3fef2 100644 --- a/gst/rtp/gstrtpmp4vdepay.c +++ b/gst/rtp/gstrtpmp4vdepay.c @@ -72,10 +72,10 @@ gst_rtp_mp4v_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4v_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4v_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4v_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4v_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 video depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c index 568bd83..5707a66 100644 --- a/gst/rtp/gstrtpmp4vpay.c +++ b/gst/rtp/gstrtpmp4vpay.c @@ -87,10 +87,10 @@ GST_BOILERPLATE (GstRtpMP4VPay, gst_rtp_mp4v_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4v_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mp4v_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4v_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mp4v_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG4 Video payloader", "Codec/Payloader/Network/RTP", @@ -112,7 +112,8 @@ gst_rtp_mp4v_pay_class_init (GstRtpMP4VPayClass * klass) g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SEND_CONFIG, g_param_spec_boolean ("send-config", "Send Config", - "Send the config parameters in RTP packets as well", + "Send the config parameters in RTP packets as well(deprecated " + "see config-interval)", DEFAULT_SEND_CONFIG, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BUFFER_LIST, @@ -491,7 +492,7 @@ gst_rtp_mp4v_pay_handle_buffer (GstBaseRTPPayload * basepayload, flush = gst_rtp_mp4v_pay_depay_data (rtpmp4vpay, data, size, &strip, &vopi); if (strip) { /* strip off config if requested */ - if (!rtpmp4vpay->send_config) { + if (!(rtpmp4vpay->config_interval > 0)) { GstBuffer *subbuf; GST_LOG_OBJECT (rtpmp4vpay, "stripping config at %d, size %d", strip, @@ -511,8 +512,7 @@ gst_rtp_mp4v_pay_handle_buffer (GstBaseRTPPayload * basepayload, } /* there is a config request, see if we need to insert it */ - if (rtpmp4vpay->send_config && vopi && (rtpmp4vpay->config_interval > 0) && - rtpmp4vpay->config) { + if (vopi && (rtpmp4vpay->config_interval > 0) && rtpmp4vpay->config) { if (rtpmp4vpay->last_config != -1) { guint64 diff; @@ -629,6 +629,10 @@ gst_rtp_mp4v_pay_set_property (GObject * object, guint prop_id, switch (prop_id) { case ARG_SEND_CONFIG: rtpmp4vpay->send_config = g_value_get_boolean (value); + /* send the configuration once every minute */ + if (rtpmp4vpay->send_config && !(rtpmp4vpay->config_interval > 0)) { + rtpmp4vpay->config_interval = 60; + } break; case ARG_BUFFER_LIST: rtpmp4vpay->buffer_list = g_value_get_boolean (value); diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c index 1fdc8d4..2b442c8 100644 --- a/gst/rtp/gstrtpmpadepay.c +++ b/gst/rtp/gstrtpmpadepay.c @@ -63,10 +63,10 @@ gst_rtp_mpa_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG audio depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c index f685ef2..af2b78e 100644 --- a/gst/rtp/gstrtpmpapay.c +++ b/gst/rtp/gstrtpmpapay.c @@ -70,10 +70,10 @@ GST_BOILERPLATE (GstRtpMPAPay, gst_rtp_mpa_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG audio payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpmparobustdepay.c b/gst/rtp/gstrtpmparobustdepay.c index 0f3c049..17645a4 100644 --- a/gst/rtp/gstrtpmparobustdepay.c +++ b/gst/rtp/gstrtpmparobustdepay.c @@ -85,10 +85,10 @@ gst_rtp_mpa_robust_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_robust_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpa_robust_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_robust_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpa_robust_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG audio depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c index f978604..c48c82b 100644 --- a/gst/rtp/gstrtpmpvdepay.c +++ b/gst/rtp/gstrtpmpvdepay.c @@ -66,10 +66,10 @@ gst_rtp_mpv_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpv_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpv_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpv_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpv_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP MPEG video depayloader", "Codec/Depayloader/Network/RTP", @@ -176,9 +176,11 @@ gst_rtp_mpv_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) outbuf = gst_rtp_buffer_get_payload_subbuffer (buf, payload_header, -1); - GST_DEBUG_OBJECT (rtpmpvdepay, - "gst_rtp_mpv_depay_chain: pushing buffer of size %d", - GST_BUFFER_SIZE (outbuf)); + if (outbuf) { + GST_DEBUG_OBJECT (rtpmpvdepay, + "gst_rtp_mpv_depay_chain: pushing buffer of size %d", + GST_BUFFER_SIZE (outbuf)); + } return outbuf; } diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c index a96afbf..9fa897f 100644 --- a/gst/rtp/gstrtpmpvpay.c +++ b/gst/rtp/gstrtpmpvpay.c @@ -68,10 +68,10 @@ gst_rtp_mpv_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpv_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_mpv_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpv_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_mpv_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP MPEG2 ES video payloader", "Codec/Payloader/Network/RTP", "Payload-encodes MPEG2 ES into RTP packets (RFC 2250)", diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c index 35fc0a9..04e509e 100644 --- a/gst/rtp/gstrtppcmadepay.c +++ b/gst/rtp/gstrtppcmadepay.c @@ -45,19 +45,19 @@ static GstStaticPadTemplate gst_rtp_pcma_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 8000, " "encoding-name = (string) \"PCMA\";" + "payload = (int) " GST_RTP_PAYLOAD_PCMA_STRING ", " + "clock-rate = (int) 8000, encoding-name = (string) \"PCMA\";" "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_PCMA_STRING ", " - "clock-rate = (int) 8000") + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "clock-rate = (int) [1, MAX ], encoding-name = (string) \"PCMA\"") ); static GstStaticPadTemplate gst_rtp_pcma_depay_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-alaw, channels = (int) 1, rate = (int) 8000") + GST_STATIC_CAPS ("audio/x-alaw, channels = (int) 1, rate = (int) [1, MAX ]") ); static GstBuffer *gst_rtp_pcma_depay_process (GstBaseRTPDepayload * depayload, @@ -73,10 +73,10 @@ gst_rtp_pcma_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcma_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcma_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcma_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcma_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP PCMA depayloader", "Codec/Depayloader/Network/RTP", "Extracts PCMA audio from RTP packets", @@ -143,12 +143,14 @@ gst_rtp_pcma_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) len = gst_rtp_buffer_get_payload_len (buf); outbuf = gst_rtp_buffer_get_payload_buffer (buf); - GST_BUFFER_DURATION (outbuf) = - gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); + if (outbuf) { + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); - if (marker) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + if (marker) { + /* mark start of talkspurt with DISCONT */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + } } return outbuf; diff --git a/gst/rtp/gstrtppcmapay.c b/gst/rtp/gstrtppcmapay.c index d897ce1..ea379a0 100644 --- a/gst/rtp/gstrtppcmapay.c +++ b/gst/rtp/gstrtppcmapay.c @@ -47,7 +47,7 @@ static GstStaticPadTemplate gst_rtp_pcma_pay_src_template = "application/x-rtp, " "media = (string) \"audio\", " "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 8000, " "encoding-name = (string) \"PCMA\"") + "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"PCMA\"") ); static gboolean gst_rtp_pcma_pay_setcaps (GstBaseRTPPayload * payload, @@ -61,10 +61,10 @@ gst_rtp_pcma_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcma_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcma_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcma_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcma_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP PCMA payloader", "Codec/Payloader/Network/RTP", "Payload-encodes PCMA audio into a RTP packet", diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c index fd1f1e5..d09e061 100644 --- a/gst/rtp/gstrtppcmudepay.c +++ b/gst/rtp/gstrtppcmudepay.c @@ -45,19 +45,20 @@ static GstStaticPadTemplate gst_rtp_pcmu_depay_sink_template = GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 8000, " "encoding-name = (string) \"PCMU\";" + "payload = (int) " GST_RTP_PAYLOAD_PCMU_STRING ", " + "encoding-name = (string) \"PCMU\", clock-rate = (int) 8000; " "application/x-rtp, " "media = (string) \"audio\", " - "payload = (int) " GST_RTP_PAYLOAD_PCMU_STRING ", " - "clock-rate = (int) 8000") + "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " + "encoding-name = (string) \"PCMU\", clock-rate = (int) [1, MAX ]") ); static GstStaticPadTemplate gst_rtp_pcmu_depay_src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-mulaw, channels = (int) 1, rate = (int) 8000") + GST_STATIC_CAPS ("audio/x-mulaw, " + "channels = (int) 1, rate = (int) [1, MAX ]") ); static GstBuffer *gst_rtp_pcmu_depay_process (GstBaseRTPDepayload * depayload, @@ -73,10 +74,10 @@ gst_rtp_pcmu_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcmu_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcmu_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcmu_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcmu_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP PCMU depayloader", "Codec/Depayloader/Network/RTP", "Extracts PCMU audio from RTP packets", @@ -143,12 +144,14 @@ gst_rtp_pcmu_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) len = gst_rtp_buffer_get_payload_len (buf); outbuf = gst_rtp_buffer_get_payload_buffer (buf); - GST_BUFFER_DURATION (outbuf) = - gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); + if (outbuf) { + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale_int (len, GST_SECOND, depayload->clock_rate); - if (marker) { - /* mark start of talkspurt with DISCONT */ - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + if (marker) { + /* mark start of talkspurt with DISCONT */ + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + } } return outbuf; diff --git a/gst/rtp/gstrtppcmupay.c b/gst/rtp/gstrtppcmupay.c index e7a0995..5b555b3 100644 --- a/gst/rtp/gstrtppcmupay.c +++ b/gst/rtp/gstrtppcmupay.c @@ -47,7 +47,7 @@ static GstStaticPadTemplate gst_rtp_pcmu_pay_src_template = "application/x-rtp, " "media = (string) \"audio\", " "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", " - "clock-rate = (int) 8000, " "encoding-name = (string) \"PCMU\"") + "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"PCMU\"") ); static gboolean gst_rtp_pcmu_pay_setcaps (GstBaseRTPPayload * payload, @@ -61,10 +61,10 @@ gst_rtp_pcmu_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcmu_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_pcmu_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcmu_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_pcmu_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP PCMU payloader", "Codec/Payloader/Network/RTP", "Payload-encodes PCMU audio into a RTP packet", diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c index 7949ae7..810b58e 100644 --- a/gst/rtp/gstrtpqcelpdepay.c +++ b/gst/rtp/gstrtpqcelpdepay.c @@ -85,10 +85,10 @@ gst_rtp_qcelp_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_qcelp_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_qcelp_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_qcelp_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_qcelp_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP QCELP depayloader", "Codec/Depayloader/Network/RTP", @@ -164,7 +164,7 @@ static const gint frame_size[16] = { static gint get_frame_len (GstRtpQCELPDepay * depay, guint8 frame_type) { - if (frame_type > 16) + if (frame_type >= G_N_ELEMENTS (frame_size)) return 0; return frame_size[frame_type]; diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c index 7e2e50b..0139709 100644 --- a/gst/rtp/gstrtpqdmdepay.c +++ b/gst/rtp/gstrtpqdmdepay.c @@ -70,10 +70,10 @@ gst_rtp_qdm2_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_qdm2_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_qdm2_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_qdm2_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_qdm2_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP QDM2 depayloader", diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c index 2746e74..9213f24 100644 --- a/gst/rtp/gstrtpsirendepay.c +++ b/gst/rtp/gstrtpsirendepay.c @@ -59,10 +59,10 @@ gst_rtp_siren_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_siren_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_siren_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_siren_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_siren_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Siren packet depayloader", "Codec/Depayloader/Network/RTP", "Extracts Siren audio from RTP packets", diff --git a/gst/rtp/gstrtpsirenpay.c b/gst/rtp/gstrtpsirenpay.c index c7c9582..e878d4f 100644 --- a/gst/rtp/gstrtpsirenpay.c +++ b/gst/rtp/gstrtpsirenpay.c @@ -59,10 +59,10 @@ gst_rtp_siren_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_siren_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_siren_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_siren_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_siren_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP Payloader for Siren Audio", "Codec/Payloader/Network/RTP", "Packetize Siren audio streams into RTP packets", diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c index 10dea1a..29903b9 100644 --- a/gst/rtp/gstrtpspeexdepay.c +++ b/gst/rtp/gstrtpspeexdepay.c @@ -71,10 +71,10 @@ gst_rtp_speex_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_speex_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_speex_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_speex_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_speex_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Speex depayloader", "Codec/Depayloader/Network/RTP", "Extracts Speex audio from RTP packets", @@ -212,7 +212,8 @@ gst_rtp_speex_depay_process (GstBaseRTPDepayload * depayload, GstBuffer * buf) /* nothing special to be done */ outbuf = gst_rtp_buffer_get_payload_buffer (buf); - GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND; + if (outbuf) + GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND; return outbuf; } diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c index 35273e2..bc69fb0 100644 --- a/gst/rtp/gstrtpspeexpay.c +++ b/gst/rtp/gstrtpspeexpay.c @@ -68,10 +68,10 @@ gst_rtp_speex_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_speex_pay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_speex_pay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_speex_pay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_speex_pay_src_template); gst_element_class_set_details_simple (element_class, "RTP Speex payloader", "Codec/Payloader/Network/RTP", "Payload-encodes Speex audio into a RTP packet", diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c index a99559c..b29fe02 100644 --- a/gst/rtp/gstrtpsv3vdepay.c +++ b/gst/rtp/gstrtpsv3vdepay.c @@ -65,10 +65,10 @@ gst_rtp_sv3v_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_sv3v_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_sv3v_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_sv3v_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_sv3v_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP SVQ3 depayloader", diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c index c1a576b..1e38262 100644 --- a/gst/rtp/gstrtptheoradepay.c +++ b/gst/rtp/gstrtptheoradepay.c @@ -78,10 +78,10 @@ gst_rtp_theora_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_theora_depay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_theora_depay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_theora_depay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_theora_depay_src_template); gst_element_class_set_details_simple (element_class, "RTP Theora depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c index 0092fbc..a4c0919 100644 --- a/gst/rtp/gstrtptheorapay.c +++ b/gst/rtp/gstrtptheorapay.c @@ -98,10 +98,10 @@ gst_rtp_theora_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_theora_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_theora_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_theora_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_theora_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Theora payloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c index 506558d..1694af8 100644 --- a/gst/rtp/gstrtpvorbisdepay.c +++ b/gst/rtp/gstrtpvorbisdepay.c @@ -76,10 +76,10 @@ gst_rtp_vorbis_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vorbis_depay_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vorbis_depay_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vorbis_depay_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vorbis_depay_src_template); gst_element_class_set_details_simple (element_class, "RTP Vorbis depayloader", "Codec/Depayloader/Network/RTP", diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c index a7841c3..12b82ec 100644 --- a/gst/rtp/gstrtpvorbispay.c +++ b/gst/rtp/gstrtpvorbispay.c @@ -75,10 +75,10 @@ gst_rtp_vorbis_pay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vorbis_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vorbis_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vorbis_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vorbis_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Vorbis depayloader", "Codec/Payloader/Network/RTP", diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c index 5919a5b..a18167c 100644 --- a/gst/rtp/gstrtpvrawdepay.c +++ b/gst/rtp/gstrtpvrawdepay.c @@ -66,10 +66,10 @@ gst_rtp_vraw_depay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vraw_depay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vraw_depay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vraw_depay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vraw_depay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Raw Video depayloader", "Codec/Depayloader/Network/RTP", @@ -125,6 +125,7 @@ gst_rtp_vraw_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) GstCaps *srccaps; guint32 fourcc = 0; gboolean res; + gint rmask = 0, gmask = 0, bmask = 0, amask = 0, bpp = 0, depth = 0; rtpvrawdepay = GST_RTP_VRAW_DEPAY (depayload); @@ -159,24 +160,46 @@ gst_rtp_vraw_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) ystride = GST_ROUND_UP_4 (width * 3); outsize = ystride * height; type = "video/x-raw-rgb"; + rmask = 0x00ff0000; + gmask = 0x0000ff00; + bmask = 0x000000ff; + depth = 24; + bpp = 24; } else if (!strcmp (str, "RGBA")) { format = GST_VIDEO_FORMAT_RGBA; pgroup = 4; ystride = width * 4; outsize = ystride * height; type = "video/x-raw-rgb"; + rmask = 0xff000000; + gmask = 0x00ff0000; + bmask = 0x0000ff00; + amask = 0x000000ff; + depth = 32; + bpp = 32; } else if (!strcmp (str, "BGR")) { format = GST_VIDEO_FORMAT_BGR; pgroup = 3; ystride = GST_ROUND_UP_4 (width * 3); outsize = ystride * height; type = "video/x-raw-rgb"; + rmask = 0x000000ff; + gmask = 0x0000ff00; + bmask = 0x00ff0000; + depth = 24; + bpp = 24; } else if (!strcmp (str, "BGRA")) { format = GST_VIDEO_FORMAT_BGRA; pgroup = 4; ystride = width * 4; outsize = ystride * height; type = "video/x-raw-rgb"; + rmask = 0x0000ff00; + gmask = 0x00ff0000; + bmask = 0xff000000; + amask = 0x000000ff; + depth = 32; + bpp = 32; } else if (!strcmp (str, "YCbCr-4:4:4")) { format = GST_VIDEO_FORMAT_AYUV; pgroup = 3; @@ -236,6 +259,19 @@ gst_rtp_vraw_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) "format", GST_TYPE_FOURCC, fourcc, "framerate", GST_TYPE_FRACTION, 0, 1, NULL); + if (!strcmp (type, "video/x-raw-rgb")) { + gst_caps_set_simple (srccaps, + "endianness", G_TYPE_INT, G_BIG_ENDIAN, + "red_mask", G_TYPE_INT, rmask, + "green_mask", G_TYPE_INT, gmask, + "blue_mask", G_TYPE_INT, bmask, + "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL); + + if (amask > 0) { + gst_caps_set_simple (srccaps, "alpha_mask", G_TYPE_INT, amask, NULL); + } + } + res = gst_pad_set_caps (GST_BASE_RTP_DEPAYLOAD_SRCPAD (depayload), srccaps); gst_caps_unref (srccaps); diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c index c354639..7228ea8 100644 --- a/gst/rtp/gstrtpvrawpay.c +++ b/gst/rtp/gstrtpvrawpay.c @@ -38,18 +38,18 @@ static GstStaticPadTemplate gst_rtp_vraw_pay_sink_template = "bpp = (int) 24, " "depth = (int) 24, " "endianness = (int) BIG_ENDIAN, " - "red_mask = (int) 0xFF000000, " - "green_mask = (int) 0x00FF0000, " - "blue_mask = (int) 0x0000FF00, " + "red_mask = (int) 0x00FF0000, " + "green_mask = (int) 0x0000FF00, " + "blue_mask = (int) 0x000000FF, " "width = (int) [ 1, 32767 ], " "height = (int) [ 1, 32767 ]; " "video/x-raw-rgb, " "bpp = (int) 32, " "depth = (int) 32, " "endianness = (int) BIG_ENDIAN, " - "red_mask = (int) 0xFF000000, " + "red_mask = (int) 0xFF000000, " "green_mask = (int) 0x00FF0000, " - "blue_mask = (int) 0x0000FF00, " + "blue_mask = (int) 0x0000FF00, " "alpha_mask = (int) 0x000000FF, " "width = (int) [ 1, 32767 ], " "height = (int) [ 1, 32767 ]; " @@ -57,18 +57,18 @@ static GstStaticPadTemplate gst_rtp_vraw_pay_sink_template = "bpp = (int) 24, " "depth = (int) 24, " "endianness = (int) BIG_ENDIAN, " - "red_mask = (int) 0x0000FF00, " - "green_mask = (int) 0x00FF0000, " - "blue_mask = (int) 0xFF000000, " + "red_mask = (int) 0x000000FF, " + "green_mask = (int) 0x0000FF00, " + "blue_mask = (int) 0x00FF0000, " "width = (int) [ 1, 32767 ], " "height = (int) [ 1, 32767 ]; " "video/x-raw-rgb, " "bpp = (int) 32, " "depth = (int) 32, " "endianness = (int) BIG_ENDIAN, " - "red_mask = (int) 0x0000FF00, " + "red_mask = (int) 0x0000FF00, " "green_mask = (int) 0x00FF0000, " - "blue_mask = (int) 0xFF000000, " + "blue_mask = (int) 0xFF000000, " "alpha_mask = (int) 0x000000FF, " "width = (int) [ 1, 32767 ], " "height = (int) [ 1, 32767 ]; " @@ -116,10 +116,10 @@ GST_BOILERPLATE (GstRtpVRawPay, gst_rtp_vraw_pay, GstBaseRTPPayload, { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vraw_pay_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_vraw_pay_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vraw_pay_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_vraw_pay_sink_template); gst_element_class_set_details_simple (element_class, "RTP Raw Video payloader", "Codec/Payloader/Network/RTP", @@ -219,7 +219,7 @@ gst_rtp_vraw_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) } else { pgroup = 3; ystride = GST_ROUND_UP_4 (width * 3); - if (rmask == 0xFF000000) { + if (rmask == 0x00FF0000) { sampling = GST_VIDEO_FORMAT_RGB; samplingstr = "RGB"; } else { diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in index 85d915d..212952f 100644 --- a/gst/rtpmanager/Makefile.in +++ b/gst/rtpmanager/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -75,8 +75,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -111,6 +110,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -130,8 +135,8 @@ am__objects_1 = libgstrtpmanager_la-gstrtpbin-marshal.lo nodist_libgstrtpmanager_la_OBJECTS = $(am__objects_1) libgstrtpmanager_la_OBJECTS = $(am_libgstrtpmanager_la_OBJECTS) \ $(nodist_libgstrtpmanager_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtpmanager_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -147,21 +152,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtpmanager_la_SOURCES) \ $(nodist_libgstrtpmanager_la_SOURCES) @@ -245,7 +250,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -320,7 +328,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -344,6 +351,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -378,18 +386,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -442,6 +442,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -476,7 +477,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,6 +566,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -606,7 +607,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtpmanager.la: $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_DEPENDENCIES) +libgstrtpmanager.la: $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_DEPENDENCIES) $(EXTRA_libgstrtpmanager_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtpmanager_la_LINK) -rpath $(plugindir) $(libgstrtpmanager_la_OBJECTS) $(libgstrtpmanager_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -630,114 +631,100 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtpmanager_la-gstrtpmanager.lo: gstrtpmanager.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpmanager.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Tpo -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpmanager.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpmanager.c' object='libgstrtpmanager_la-gstrtpmanager.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpmanager.c' object='libgstrtpmanager_la-gstrtpmanager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpmanager.lo `test -f 'gstrtpmanager.c' || echo '$(srcdir)/'`gstrtpmanager.c libgstrtpmanager_la-gstrtpbin.lo: gstrtpbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpbin.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Tpo -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpbin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpbin.c' object='libgstrtpmanager_la-gstrtpbin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpbin.c' object='libgstrtpmanager_la-gstrtpbin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin.lo `test -f 'gstrtpbin.c' || echo '$(srcdir)/'`gstrtpbin.c libgstrtpmanager_la-gstrtpjitterbuffer.lo: gstrtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpjitterbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpjitterbuffer.c' object='libgstrtpmanager_la-gstrtpjitterbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpjitterbuffer.c' object='libgstrtpmanager_la-gstrtpjitterbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpjitterbuffer.lo `test -f 'gstrtpjitterbuffer.c' || echo '$(srcdir)/'`gstrtpjitterbuffer.c libgstrtpmanager_la-gstrtpptdemux.lo: gstrtpptdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpptdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpptdemux.c' object='libgstrtpmanager_la-gstrtpptdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpptdemux.c' object='libgstrtpmanager_la-gstrtpptdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpptdemux.lo `test -f 'gstrtpptdemux.c' || echo '$(srcdir)/'`gstrtpptdemux.c libgstrtpmanager_la-gstrtpssrcdemux.lo: gstrtpssrcdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpssrcdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpssrcdemux.c' object='libgstrtpmanager_la-gstrtpssrcdemux.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpssrcdemux.c' object='libgstrtpmanager_la-gstrtpssrcdemux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c libgstrtpmanager_la-rtpjitterbuffer.lo: rtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpjitterbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Tpo -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtpjitterbuffer.c' object='libgstrtpmanager_la-rtpjitterbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtpjitterbuffer.c' object='libgstrtpmanager_la-rtpjitterbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpjitterbuffer.lo `test -f 'rtpjitterbuffer.c' || echo '$(srcdir)/'`rtpjitterbuffer.c libgstrtpmanager_la-rtpsession.lo: rtpsession.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsession.Tpo -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpsession.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpsession.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtpsession.c' object='libgstrtpmanager_la-rtpsession.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtpsession.c' object='libgstrtpmanager_la-rtpsession.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsession.lo `test -f 'rtpsession.c' || echo '$(srcdir)/'`rtpsession.c libgstrtpmanager_la-rtpsource.lo: rtpsource.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpsource.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpsource.Tpo -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpsource.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpsource.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtpsource.c' object='libgstrtpmanager_la-rtpsource.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtpsource.c' object='libgstrtpmanager_la-rtpsource.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpsource.lo `test -f 'rtpsource.c' || echo '$(srcdir)/'`rtpsource.c libgstrtpmanager_la-rtpstats.lo: rtpstats.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-rtpstats.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-rtpstats.Tpo -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-rtpstats.Tpo $(DEPDIR)/libgstrtpmanager_la-rtpstats.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtpstats.c' object='libgstrtpmanager_la-rtpstats.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rtpstats.c' object='libgstrtpmanager_la-rtpstats.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-rtpstats.lo `test -f 'rtpstats.c' || echo '$(srcdir)/'`rtpstats.c libgstrtpmanager_la-gstrtpsession.lo: gstrtpsession.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpsession.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Tpo -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpsession.c' object='libgstrtpmanager_la-gstrtpsession.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpsession.c' object='libgstrtpmanager_la-gstrtpsession.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpsession.lo `test -f 'gstrtpsession.c' || echo '$(srcdir)/'`gstrtpsession.c libgstrtpmanager_la-gstrtpbin-marshal.lo: gstrtpbin-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpbin-marshal.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpbin-marshal.Tpo -c -o libgstrtpmanager_la-gstrtpbin-marshal.lo `test -f 'gstrtpbin-marshal.c' || echo '$(srcdir)/'`gstrtpbin-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpbin-marshal.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpbin-marshal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpbin-marshal.c' object='libgstrtpmanager_la-gstrtpbin-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpbin-marshal.c' object='libgstrtpmanager_la-gstrtpbin-marshal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin-marshal.lo `test -f 'gstrtpbin-marshal.c' || echo '$(srcdir)/'`gstrtpbin-marshal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtpbin-marshal.lo `test -f 'gstrtpbin-marshal.c' || echo '$(srcdir)/'`gstrtpbin-marshal.c mostlyclean-libtool: -rm -f *.lo @@ -846,10 +833,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index e8d659f..f843ed2 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -129,6 +129,8 @@ #include "gstrtpsession.h" #include "gstrtpjitterbuffer.h" +#include + GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug); #define GST_CAT_DEFAULT gst_rtp_bin_debug @@ -213,6 +215,9 @@ struct _GstRtpBinPrivate gint shutdown; gboolean autoremove; + + /* UNIX (ntp) time of last SR sync used */ + guint64 last_unix; }; /* signals and args */ @@ -245,6 +250,8 @@ enum #define DEFAULT_AUTOREMOVE FALSE #define DEFAULT_BUFFER_MODE RTP_JITTER_BUFFER_MODE_SLAVE #define DEFAULT_USE_PIPELINE_CLOCK FALSE +#define DEFAULT_RTCP_SYNC GST_RTP_BIN_RTCP_SYNC_ALWAYS +#define DEFAULT_RTCP_SYNC_INTERVAL 0 enum { @@ -254,12 +261,39 @@ enum PROP_DO_LOST, PROP_IGNORE_PT, PROP_NTP_SYNC, + PROP_RTCP_SYNC, + PROP_RTCP_SYNC_INTERVAL, PROP_AUTOREMOVE, PROP_BUFFER_MODE, PROP_USE_PIPELINE_CLOCK, PROP_LAST }; +enum +{ + GST_RTP_BIN_RTCP_SYNC_ALWAYS, + GST_RTP_BIN_RTCP_SYNC_INITIAL, + GST_RTP_BIN_RTCP_SYNC_RTP +}; + +#define GST_RTP_BIN_RTCP_SYNC_TYPE (gst_rtp_bin_rtcp_sync_get_type()) +static GType +gst_rtp_bin_rtcp_sync_get_type (void) +{ + static GType rtcp_sync_type = 0; + static const GEnumValue rtcp_sync_types[] = { + {GST_RTP_BIN_RTCP_SYNC_ALWAYS, "always", "always"}, + {GST_RTP_BIN_RTCP_SYNC_INITIAL, "initial", "initial"}, + {GST_RTP_BIN_RTCP_SYNC_RTP, "rtp-info", "rtp-info"}, + {0, NULL, NULL}, + }; + + if (!rtcp_sync_type) { + rtcp_sync_type = g_enum_register_static ("GstRTCPSync", rtcp_sync_types); + } + return rtcp_sync_type; +} + /* helper objects */ typedef struct _GstRtpBinSession GstRtpBinSession; typedef struct _GstRtpBinStream GstRtpBinStream; @@ -310,6 +344,9 @@ struct _GstRtpBinStream gboolean have_sync; /* mapping to local RTP and NTP time */ gint64 rt_delta; + gint64 rtp_delta; + /* base rtptime in gst time */ + gint64 clock_base; }; #define GST_RTP_SESSION_LOCK(sess) g_mutex_lock ((sess)->lock) @@ -775,6 +812,8 @@ gst_rtp_bin_reset_sync (GstRtpBin * rtpbin) * lip-sync */ stream->have_sync = FALSE; stream->rt_delta = 0; + stream->rtp_delta = 0; + stream->clock_base = -100 * GST_SECOND; } } GST_RTP_BIN_UNLOCK (rtpbin); @@ -979,7 +1018,8 @@ stream_set_ts_offset (GstRtpBin * bin, GstRtpBinStream * stream, static void gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, guint8 * data, guint64 ntptime, guint64 last_extrtptime, - guint64 base_rtptime, guint64 base_time, guint clock_rate) + guint64 base_rtptime, guint64 base_time, guint clock_rate, + gint64 rtp_clock_base) { GstRtpBinClient *client; gboolean created; @@ -1014,6 +1054,19 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, stream->ssrc, client, client->cname); } + if (!GST_CLOCK_TIME_IS_VALID (last_extrtptime)) { + GST_DEBUG_OBJECT (bin, "invalidated sync data"); + if (bin->rtcp_sync == GST_RTP_BIN_RTCP_SYNC_RTP) { + /* we don't need that data, so carry on, + * but make some values look saner */ + last_extrtptime = base_rtptime; + } else { + /* nothing we can do with this data in this case */ + GST_DEBUG_OBJECT (bin, "bailing out"); + return; + } + } + /* Take the extended rtptime we found in the SR packet and map it to the * local rtptime. The local rtp time is used to construct timestamps on the * buffers so we will calculate what running_time corresponds to the RTP @@ -1022,8 +1075,9 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, GST_DEBUG_OBJECT (bin, "base %" G_GUINT64_FORMAT ", extrtptime %" G_GUINT64_FORMAT - ", local RTP %" G_GUINT64_FORMAT ", clock-rate %d", base_rtptime, - last_extrtptime, local_rtp, clock_rate); + ", local RTP %" G_GUINT64_FORMAT ", clock-rate %d, " + "clock-base %" G_GINT64_FORMAT, base_rtptime, + last_extrtptime, local_rtp, clock_rate, rtp_clock_base); /* calculate local RTP time in gstreamer timestamp, we essentially perform the * same conversion that a jitterbuffer would use to convert an rtp timestamp @@ -1070,8 +1124,10 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, stream->rt_delta = rtdiff - ntpdiff; stream_set_ts_offset (bin, stream, stream->rt_delta); - } else if (client->nstreams > 1) { - gint64 min; + } else { + gint64 min, rtp_min, clock_base = stream->clock_base; + gboolean all_sync, use_rtp; + gboolean rtcp_sync = g_atomic_int_get (&bin->rtcp_sync); /* calculate delta between server and receiver. last_unix is created by * converting the ntptime in the last SR packet to a gstreamer timestamp. This @@ -1089,19 +1145,114 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, * latencies). * The stream that has the smallest diff is selected as the reference stream, * all other streams will have a positive offset to this difference. */ - min = G_MAXINT64; + + /* some alternative setting allow ignoring RTCP as much as possible, + * for servers generating bogus ntp timeline */ + min = rtp_min = G_MAXINT64; + use_rtp = FALSE; + if (rtcp_sync == GST_RTP_BIN_RTCP_SYNC_RTP) { + guint64 ext_base; + + use_rtp = TRUE; + /* signed version for convienience */ + clock_base = base_rtptime; + /* deal with possible wrap-around */ + ext_base = base_rtptime; + rtp_clock_base = gst_rtp_buffer_ext_timestamp (&ext_base, rtp_clock_base); + /* sanity check; base rtp and provided clock_base should be close */ + if (rtp_clock_base >= clock_base) { + if (rtp_clock_base - clock_base < 10 * clock_rate) { + rtp_clock_base = base_time + + gst_util_uint64_scale_int (rtp_clock_base - clock_base, + GST_SECOND, clock_rate); + } else { + use_rtp = FALSE; + } + } else { + if (clock_base - rtp_clock_base < 10 * clock_rate) { + rtp_clock_base = base_time - + gst_util_uint64_scale_int (clock_base - rtp_clock_base, + GST_SECOND, clock_rate); + } else { + use_rtp = FALSE; + } + } + /* warn and bail for clarity out if no sane values */ + if (!use_rtp) { + GST_WARNING_OBJECT (bin, "unable to sync to provided rtptime"); + return; + } + /* store to track changes */ + clock_base = rtp_clock_base; + /* generate a fake as before, + * now equating rtptime obtained from RTP-Info, + * where the large time represent the otherwise irrelevant npt/ntp time */ + stream->rtp_delta = (GST_SECOND << 28) - rtp_clock_base; + } + for (walk = client->streams; walk; walk = g_slist_next (walk)) { GstRtpBinStream *ostream = (GstRtpBinStream *) walk->data; - if (!ostream->have_sync) + if (!ostream->have_sync) { + all_sync = FALSE; continue; + } + + /* change in current stream's base from previously init'ed value + * leads to reset of all stream's base */ + if (stream != ostream && stream->clock_base >= 0 && + (stream->clock_base != clock_base)) { + GST_DEBUG_OBJECT (bin, "reset upon clock base change"); + ostream->clock_base = -100 * GST_SECOND; + ostream->rtp_delta = 0; + } if (ostream->rt_delta < min) min = ostream->rt_delta; + if (ostream->rtp_delta < rtp_min) + rtp_min = ostream->rtp_delta; } - GST_DEBUG_OBJECT (bin, "client %p min delta %" G_GINT64_FORMAT, client, - min); + /* arrange to re-sync for each stream upon significant change, + * e.g. post-seek */ + all_sync = (stream->clock_base == clock_base); + stream->clock_base = clock_base; + + /* may need init performed above later on, but nothing more to do now */ + if (client->nstreams <= 1) + return; + + GST_DEBUG_OBJECT (bin, "client %p min delta %" G_GINT64_FORMAT + " all sync %d", client, min, all_sync); + GST_DEBUG_OBJECT (bin, "rtcp sync mode %d, use_rtp %d", rtcp_sync, use_rtp); + + switch (rtcp_sync) { + case GST_RTP_BIN_RTCP_SYNC_RTP: + if (!use_rtp) + break; + GST_DEBUG_OBJECT (bin, "using rtp generated reports; " + "client %p min rtp delta %" G_GINT64_FORMAT, client, rtp_min); + /* fall-through */ + case GST_RTP_BIN_RTCP_SYNC_INITIAL: + /* if all have been synced already, do not bother further */ + if (all_sync) { + GST_DEBUG_OBJECT (bin, "all streams already synced; done"); + return; + } + break; + default: + break; + } + + /* bail out if we adjusted recently enough */ + if (all_sync && (last_unix - bin->priv->last_unix) < + bin->rtcp_sync_interval * GST_MSECOND) { + GST_DEBUG_OBJECT (bin, "discarding RTCP sender packet for sync; " + "previous sender info too recent " + "(previous UNIX %" G_GUINT64_FORMAT ")", bin->priv->last_unix); + return; + } + bin->priv->last_unix = last_unix; /* calculate offsets for each stream */ for (walk = client->streams; walk; walk = g_slist_next (walk)) { @@ -1116,7 +1267,10 @@ gst_rtp_bin_associate (GstRtpBin * bin, GstRtpBinStream * stream, guint8 len, /* calculate offset to our reference stream, this should always give a * positive number. */ - ts_offset = ostream->rt_delta - min; + if (use_rtp) + ts_offset = ostream->rtp_delta - rtp_min; + else + ts_offset = ostream->rt_delta - min; stream_set_ts_offset (bin, ostream, ts_offset); } @@ -1149,6 +1303,7 @@ gst_rtp_bin_handle_sync (GstElement * jitterbuffer, GstStructure * s, guint64 base_rtptime; guint64 base_time; guint clock_rate; + guint64 clock_base; guint64 extrtptime; GstBuffer *buffer; @@ -1164,6 +1319,7 @@ gst_rtp_bin_handle_sync (GstElement * jitterbuffer, GstStructure * s, g_value_get_uint64 (gst_structure_get_value (s, "base-rtptime")); base_time = g_value_get_uint64 (gst_structure_get_value (s, "base-time")); clock_rate = g_value_get_uint (gst_structure_get_value (s, "clock-rate")); + clock_base = g_value_get_uint64 (gst_structure_get_value (s, "clock-base")); extrtptime = g_value_get_uint64 (gst_structure_get_value (s, "sr-ext-rtptime")); buffer = gst_value_get_buffer (gst_structure_get_value (s, "sr-buffer")); @@ -1216,7 +1372,8 @@ gst_rtp_bin_handle_sync (GstElement * jitterbuffer, GstStructure * s, GST_RTP_BIN_LOCK (bin); /* associate the stream to CNAME */ gst_rtp_bin_associate (bin, stream, len, data, - ntptime, extrtptime, base_rtptime, base_time, clock_rate); + ntptime, extrtptime, base_rtptime, base_time, clock_rate, + clock_base); GST_RTP_BIN_UNLOCK (bin); } } @@ -1260,7 +1417,9 @@ create_stream (GstRtpBinSession * session, guint32 ssrc) stream->have_sync = FALSE; stream->rt_delta = 0; + stream->rtp_delta = 0; stream->percent = 100; + stream->clock_base = -100 * GST_SECOND; session->streams = g_slist_prepend (session->streams, stream); /* provide clock_rate to the jitterbuffer when needed */ @@ -1380,20 +1539,20 @@ gst_rtp_bin_base_init (gpointer klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); /* sink pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_recv_rtp_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_recv_rtcp_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_send_rtp_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_recv_rtp_sink_template); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_recv_rtcp_sink_template); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_send_rtp_sink_template); /* src pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_recv_rtp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_send_rtcp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpbin_send_rtp_src_template)); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_recv_rtp_src_template); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_send_rtcp_src_template); + gst_element_class_add_static_pad_template (element_class, + &rtpbin_send_rtp_src_template); gst_element_class_set_details_simple (element_class, "RTP Bin", "Filter/Network/RTP", @@ -1677,6 +1836,32 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) "Synchronize received streams to the NTP clock", DEFAULT_NTP_SYNC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRtpBin::rtcp-sync: + * + * If not synchronizing (directly) to the NTP clock, determines how to sync + * the various streams. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_RTCP_SYNC, + g_param_spec_enum ("rtcp-sync", "RTCP Sync", + "Use of RTCP SR in synchronization", GST_RTP_BIN_RTCP_SYNC_TYPE, + DEFAULT_RTCP_SYNC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstRtpBin::rtcp-sync-interval: + * + * Determines how often to sync streams using RTCP data. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_RTCP_SYNC_INTERVAL, + g_param_spec_uint ("rtcp-sync-interval", "RTCP Sync Interval", + "RTCP SR interval synchronization (ms) (0 = always)", + 0, G_MAXUINT, DEFAULT_RTCP_SYNC_INTERVAL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state); gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR (gst_rtp_bin_request_new_pad); @@ -1695,7 +1880,7 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) static void gst_rtp_bin_init (GstRtpBin * rtpbin, GstRtpBinClass * klass) { - gchar *str; + gchar *cname; rtpbin->priv = GST_RTP_BIN_GET_PRIVATE (rtpbin); rtpbin->priv->bin_lock = g_mutex_new (); @@ -1706,17 +1891,17 @@ gst_rtp_bin_init (GstRtpBin * rtpbin, GstRtpBinClass * klass) rtpbin->do_lost = DEFAULT_DO_LOST; rtpbin->ignore_pt = DEFAULT_IGNORE_PT; rtpbin->ntp_sync = DEFAULT_NTP_SYNC; + rtpbin->rtcp_sync = DEFAULT_RTCP_SYNC; + rtpbin->rtcp_sync_interval = DEFAULT_RTCP_SYNC_INTERVAL; rtpbin->priv->autoremove = DEFAULT_AUTOREMOVE; rtpbin->buffer_mode = DEFAULT_BUFFER_MODE; rtpbin->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK; /* some default SDES entries */ - str = g_strdup_printf ("%s@%s", g_get_user_name (), g_get_host_name ()); + cname = g_strdup_printf ("user%u@host-%x", g_random_int (), g_random_int ()); rtpbin->sdes = gst_structure_new ("application/x-rtp-source-sdes", - "cname", G_TYPE_STRING, str, - "name", G_TYPE_STRING, g_get_real_name (), - "tool", G_TYPE_STRING, "GStreamer", NULL); - g_free (str); + "cname", G_TYPE_STRING, cname, "tool", G_TYPE_STRING, "GStreamer", NULL); + g_free (cname); } static void @@ -1821,6 +2006,12 @@ gst_rtp_bin_set_property (GObject * object, guint prop_id, case PROP_NTP_SYNC: rtpbin->ntp_sync = g_value_get_boolean (value); break; + case PROP_RTCP_SYNC: + g_atomic_int_set (&rtpbin->rtcp_sync, g_value_get_enum (value)); + break; + case PROP_RTCP_SYNC_INTERVAL: + rtpbin->rtcp_sync_interval = g_value_get_uint (value); + break; case PROP_IGNORE_PT: rtpbin->ignore_pt = g_value_get_boolean (value); break; @@ -1883,6 +2074,12 @@ gst_rtp_bin_get_property (GObject * object, guint prop_id, case PROP_NTP_SYNC: g_value_set_boolean (value, rtpbin->ntp_sync); break; + case PROP_RTCP_SYNC: + g_value_set_enum (value, g_atomic_int_get (&rtpbin->rtcp_sync)); + break; + case PROP_RTCP_SYNC_INTERVAL: + g_value_set_uint (value, rtpbin->rtcp_sync_interval); + break; case PROP_AUTOREMOVE: g_value_set_boolean (value, rtpbin->priv->autoremove); break; @@ -2020,6 +2217,7 @@ gst_rtp_bin_handle_message (GstBin * bin, GstMessage * message) now = gst_clock_get_time (clock); base_time = gst_element_get_base_time (GST_ELEMENT_CAST (bin)); running_time = now - base_time; + gst_object_unref (clock); } GST_DEBUG_OBJECT (bin, "running time now %" GST_TIME_FORMAT, @@ -2108,6 +2306,7 @@ gst_rtp_bin_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_NULL_TO_READY: break; case GST_STATE_CHANGE_READY_TO_PAUSED: + priv->last_unix = 0; GST_LOG_OBJECT (rtpbin, "clearing shutdown flag"); g_atomic_int_set (&priv->shutdown, 0); break; diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h index 74aaac2..a915787 100644 --- a/gst/rtpmanager/gstrtpbin.h +++ b/gst/rtpmanager/gstrtpbin.h @@ -50,6 +50,8 @@ struct _GstRtpBin { gboolean do_lost; gboolean ignore_pt; gboolean ntp_sync; + gint rtcp_sync; + guint rtcp_sync_interval; RTPJitterBufferMode buffer_mode; gboolean buffering; gboolean use_pipeline_clock; diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index e118699..4c72fb6 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -67,6 +67,8 @@ #include "rtpjitterbuffer.h" #include "rtpstats.h" +#include + GST_DEBUG_CATEGORY (rtpjitterbuffer_debug); #define GST_CAT_DEFAULT (rtpjitterbuffer_debug) @@ -272,12 +274,12 @@ gst_rtp_jitter_buffer_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jitter_buffer_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jitter_buffer_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_jitter_buffer_sink_rtcp_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jitter_buffer_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jitter_buffer_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_jitter_buffer_sink_rtcp_template); gst_element_class_set_details_simple (element_class, "RTP packet jitter-buffer", "Filter/Network/RTP", @@ -671,6 +673,11 @@ gst_rtp_jitter_buffer_clear_pt_map (GstRtpJitterBuffer * jitterbuffer) JBUF_LOCK (priv); priv->clock_rate = -1; + /* do not clear current content, but refresh state for new arrival */ + GST_DEBUG_OBJECT (jitterbuffer, "reset jitterbuffer"); + rtp_jitter_buffer_reset_skew (priv->jbuf); + priv->last_popped_seqnum = -1; + priv->next_seqnum = -1; JBUF_UNLOCK (priv); } @@ -1970,6 +1977,7 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstBuffer * buffer) guint64 ext_rtptime, diff; guint32 rtptime; gboolean drop = FALSE; + guint64 clock_base; jitterbuffer = GST_RTP_JITTER_BUFFER (gst_pad_get_parent (pad)); @@ -2003,9 +2011,12 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstBuffer * buffer) rtp_jitter_buffer_get_sync (priv->jbuf, &base_rtptime, &base_time, &clock_rate, &last_rtptime); + clock_base = priv->clock_base; + GST_DEBUG_OBJECT (jitterbuffer, "ext SR %" G_GUINT64_FORMAT ", base %" - G_GUINT64_FORMAT ", clock-rate %" G_GUINT32_FORMAT, - ext_rtptime, base_rtptime, clock_rate); + G_GUINT64_FORMAT ", clock-rate %" G_GUINT32_FORMAT + ", clock-base %" G_GUINT64_FORMAT, + ext_rtptime, base_rtptime, clock_rate, clock_base); if (base_rtptime == -1 || clock_rate == -1 || base_time == -1) { GST_DEBUG_OBJECT (jitterbuffer, "dropping, no RTP values"); @@ -2023,8 +2034,12 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstBuffer * buffer) diff = ext_rtptime - last_rtptime; /* if bigger than 1 second, we drop it */ if (diff > clock_rate) { - GST_DEBUG_OBJECT (jitterbuffer, "dropping, too far ahead"); - drop = TRUE; + GST_DEBUG_OBJECT (jitterbuffer, "too far ahead"); + /* should drop this, but some RTSP servers end up with bogus + * way too ahead RTCP packet when repeated PAUSE/PLAY, + * so still trigger rptbin sync but invalidate RTCP data + * (sync might use other methods) */ + ext_rtptime = -1; } GST_DEBUG_OBJECT (jitterbuffer, "ext last %" G_GUINT64_FORMAT ", diff %" G_GUINT64_FORMAT, last_rtptime, diff); @@ -2040,6 +2055,7 @@ gst_rtp_jitter_buffer_chain_rtcp (GstPad * pad, GstBuffer * buffer) "base-rtptime", G_TYPE_UINT64, base_rtptime, "base-time", G_TYPE_UINT64, base_time, "clock-rate", G_TYPE_UINT, clock_rate, + "clock-base", G_TYPE_UINT64, clock_base, "sr-ext-rtptime", G_TYPE_UINT64, ext_rtptime, "sr-buffer", GST_TYPE_BUFFER, buffer, NULL); diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c index 3c0004d..630212f 100644 --- a/gst/rtpmanager/gstrtpptdemux.c +++ b/gst/rtpmanager/gstrtpptdemux.c @@ -142,10 +142,10 @@ gst_rtp_pt_demux_base_init (gpointer g_class) { GstElementClass *gstelement_klass = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_pt_demux_sink_template)); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_pt_demux_src_template)); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_pt_demux_sink_template); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_pt_demux_src_template); gst_element_class_set_details_simple (gstelement_klass, "RTP Demux", "Demux/Network/RTP", @@ -326,6 +326,10 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstBuffer * buf) GstPadTemplate *templ; gchar *padname; + caps = gst_rtp_pt_demux_get_caps (rtpdemux, pt); + if (!caps) + goto no_caps; + klass = GST_ELEMENT_GET_CLASS (rtpdemux); templ = gst_element_class_get_pad_template (klass, "src_%d"); padname = g_strdup_printf ("src_%d", pt); @@ -334,10 +338,6 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstBuffer * buf) g_free (padname); gst_pad_set_event_function (srcpad, gst_rtp_pt_demux_src_event); - caps = gst_rtp_pt_demux_get_caps (rtpdemux, pt); - if (!caps) - goto no_caps; - caps = gst_caps_make_writable (caps); gst_caps_set_simple (caps, "payload", G_TYPE_INT, pt, NULL); gst_pad_set_caps (srcpad, caps); diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index ebeb3fd..cf263e3 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -114,6 +114,8 @@ #include +#include + #include "gstrtpbin-marshal.h" #include "gstrtpsession.h" #include "rtpsession.h" @@ -373,22 +375,22 @@ gst_rtp_session_base_init (gpointer klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); /* sink pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_recv_rtp_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_recv_rtcp_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_send_rtp_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_recv_rtp_sink_template); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_recv_rtcp_sink_template); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_send_rtp_sink_template); /* src pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_recv_rtp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_sync_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_send_rtp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtpsession_send_rtcp_src_template)); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_recv_rtp_src_template); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_sync_src_template); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_send_rtp_src_template); + gst_element_class_add_static_pad_template (element_class, + &rtpsession_send_rtcp_src_template); gst_element_class_set_details_simple (element_class, "RTP Session", "Filter/Network/RTP", @@ -837,6 +839,10 @@ rtcp_thread (GstRtpSession * rtpsession) session = rtpsession->priv->session; + GST_DEBUG_OBJECT (rtpsession, "starting at %" GST_TIME_FORMAT, + GST_TIME_ARGS (current_time)); + session->start_time = current_time; + while (!rtpsession->priv->stop_thread) { GstClockReturn res; @@ -904,8 +910,13 @@ start_rtcp_thread (GstRtpSession * rtpsession) g_thread_join (rtpsession->priv->thread); /* only create a new thread if the old one was stopped. Otherwise we can * just reuse the currently running one. */ +#if !GLIB_CHECK_VERSION (2, 31, 0) rtpsession->priv->thread = g_thread_create ((GThreadFunc) rtcp_thread, rtpsession, TRUE, &error); +#else + rtpsession->priv->thread = g_thread_try_new ("rtpsession-rtcp-thread", + (GThreadFunc) rtcp_thread, rtpsession, &error); +#endif rtpsession->priv->thread_stopped = FALSE; } GST_RTP_SESSION_UNLOCK (rtpsession); @@ -1382,30 +1393,34 @@ gst_rtp_session_event_recv_rtp_sink (GstPad * pad, GstEvent * event) static gboolean gst_rtp_session_request_remote_key_unit (GstRtpSession * rtpsession, - guint32 ssrc, guint payload, gboolean all_headers) + guint32 ssrc, guint payload, gboolean all_headers, gint count) { GstCaps *caps; - gboolean requested = FALSE; caps = gst_rtp_session_get_caps_for_pt (rtpsession, payload); if (caps) { const GstStructure *s = gst_caps_get_structure (caps, 0); gboolean pli; + gboolean fir; pli = gst_structure_has_field (s, "rtcp-fb-nack-pli"); + fir = gst_structure_has_field (s, "rtcp-fb-ccm-fir") && all_headers; + + /* Google Talk uses FIR for repair, so send it even if we just want a + * regular PLI */ + if (!pli && + gst_structure_has_field (s, "rtcp-fb-x-gstreamer-fir-as-repair")) + fir = TRUE; gst_caps_unref (caps); - if (pli) { - rtp_session_request_key_unit (rtpsession->priv->session, ssrc); - rtp_session_request_early_rtcp (rtpsession->priv->session, - gst_clock_get_time (rtpsession->priv->sysclock), 200 * GST_MSECOND); - requested = TRUE; - } + if (pli || fir) + return rtp_session_request_key_unit (rtpsession->priv->session, ssrc, + gst_clock_get_time (rtpsession->priv->sysclock), fir, count); } - return requested; + return FALSE; } static gboolean @@ -1431,10 +1446,13 @@ gst_rtp_session_event_recv_rtp_src (GstPad * pad, GstEvent * event) gst_structure_get_uint (s, "ssrc", &ssrc) && gst_structure_get_uint (s, "payload", &pt)) { gboolean all_headers = FALSE; + gint count = -1; gst_structure_get_boolean (s, "all-headers", &all_headers); + if (gst_structure_get_int (s, "count", &count) && count < 0) + count += G_MAXINT; /* Make sure count is positive if present */ if (gst_rtp_session_request_remote_key_unit (rtpsession, ssrc, pt, - all_headers)) + all_headers, count)) forward = FALSE; } break; diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c index 2688775..523f9c5 100644 --- a/gst/rtpmanager/gstrtpssrcdemux.c +++ b/gst/rtpmanager/gstrtpssrcdemux.c @@ -44,6 +44,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include #include @@ -83,8 +87,8 @@ GST_STATIC_PAD_TEMPLATE ("rtcp_src_%d", GST_STATIC_CAPS ("application/x-rtcp") ); -#define GST_PAD_LOCK(obj) (g_mutex_lock ((obj)->padlock)) -#define GST_PAD_UNLOCK(obj) (g_mutex_unlock ((obj)->padlock)) +#define GST_PAD_LOCK(obj) (g_static_rec_mutex_lock (&(obj)->padlock)) +#define GST_PAD_UNLOCK(obj) (g_static_rec_mutex_unlock (&(obj)->padlock)) /* signals */ enum @@ -118,10 +122,13 @@ static GstFlowReturn gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstBuffer * buf); static gboolean gst_rtp_ssrc_demux_rtcp_sink_event (GstPad * pad, GstEvent * event); +static GstIterator *gst_rtp_ssrc_demux_iterate_internal_links_sink (GstPad * + pad); /* srcpad stuff */ static gboolean gst_rtp_ssrc_demux_src_event (GstPad * pad, GstEvent * event); -static GstIterator *gst_rtp_ssrc_demux_iterate_internal_links (GstPad * pad); +static GstIterator *gst_rtp_ssrc_demux_iterate_internal_links_src (GstPad * + pad); static gboolean gst_rtp_ssrc_demux_src_query (GstPad * pad, GstQuery * query); static guint gst_rtp_ssrc_demux_signals[LAST_SIGNAL] = { 0 }; @@ -155,8 +162,7 @@ find_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc) /* with PAD_LOCK */ static GstRtpSsrcDemuxPad * -create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, - GstClockTime timestamp) +find_or_create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc) { GstPad *rtp_pad, *rtcp_pad; GstElementClass *klass; @@ -166,6 +172,11 @@ create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, GST_DEBUG_OBJECT (demux, "creating pad for SSRC %08x", ssrc); + demuxpad = find_demux_pad_for_ssrc (demux, ssrc); + if (demuxpad != NULL) { + return demuxpad; + } + klass = GST_ELEMENT_GET_CLASS (demux); templ = gst_element_class_get_pad_template (klass, "src_%d"); padname = g_strdup_printf ("src_%d", ssrc); @@ -177,20 +188,12 @@ create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, rtcp_pad = gst_pad_new_from_template (templ, padname); g_free (padname); - /* we use the first timestamp received to calculate the difference between - * timestamps on all streams */ - GST_DEBUG_OBJECT (demux, "SSRC %08x, first timestamp %" GST_TIME_FORMAT, - ssrc, GST_TIME_ARGS (timestamp)); - /* wrap in structure and add to list */ demuxpad = g_new0 (GstRtpSsrcDemuxPad, 1); demuxpad->ssrc = ssrc; demuxpad->rtp_pad = rtp_pad; demuxpad->rtcp_pad = rtcp_pad; - GST_DEBUG_OBJECT (demux, "first timestamp %" GST_TIME_FORMAT, - GST_TIME_ARGS (timestamp)); - gst_pad_set_element_private (rtp_pad, demuxpad); gst_pad_set_element_private (rtcp_pad, demuxpad); @@ -205,12 +208,12 @@ create_demux_pad_for_ssrc (GstRtpSsrcDemux * demux, guint32 ssrc, gst_pad_set_event_function (rtp_pad, gst_rtp_ssrc_demux_src_event); gst_pad_set_query_function (rtp_pad, gst_rtp_ssrc_demux_src_query); gst_pad_set_iterate_internal_links_function (rtp_pad, - gst_rtp_ssrc_demux_iterate_internal_links); + gst_rtp_ssrc_demux_iterate_internal_links_src); gst_pad_set_active (rtp_pad, TRUE); gst_pad_set_event_function (rtcp_pad, gst_rtp_ssrc_demux_src_event); gst_pad_set_iterate_internal_links_function (rtcp_pad, - gst_rtp_ssrc_demux_iterate_internal_links); + gst_rtp_ssrc_demux_iterate_internal_links_src); gst_pad_set_active (rtcp_pad, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (demux), rtp_pad); @@ -227,14 +230,14 @@ gst_rtp_ssrc_demux_base_init (gpointer g_class) { GstElementClass *gstelement_klass = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_ssrc_demux_sink_template)); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_ssrc_demux_rtcp_sink_template)); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_ssrc_demux_src_template)); - gst_element_class_add_pad_template (gstelement_klass, - gst_static_pad_template_get (&rtp_ssrc_demux_rtcp_src_template)); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_ssrc_demux_sink_template); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_ssrc_demux_rtcp_sink_template); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_ssrc_demux_src_template); + gst_element_class_add_static_pad_template (gstelement_klass, + &rtp_ssrc_demux_rtcp_src_template); gst_element_class_set_details_simple (gstelement_klass, "RTP SSRC Demux", "Demux/Network/RTP", @@ -319,6 +322,8 @@ gst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux, "sink"), "sink"); gst_pad_set_chain_function (demux->rtp_sink, gst_rtp_ssrc_demux_chain); gst_pad_set_event_function (demux->rtp_sink, gst_rtp_ssrc_demux_sink_event); + gst_pad_set_iterate_internal_links_function (demux->rtp_sink, + gst_rtp_ssrc_demux_iterate_internal_links_sink); gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtp_sink); demux->rtcp_sink = @@ -327,9 +332,11 @@ gst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux, gst_pad_set_chain_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_chain); gst_pad_set_event_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_sink_event); + gst_pad_set_iterate_internal_links_function (demux->rtcp_sink, + gst_rtp_ssrc_demux_iterate_internal_links_sink); gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtcp_sink); - demux->padlock = g_mutex_new (); + g_static_rec_mutex_init (&demux->padlock); gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED); } @@ -371,7 +378,7 @@ gst_rtp_ssrc_demux_finalize (GObject * object) GstRtpSsrcDemux *demux; demux = GST_RTP_SSRC_DEMUX (object); - g_mutex_free (demux->padlock); + g_static_rec_mutex_free (&demux->padlock); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -511,6 +518,7 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstBuffer * buf) GstRtpSsrcDemux *demux; guint32 ssrc; GstRtpSsrcDemuxPad *dpad; + GstPad *srcpad; demux = GST_RTP_SSRC_DEMUX (GST_OBJECT_PARENT (pad)); @@ -522,17 +530,18 @@ gst_rtp_ssrc_demux_chain (GstPad * pad, GstBuffer * buf) GST_DEBUG_OBJECT (demux, "received buffer of SSRC %08x", ssrc); GST_PAD_LOCK (demux); - dpad = find_demux_pad_for_ssrc (demux, ssrc); + dpad = find_or_create_demux_pad_for_ssrc (demux, ssrc); if (dpad == NULL) { - if (!(dpad = - create_demux_pad_for_ssrc (demux, ssrc, - GST_BUFFER_TIMESTAMP (buf)))) - goto create_failed; + GST_PAD_UNLOCK (demux); + goto create_failed; } + srcpad = gst_object_ref (dpad->rtp_pad); GST_PAD_UNLOCK (demux); /* push to srcpad */ - ret = gst_pad_push (dpad->rtp_pad, buf); + ret = gst_pad_push (srcpad, buf); + + gst_object_unref (srcpad); return ret; @@ -549,7 +558,6 @@ create_failed: { GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL), ("Could not create new pad")); - GST_PAD_UNLOCK (demux); gst_buffer_unref (buf); return GST_FLOW_ERROR; } @@ -563,6 +571,7 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstBuffer * buf) guint32 ssrc; GstRtpSsrcDemuxPad *dpad; GstRTCPPacket packet; + GstPad *srcpad; demux = GST_RTP_SSRC_DEMUX (GST_OBJECT_PARENT (pad)); @@ -586,16 +595,18 @@ gst_rtp_ssrc_demux_rtcp_chain (GstPad * pad, GstBuffer * buf) GST_DEBUG_OBJECT (demux, "received RTCP of SSRC %08x", ssrc); GST_PAD_LOCK (demux); - dpad = find_demux_pad_for_ssrc (demux, ssrc); + dpad = find_or_create_demux_pad_for_ssrc (demux, ssrc); if (dpad == NULL) { - GST_DEBUG_OBJECT (demux, "creating pad for SSRC %08x", ssrc); - if (!(dpad = create_demux_pad_for_ssrc (demux, ssrc, -1))) - goto create_failed; + GST_PAD_UNLOCK (demux); + goto create_failed; } + srcpad = gst_object_ref (dpad->rtcp_pad); GST_PAD_UNLOCK (demux); /* push to srcpad */ - ret = gst_pad_push (dpad->rtcp_pad, buf); + ret = gst_pad_push (srcpad, buf); + + gst_object_unref (srcpad); return ret; @@ -618,7 +629,6 @@ create_failed: { GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL), ("Could not create new pad")); - GST_PAD_UNLOCK (demux); gst_buffer_unref (buf); return GST_FLOW_ERROR; } @@ -664,25 +674,23 @@ gst_rtp_ssrc_demux_src_event (GstPad * pad, GstEvent * event) } static GstIterator * -gst_rtp_ssrc_demux_iterate_internal_links (GstPad * pad) +gst_rtp_ssrc_demux_iterate_internal_links_src (GstPad * pad) { GstRtpSsrcDemux *demux; GstPad *otherpad = NULL; - GstIterator *it; + GstIterator *it = NULL; GSList *current; demux = GST_RTP_SSRC_DEMUX (gst_pad_get_parent (pad)); + if (!demux) + return NULL; + GST_PAD_LOCK (demux); for (current = demux->srcpads; current; current = g_slist_next (current)) { GstRtpSsrcDemuxPad *dpad = (GstRtpSsrcDemuxPad *) current->data; - if (pad == demux->rtp_sink) { - otherpad = dpad->rtp_pad; - break; - } else if (pad == demux->rtcp_sink) { - otherpad = dpad->rtcp_pad; - } else if (pad == dpad->rtp_pad) { + if (pad == dpad->rtp_pad) { otherpad = demux->rtp_sink; break; } else if (pad == dpad->rtcp_pad) { @@ -698,6 +706,49 @@ gst_rtp_ssrc_demux_iterate_internal_links (GstPad * pad) return it; } +/* Should return 0 for elements to be included */ +static gint +src_pad_compare_func (gconstpointer a, gconstpointer b) +{ + GstPad *pad = GST_PAD (a); + const gchar *prefix = b; + gint res = 1; + + GST_OBJECT_LOCK (pad); + res = !GST_PAD_NAME (pad) || g_str_has_prefix (GST_PAD_NAME (pad), prefix); + GST_OBJECT_UNLOCK (pad); + + return res; +} + +static GstIterator * +gst_rtp_ssrc_demux_iterate_internal_links_sink (GstPad * pad) +{ + GstRtpSsrcDemux *demux; + GstIterator *it = NULL; + const gchar *prefix = NULL; + + demux = GST_RTP_SSRC_DEMUX (gst_pad_get_parent (pad)); + + if (!demux) + return NULL; + + if (pad == demux->rtp_sink) + prefix = "src_"; + else if (pad == demux->rtcp_sink) + prefix = "rtcp_src_"; + else + g_assert_not_reached (); + + it = gst_element_iterate_src_pads (GST_ELEMENT (demux)); + + it = gst_iterator_filter (it, src_pad_compare_func, (gpointer) prefix); + + gst_object_unref (demux); + return it; +} + + static gboolean gst_rtp_ssrc_demux_src_query (GstPad * pad, GstQuery * query) { diff --git a/gst/rtpmanager/gstrtpssrcdemux.h b/gst/rtpmanager/gstrtpssrcdemux.h index d5a13ca..6f792d9 100644 --- a/gst/rtpmanager/gstrtpssrcdemux.h +++ b/gst/rtpmanager/gstrtpssrcdemux.h @@ -41,7 +41,7 @@ struct _GstRtpSsrcDemux GstPad *rtp_sink; GstPad *rtcp_sink; - GMutex *padlock; + GStaticRecMutex padlock; GSList *srcpads; }; diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index 341388b..5db5da4 100644 --- a/gst/rtpmanager/rtpjitterbuffer.c +++ b/gst/rtpmanager/rtpjitterbuffer.c @@ -634,6 +634,26 @@ rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, GstBuffer * buf, } rtptime = gst_rtp_buffer_get_timestamp (buf); + /* rtp time jumps are checked for during skew calculation, but bypassed + * in other mode, so mind those here and reset jb if needed. + * Only reset if valid input time, which is likely for UDP input + * where we expect this might happen due to async thread effects + * (in seek and state change cycles), but not so much for TCP input */ + if (GST_CLOCK_TIME_IS_VALID (time) && + jbuf->mode != RTP_JITTER_BUFFER_MODE_SLAVE && + jbuf->base_time != -1 && jbuf->last_rtptime != -1) { + GstClockTime ext_rtptime = jbuf->ext_rtptime; + + ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime); + if (ext_rtptime > jbuf->last_rtptime + 3 * clock_rate || + ext_rtptime + 3 * clock_rate < jbuf->last_rtptime) { + /* reset even if we don't have valid incoming time; + * still better than producing possibly very bogus output timestamp */ + GST_WARNING ("rtp delta too big, reset skew"); + rtp_jitter_buffer_reset_skew (jbuf); + } + } + switch (jbuf->mode) { case RTP_JITTER_BUFFER_MODE_NONE: case RTP_JITTER_BUFFER_MODE_BUFFER: @@ -699,7 +719,7 @@ rtp_jitter_buffer_pop (RTPJitterBuffer * jbuf, gint * percent) { GstBuffer *buf; - g_return_val_if_fail (jbuf != NULL, FALSE); + g_return_val_if_fail (jbuf != NULL, NULL); buf = g_queue_pop_tail (jbuf->packets); @@ -727,7 +747,7 @@ rtp_jitter_buffer_peek (RTPJitterBuffer * jbuf) { GstBuffer *buf; - g_return_val_if_fail (jbuf != NULL, FALSE); + g_return_val_if_fail (jbuf != NULL, NULL); buf = g_queue_peek_tail (jbuf->packets); diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 4852bdb..9f15bd6 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -23,6 +23,8 @@ #include #include +#include + #include "gstrtpbin-marshal.h" #include "rtpsession.h" @@ -60,6 +62,7 @@ enum #define DEFAULT_SOURCES NULL #define DEFAULT_RTCP_MIN_INTERVAL (RTP_STATS_MIN_INTERVAL * GST_SECOND) #define DEFAULT_RTCP_FEEDBACK_RETENTION_WINDOW (2 * GST_SECOND) +#define DEFAULT_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD (3) enum { @@ -78,6 +81,7 @@ enum PROP_FAVOR_NEW, PROP_RTCP_MIN_INTERVAL, PROP_RTCP_FEEDBACK_RETENTION_WINDOW, + PROP_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD, PROP_LAST }; @@ -368,7 +372,7 @@ rtp_session_class_init (RTPSessionClass * klass) g_signal_new ("on-feedback-rtcp", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (RTPSessionClass, on_feedback_rtcp), NULL, NULL, gst_rtp_bin_marshal_VOID__UINT_UINT_UINT_UINT_MINIOBJECT, - G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, + G_TYPE_NONE, 5, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, GST_TYPE_BUFFER); /** @@ -492,6 +496,14 @@ rtp_session_class_init (RTPSessionClass * klass) 0, G_MAXUINT64, DEFAULT_RTCP_FEEDBACK_RETENTION_WINDOW, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD, + g_param_spec_uint ("rtcp-immediate-feedback-threshold", + "RTCP Immediate Feedback threshold", + "The maximum number of members of a RTP session for which immediate" + " feedback is used", + 0, G_MAXUINT, DEFAULT_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); klass->get_source_by_ssrc = GST_DEBUG_FUNCPTR (rtp_session_get_source_by_ssrc); @@ -533,25 +545,39 @@ rtp_session_init (RTPSession * sess) sess->source->internal = TRUE; sess->stats.active_sources++; INIT_AVG (sess->stats.avg_rtcp_packet_size, 100); + sess->source->stats.prev_rtcptime = 0; + sess->source->stats.last_rtcptime = 1; + + rtp_stats_set_min_interval (&sess->stats, + (gdouble) DEFAULT_RTCP_MIN_INTERVAL / GST_SECOND); /* default UDP header length */ sess->header_len = 28; sess->mtu = DEFAULT_RTCP_MTU; /* some default SDES entries */ - str = g_strdup_printf ("%s@%s", g_get_user_name (), g_get_host_name ()); + + /* we do not want to leak details like the username or hostname here */ + str = g_strdup_printf ("user%u@host-%x", g_random_int (), g_random_int ()); rtp_source_set_sdes_string (sess->source, GST_RTCP_SDES_CNAME, str); g_free (str); - rtp_source_set_sdes_string (sess->source, GST_RTCP_SDES_NAME, - g_get_real_name ()); +#if 0 + /* we do not want to leak the user's real name here */ + str = g_strdup_printf ("Anon%u", g_random_int ()); + rtp_source_set_sdes_string (sess->source, GST_RTCP_SDES_NAME, str); + g_free (str); +#endif + rtp_source_set_sdes_string (sess->source, GST_RTCP_SDES_TOOL, "GStreamer"); sess->first_rtcp = TRUE; sess->allow_early = TRUE; sess->rtcp_feedback_retention_window = DEFAULT_RTCP_FEEDBACK_RETENTION_WINDOW; + sess->rtcp_immediate_feedback_threshold = + DEFAULT_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD; - sess->rtcp_pli_requests = g_array_new (FALSE, FALSE, sizeof (guint32)); + sess->last_keyframe_request = GST_CLOCK_TIME_NONE; GST_DEBUG ("%p: session using SSRC: %08x", sess, sess->source->ssrc); } @@ -573,8 +599,6 @@ rtp_session_finalize (GObject * object) g_hash_table_destroy (sess->cnames); g_object_unref (sess->source); - g_array_free (sess->rtcp_pli_requests, TRUE); - G_OBJECT_CLASS (rtp_session_parent_class)->finalize (object); } @@ -648,6 +672,15 @@ rtp_session_set_property (GObject * object, guint prop_id, case PROP_RTCP_MIN_INTERVAL: rtp_stats_set_min_interval (&sess->stats, (gdouble) g_value_get_uint64 (value) / GST_SECOND); + /* trigger reconsideration */ + RTP_SESSION_LOCK (sess); + sess->next_rtcp_check_time = 0; + RTP_SESSION_UNLOCK (sess); + if (sess->callbacks.reconsider) + sess->callbacks.reconsider (sess, sess->reconsider_user_data); + break; + case PROP_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD: + sess->rtcp_immediate_feedback_threshold = g_value_get_uint (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -703,6 +736,9 @@ rtp_session_get_property (GObject * object, guint prop_id, case PROP_RTCP_MIN_INTERVAL: g_value_set_uint64 (value, sess->stats.min_interval * GST_SECOND); break; + case PROP_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD: + g_value_set_uint (value, sess->rtcp_immediate_feedback_threshold); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -2128,45 +2164,112 @@ rtp_session_process_app (RTPSession * sess, GstRTCPPacket * packet, GST_DEBUG ("received APP"); } +static gboolean +rtp_session_request_local_key_unit (RTPSession * sess, RTPSource * src, + gboolean fir, GstClockTime current_time) +{ + guint32 round_trip = 0; + + rtp_source_get_last_rb (src, NULL, NULL, NULL, NULL, NULL, NULL, &round_trip); + + if (sess->last_keyframe_request != GST_CLOCK_TIME_NONE && round_trip) { + GstClockTime round_trip_in_ns = gst_util_uint64_scale (round_trip, + GST_SECOND, 65536); + + if (sess->last_keyframe_request != GST_CLOCK_TIME_NONE && + current_time - sess->last_keyframe_request < 2 * round_trip_in_ns) { + GST_DEBUG ("Ignoring %s request because one was send without one " + "RTT (%" GST_TIME_FORMAT " < %" GST_TIME_FORMAT ")", + fir ? "FIR" : "PLI", + GST_TIME_ARGS (current_time - sess->last_keyframe_request), + GST_TIME_ARGS (round_trip_in_ns));; + return FALSE; + } + } + + sess->last_keyframe_request = current_time; + + GST_LOG ("received %s request from %X %p(%p)", fir ? "FIR" : "PLI", + rtp_source_get_ssrc (src), sess->callbacks.process_rtp, + sess->callbacks.request_key_unit); + + RTP_SESSION_UNLOCK (sess); + sess->callbacks.request_key_unit (sess, fir, + sess->request_key_unit_user_data); + RTP_SESSION_LOCK (sess); + + return TRUE; +} + static void rtp_session_process_pli (RTPSession * sess, guint32 sender_ssrc, guint32 media_ssrc, GstClockTime current_time) { RTPSource *src; - guint32 round_trip = 0; if (!sess->callbacks.request_key_unit) return; src = g_hash_table_lookup (sess->ssrcs[sess->mask_idx], GINT_TO_POINTER (sender_ssrc)); - if (!src) return; - if (sess->last_keyframe_request != GST_CLOCK_TIME_NONE && - rtp_source_get_last_rb (src, NULL, NULL, NULL, NULL, NULL, NULL, - &round_trip)) { - GstClockTime round_trip_in_ns = gst_util_uint64_scale (round_trip, - GST_SECOND, 65536); + rtp_session_request_local_key_unit (sess, src, FALSE, current_time); +} - if (sess->last_keyframe_request != GST_CLOCK_TIME_NONE && - current_time - sess->last_keyframe_request < round_trip_in_ns) { - GST_DEBUG ("Ignoring PLI because one was send without one RTT (%" - GST_TIME_FORMAT " < %" GST_TIME_FORMAT ")", - GST_TIME_ARGS (current_time - sess->last_keyframe_request), - GST_TIME_ARGS (round_trip_in_ns));; +static void +rtp_session_process_fir (RTPSession * sess, guint32 sender_ssrc, + guint8 * fci_data, guint fci_length, GstClockTime current_time) +{ + RTPSource *src; + guint32 ssrc; + guint position = 0; + gboolean our_request = FALSE; + + if (!sess->callbacks.request_key_unit) + return; + + if (fci_length < 8) + return; + + src = g_hash_table_lookup (sess->ssrcs[sess->mask_idx], + GINT_TO_POINTER (sender_ssrc)); + + /* Hack because Google fails to set the sender_ssrc correctly */ + if (!src && sender_ssrc == 1) { + GHashTableIter iter; + + if (sess->stats.sender_sources > + RTP_SOURCE_IS_SENDER (sess->source) ? 2 : 1) return; + + g_hash_table_iter_init (&iter, sess->ssrcs[sess->mask_idx]); + + while (g_hash_table_iter_next (&iter, NULL, (gpointer *) & src)) { + if (src != sess->source && rtp_source_is_sender (src)) + break; + src = NULL; } } - sess->last_keyframe_request = current_time; + if (!src) + return; - GST_LOG ("received PLI from %X %p(%p)", sender_ssrc, - sess->callbacks.process_rtp, sess->callbacks.request_key_unit); + for (position = 0; position < fci_length; position += 8) { + guint8 *data = fci_data + position; - sess->callbacks.request_key_unit (sess, FALSE, - sess->request_key_unit_user_data); + ssrc = GST_READ_UINT32_BE (data); + + if (ssrc == rtp_source_get_ssrc (sess->source)) { + our_request = TRUE; + break; + } + } + if (!our_request) + return; + + rtp_session_request_local_key_unit (sess, src, TRUE, current_time); } static void @@ -2210,7 +2313,9 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet, rtp_source_retain_rtcp_packet (src, packet, arrival->running_time); } - if (rtp_source_get_ssrc (sess->source) == media_ssrc) { + if (rtp_source_get_ssrc (sess->source) == media_ssrc || + /* PSFB FIR puts the media ssrc inside the FCI */ + (type == GST_RTCP_TYPE_PSFB && fbtype == GST_RTCP_PSFB_TYPE_FIR)) { switch (type) { case GST_RTCP_TYPE_PSFB: switch (fbtype) { @@ -2218,6 +2323,10 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet, rtp_session_process_pli (sess, sender_ssrc, media_ssrc, current_time); break; + case GST_RTCP_PSFB_TYPE_FIR: + rtp_session_process_fir (sess, sender_ssrc, fci_data, fci_length, + current_time); + break; default: break; } @@ -2444,7 +2553,7 @@ calculate_rtcp_interval (RTPSession * sess, gboolean deterministic, g_hash_table_foreach (sess->cnames, (GHFunc) add_bitrates, &bandwidth); bandwidth /= 8.0; } - if (bandwidth == 0) + if (bandwidth < 8000) bandwidth = RTP_STATS_BANDWIDTH; rtp_stats_set_bandwidths (&sess->stats, bandwidth, @@ -2719,11 +2828,35 @@ session_cleanup (const gchar * key, RTPSource * source, ReportData * data) gboolean sendertimeout = FALSE; gboolean is_sender, is_active; RTPSession *sess = data->sess; - GstClockTime interval; + GstClockTime interval, binterval; + GstClockTime btime; is_sender = RTP_SOURCE_IS_SENDER (source); is_active = RTP_SOURCE_IS_ACTIVE (source); + /* our own rtcp interval may have been forced low by secondary configuration, + * while sender side may still operate with higher interval, + * so do not just take our interval to decide on timing out sender, + * but take (if data->interval <= 5 * GST_SECOND): + * interval = CLAMP (sender_interval, data->interval, 5 * GST_SECOND) + * where sender_interval is difference between last 2 received RTCP reports + */ + if (data->interval >= 5 * GST_SECOND || (source == sess->source)) { + binterval = data->interval; + } else { + GST_LOG ("prev_rtcp %" GST_TIME_FORMAT ", last_rtcp %" GST_TIME_FORMAT, + GST_TIME_ARGS (source->stats.prev_rtcptime), + GST_TIME_ARGS (source->stats.last_rtcptime)); + /* if not received enough yet, fallback to larger default */ + if (source->stats.last_rtcptime > source->stats.prev_rtcptime) + binterval = source->stats.last_rtcptime - source->stats.prev_rtcptime; + else + binterval = 5 * GST_SECOND; + binterval = CLAMP (binterval, data->interval, 5 * GST_SECOND); + } + GST_LOG ("timeout base interval %" GST_TIME_FORMAT, + GST_TIME_ARGS (binterval)); + /* check for our own source, we don't want to delete our own source. */ if (!(source == sess->source)) { if (source->received_bye) { @@ -2738,11 +2871,13 @@ session_cleanup (const gchar * key, RTPSource * source, ReportData * data) } /* sources that were inactive for more than 5 times the deterministic reporting * interval get timed out. the min timeout is 5 seconds. */ - if (data->current_time > source->last_activity) { - interval = MAX (data->interval * 5, 5 * GST_SECOND); - if (data->current_time - source->last_activity > interval) { + /* mind old time that might pre-date last time going to PLAYING */ + btime = MAX (source->last_activity, sess->start_time); + if (data->current_time > btime) { + interval = MAX (binterval * 5, 5 * GST_SECOND); + if (data->current_time - btime > interval) { GST_DEBUG ("removing timeout source %08x, last %" GST_TIME_FORMAT, - source->ssrc, GST_TIME_ARGS (source->last_activity)); + source->ssrc, GST_TIME_ARGS (btime)); remove = TRUE; } } @@ -2751,12 +2886,13 @@ session_cleanup (const gchar * key, RTPSource * source, ReportData * data) /* senders that did not send for a long time become a receiver, this also * holds for our own source. */ if (is_sender) { - if (data->current_time > source->last_rtp_activity) { - interval = MAX (data->interval * 2, 5 * GST_SECOND); - if (data->current_time - source->last_rtp_activity > interval) { + /* mind old time that might pre-date last time going to PLAYING */ + btime = MAX (source->last_rtp_activity, sess->start_time); + if (data->current_time > btime) { + interval = MAX (binterval * 2, 5 * GST_SECOND); + if (data->current_time - btime > interval) { GST_DEBUG ("sender source %08x timed out and became receiver, last %" - GST_TIME_FORMAT, source->ssrc, - GST_TIME_ARGS (source->last_rtp_activity)); + GST_TIME_FORMAT, source->ssrc, GST_TIME_ARGS (btime)); source->is_sender = FALSE; sess->stats.sender_sources--; sendertimeout = TRUE; @@ -3047,7 +3183,8 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, /* check for outdated collisions */ GST_DEBUG ("Timing out collisions"); rtp_source_timeout (sess->source, current_time, - data.interval * RTCP_INTERVAL_COLLISION_TIMEOUT, + /* "a relatively long time" -- RFC 3550 section 8.2 */ + RTP_STATS_MIN_INTERVAL * GST_SECOND * 10, running_time - sess->rtcp_feedback_retention_window); if (sess->change_ssrc) { @@ -3142,8 +3279,13 @@ rtp_session_request_early_rtcp (RTPSession * sess, GstClockTime current_time, if (current_time + T_dither_max > sess->next_rtcp_check_time) goto dont_send; - /* RFC 4585 section 3.5.2 step 4 */ - if (sess->allow_early == FALSE) + /* RFC 4585 section 3.5.2 step 4 + * Don't send if allow_early is FALSE, but not if we are in + * immediate mode, meaning we are part of a group of at most the + * application-specific threshold. + */ + if (sess->total_sources > sess->rtcp_immediate_feedback_threshold && + sess->allow_early == FALSE) goto dont_send; if (T_dither_max) { @@ -3167,19 +3309,32 @@ rtp_session_request_early_rtcp (RTPSession * sess, GstClockTime current_time, dont_send: RTP_SESSION_UNLOCK (sess); - } -void -rtp_session_request_key_unit (RTPSession * sess, guint32 ssrc) +gboolean +rtp_session_request_key_unit (RTPSession * sess, guint32 ssrc, GstClockTime now, + gboolean fir, gint count) { - guint i; + RTPSource *src = g_hash_table_lookup (sess->ssrcs[sess->mask_idx], + GUINT_TO_POINTER (ssrc)); - for (i = 0; i < sess->rtcp_pli_requests->len; i++) - if (ssrc == g_array_index (sess->rtcp_pli_requests, guint32, i)) - return; + if (!src) + return FALSE; + + if (fir) { + src->send_pli = FALSE; + src->send_fir = TRUE; + + if (count == -1 || count != src->last_fir_count) + src->current_send_fir_seqnum++; + src->last_fir_count = count; + } else if (!src->send_fir) { + src->send_pli = TRUE; + } + + rtp_session_request_early_rtcp (sess, now, 200 * GST_MSECOND); - g_array_append_val (sess->rtcp_pli_requests, ssrc); + return TRUE; } static gboolean @@ -3202,22 +3357,66 @@ rtp_session_on_sending_rtcp (RTPSession * sess, GstBuffer * buffer, gboolean early) { gboolean ret = FALSE; + GHashTableIter iter; + gpointer key, value; + gboolean started_fir = FALSE; + GstRTCPPacket fir_rtcppacket; RTP_SESSION_LOCK (sess); - while (sess->rtcp_pli_requests->len) { - GstRTCPPacket rtcppacket; - guint media_ssrc = g_array_index (sess->rtcp_pli_requests, guint32, 0); - RTPSource *media_src = g_hash_table_lookup (sess->ssrcs[sess->mask_idx], - GUINT_TO_POINTER (media_ssrc)); + g_hash_table_iter_init (&iter, sess->ssrcs[sess->mask_idx]); + while (g_hash_table_iter_next (&iter, &key, &value)) { + guint media_ssrc = GPOINTER_TO_UINT (key); + RTPSource *media_src = value; + guint8 *fci_data; + + if (media_src->send_fir) { + if (!started_fir) { + if (!gst_rtcp_buffer_add_packet (buffer, GST_RTCP_TYPE_PSFB, + &fir_rtcppacket)) + break; + gst_rtcp_packet_fb_set_type (&fir_rtcppacket, GST_RTCP_PSFB_TYPE_FIR); + gst_rtcp_packet_fb_set_sender_ssrc (&fir_rtcppacket, + rtp_source_get_ssrc (sess->source)); + gst_rtcp_packet_fb_set_media_ssrc (&fir_rtcppacket, 0); + + if (!gst_rtcp_packet_fb_set_fci_length (&fir_rtcppacket, 2)) { + gst_rtcp_packet_remove (&fir_rtcppacket); + break; + } + ret = TRUE; + started_fir = TRUE; + } else { + if (!gst_rtcp_packet_fb_set_fci_length (&fir_rtcppacket, + !gst_rtcp_packet_fb_get_fci_length (&fir_rtcppacket) + 2)) + break; + } - if (media_src && !rtp_source_has_retained (media_src, + fci_data = gst_rtcp_packet_fb_get_fci (&fir_rtcppacket) - + ((gst_rtcp_packet_fb_get_fci_length (&fir_rtcppacket) - 2) * 4); + + GST_WRITE_UINT32_BE (fci_data, media_ssrc); + fci_data += 4; + fci_data[0] = media_src->current_send_fir_seqnum; + fci_data[1] = fci_data[2] = fci_data[3] = 0; + media_src->send_fir = FALSE; + } + } + + g_hash_table_iter_init (&iter, sess->ssrcs[sess->mask_idx]); + while (g_hash_table_iter_next (&iter, &key, &value)) { + guint media_ssrc = GPOINTER_TO_UINT (key); + RTPSource *media_src = value; + GstRTCPPacket pli_rtcppacket; + + if (media_src->send_pli && !rtp_source_has_retained (media_src, has_pli_compare_func, NULL)) { - if (gst_rtcp_buffer_add_packet (buffer, GST_RTCP_TYPE_PSFB, &rtcppacket)) { - gst_rtcp_packet_fb_set_type (&rtcppacket, GST_RTCP_PSFB_TYPE_PLI); - gst_rtcp_packet_fb_set_sender_ssrc (&rtcppacket, + if (gst_rtcp_buffer_add_packet (buffer, GST_RTCP_TYPE_PSFB, + &pli_rtcppacket)) { + gst_rtcp_packet_fb_set_type (&pli_rtcppacket, GST_RTCP_PSFB_TYPE_PLI); + gst_rtcp_packet_fb_set_sender_ssrc (&pli_rtcppacket, rtp_source_get_ssrc (sess->source)); - gst_rtcp_packet_fb_set_media_ssrc (&rtcppacket, media_ssrc); + gst_rtcp_packet_fb_set_media_ssrc (&pli_rtcppacket, media_ssrc); ret = TRUE; } else { /* Break because the packet is full, will put next request in a @@ -3226,8 +3425,7 @@ rtp_session_on_sending_rtcp (RTPSession * sess, GstBuffer * buffer, break; } } - - g_array_remove_index (sess->rtcp_pli_requests, 0); + media_src->send_pli = FALSE; } RTP_SESSION_UNLOCK (sess); diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h index 93fd300..ecc0b98 100644 --- a/gst/rtpmanager/rtpsession.h +++ b/gst/rtpmanager/rtpsession.h @@ -209,6 +209,7 @@ struct _RTPSession { GstClockTime next_rtcp_check_time; GstClockTime last_rtcp_send_time; + GstClockTime start_time; gboolean first_rtcp; gboolean allow_early; @@ -232,9 +233,10 @@ struct _RTPSession { gboolean change_ssrc; gboolean favor_new; GstClockTime rtcp_feedback_retention_window; + guint rtcp_immediate_feedback_threshold; - GArray *rtcp_pli_requests; GstClockTime last_keyframe_request; + gboolean last_keyframe_all_headers; }; /** @@ -347,7 +349,10 @@ void rtp_session_request_early_rtcp (RTPSession * sess, GstClockT GstClockTimeDiff max_delay); /* Notify session of a request for a new key unit */ -void rtp_session_request_key_unit (RTPSession * sess, - guint32 ssrc); +gboolean rtp_session_request_key_unit (RTPSession * sess, + guint32 ssrc, + GstClockTime now, + gboolean fir, + gint count); #endif /* __RTP_SESSION_H__ */ diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c index fb9e039..f1ee4ac 100644 --- a/gst/rtpmanager/rtpsource.c +++ b/gst/rtpmanager/rtpsource.c @@ -1345,6 +1345,9 @@ rtp_source_process_sr (RTPSource * src, GstClockTime time, guint64 ntptime, /* make current */ src->stats.curr_sr = curridx; + + src->stats.prev_rtcptime = src->stats.last_rtcptime; + src->stats.last_rtcptime = time; } /** diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h index 6db0a6a..fc204ae 100644 --- a/gst/rtpmanager/rtpsource.h +++ b/gst/rtpmanager/rtpsource.h @@ -172,6 +172,11 @@ struct _RTPSource { GList *conflicting_addresses; GQueue *retained_feedback; + + gboolean send_pli; + gboolean send_fir; + guint8 current_send_fir_seqnum; + gint last_fir_count; }; struct _RTPSourceClass { diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in index 28c0e0c..bb7928e 100644 --- a/gst/rtsp/Makefile.in +++ b/gst/rtsp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstrtsp_la_OBJECTS = libgstrtsp_la-gstrtsp.lo \ libgstrtsp_la-gstrtspsrc.lo libgstrtsp_la-gstrtpdec.lo \ libgstrtsp_la-gstrtspext.lo libgstrtsp_la_OBJECTS = $(am_libgstrtsp_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstrtsp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstrtsp_la_SOURCES) DIST_SOURCES = $(libgstrtsp_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -561,7 +561,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstrtsp.la: $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_DEPENDENCIES) +libgstrtsp.la: $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_DEPENDENCIES) $(EXTRA_libgstrtsp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstrtsp_la_LINK) -rpath $(plugindir) $(libgstrtsp_la_OBJECTS) $(libgstrtsp_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -578,58 +578,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstrtsp_la-gstrtsp.lo: gstrtsp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtsp.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtsp.Tpo -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtsp.Tpo $(DEPDIR)/libgstrtsp_la-gstrtsp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtsp.c' object='libgstrtsp_la-gstrtsp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtsp.c' object='libgstrtsp_la-gstrtsp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtsp.lo `test -f 'gstrtsp.c' || echo '$(srcdir)/'`gstrtsp.c libgstrtsp_la-gstrtspsrc.lo: gstrtspsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspsrc.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Tpo -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Tpo $(DEPDIR)/libgstrtsp_la-gstrtspsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspsrc.c' object='libgstrtsp_la-gstrtspsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspsrc.c' object='libgstrtsp_la-gstrtspsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspsrc.lo `test -f 'gstrtspsrc.c' || echo '$(srcdir)/'`gstrtspsrc.c libgstrtsp_la-gstrtpdec.lo: gstrtpdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtpdec.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtpdec.Tpo -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtpdec.Tpo $(DEPDIR)/libgstrtsp_la-gstrtpdec.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpdec.c' object='libgstrtsp_la-gstrtpdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpdec.c' object='libgstrtsp_la-gstrtpdec.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtpdec.lo `test -f 'gstrtpdec.c' || echo '$(srcdir)/'`gstrtpdec.c libgstrtsp_la-gstrtspext.lo: gstrtspext.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_la-gstrtspext.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_la-gstrtspext.Tpo -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_la-gstrtspext.Tpo $(DEPDIR)/libgstrtsp_la-gstrtspext.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspext.c' object='libgstrtsp_la-gstrtspext.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspext.c' object='libgstrtsp_la-gstrtspext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtsp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtsp_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_la-gstrtspext.lo `test -f 'gstrtspext.c' || echo '$(srcdir)/'`gstrtspext.c mostlyclean-libtool: -rm -f *.lo @@ -736,10 +729,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c index cbd5836..02e68dd 100644 --- a/gst/rtsp/gstrtpdec.c +++ b/gst/rtsp/gstrtpdec.c @@ -201,15 +201,15 @@ gst_rtp_dec_base_init (gpointer klass) GstElementClass *element_class = GST_ELEMENT_CLASS (klass); /* sink pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dec_recv_rtp_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dec_recv_rtcp_sink_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dec_recv_rtp_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dec_recv_rtcp_sink_template); /* src pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dec_recv_rtp_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_rtp_dec_rtcp_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dec_recv_rtp_src_template); + gst_element_class_add_static_pad_template (element_class, + &gst_rtp_dec_rtcp_src_template); gst_element_class_set_details_simple (element_class, "RTP Decoder", "Codec/Parser/Network", diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 8990d6f..de14225 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -81,6 +81,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #ifdef HAVE_UNISTD_H #include #endif /* HAVE_UNISTD_H */ @@ -128,6 +132,13 @@ enum LAST_SIGNAL }; +enum _GstRtspSrcRtcpSyncMode +{ + RTCP_SYNC_ALWAYS, + RTCP_SYNC_INITIAL, + RTCP_SYNC_RTP +}; + enum _GstRtspSrcBufferMode { BUFFER_MODE_NONE, @@ -173,6 +184,7 @@ gst_rtsp_src_buffer_mode_get_type (void) #define DEFAULT_USER_PW NULL #define DEFAULT_BUFFER_MODE BUFFER_MODE_AUTO #define DEFAULT_PORT_RANGE NULL +#define DEFAULT_SHORT_HEADER FALSE enum { @@ -194,6 +206,7 @@ enum PROP_BUFFER_MODE, PROP_PORT_RANGE, PROP_UDP_BUFFER_SIZE, + PROP_SHORT_HEADER, PROP_LAST }; @@ -246,25 +259,41 @@ static void gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd, static GstRTSPResult gst_rtspsrc_send_cb (GstRTSPExtension * ext, GstRTSPMessage * request, GstRTSPMessage * response, GstRTSPSrc * src); -static gboolean gst_rtspsrc_open (GstRTSPSrc * src); -static gboolean gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment); -static gboolean gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle); -static gboolean gst_rtspsrc_close (GstRTSPSrc * src); +static GstRTSPResult gst_rtspsrc_open (GstRTSPSrc * src, gboolean async); +static GstRTSPResult gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, + gboolean async); +static GstRTSPResult gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle, + gboolean async); +static GstRTSPResult gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, + gboolean only_close); static gboolean gst_rtspsrc_uri_set_uri (GstURIHandler * handler, const gchar * uri); static gboolean gst_rtspsrc_activate_streams (GstRTSPSrc * src); -static void gst_rtspsrc_loop (GstRTSPSrc * src); +static gboolean gst_rtspsrc_loop (GstRTSPSrc * src); static gboolean gst_rtspsrc_stream_push_event (GstRTSPSrc * src, GstRTSPStream * stream, GstEvent * event, gboolean source); static gboolean gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event, gboolean source); /* commands we send to out loop to notify it of events */ -#define CMD_WAIT 0 -#define CMD_RECONNECT 1 -#define CMD_STOP 2 +#define CMD_OPEN 0 +#define CMD_PLAY 1 +#define CMD_PAUSE 2 +#define CMD_CLOSE 3 +#define CMD_WAIT 4 +#define CMD_RECONNECT 5 +#define CMD_LOOP 6 + +#define GST_ELEMENT_PROGRESS(el, type, code, text) \ +G_STMT_START { \ + gchar *__txt = _gst_element_error_printf text; \ + gst_element_post_message (GST_ELEMENT_CAST (el), \ + gst_message_new_progress (GST_OBJECT_CAST (el), \ + GST_PROGRESS_TYPE_ ##type, code, __txt)); \ + g_free (__txt); \ +} G_STMT_END /*static guint gst_rtspsrc_signals[LAST_SIGNAL] = { 0 }; */ @@ -290,8 +319,7 @@ gst_rtspsrc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&rtptemplate)); + gst_element_class_add_static_pad_template (element_class, &rtptemplate); gst_element_class_set_details_simple (element_class, "RTSP packet receiver", "Source/Network", @@ -456,6 +484,18 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) 0, G_MAXINT, DEFAULT_UDP_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRTSPSrc::short-header: + * + * Only send the basic RTSP headers for broken encoders. + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_SHORT_HEADER, + g_param_spec_boolean ("short-header", "Short Header", + "Only send the basic RTSP headers for broken encoders", + DEFAULT_SHORT_HEADER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gstelement_class->send_event = gst_rtspsrc_send_event; gstelement_class->change_state = gst_rtspsrc_change_state; @@ -494,6 +534,7 @@ gst_rtspsrc_init (GstRTSPSrc * src, GstRTSPSrcClass * g_class) src->client_port_range.min = 0; src->client_port_range.max = 0; src->udp_buffer_size = DEFAULT_UDP_BUFFER_SIZE; + src->short_header = DEFAULT_SHORT_HEADER; /* get a list of all extensions */ src->extensions = gst_rtsp_ext_list_get (); @@ -511,11 +552,9 @@ gst_rtspsrc_init (GstRTSPSrc * src, GstRTSPSrcClass * g_class) src->state_rec_lock = g_new (GStaticRecMutex, 1); g_static_rec_mutex_init (src->state_rec_lock); - /* protects access to the server connection */ - src->conn_rec_lock = g_new (GStaticRecMutex, 1); - g_static_rec_mutex_init (src->conn_rec_lock); - src->state = GST_RTSP_STATE_INVALID; + + GST_OBJECT_FLAG_SET (src, GST_ELEMENT_IS_SOURCE); } static void @@ -542,8 +581,6 @@ gst_rtspsrc_finalize (GObject * object) g_free (rtspsrc->stream_rec_lock); g_static_rec_mutex_free (rtspsrc->state_rec_lock); g_free (rtspsrc->state_rec_lock); - g_static_rec_mutex_free (rtspsrc->conn_rec_lock); - g_free (rtspsrc->conn_rec_lock); #ifdef G_OS_WIN32 WSACleanup (); @@ -691,6 +728,9 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_UDP_BUFFER_SIZE: rtspsrc->udp_buffer_size = g_value_get_int (value); break; + case PROP_SHORT_HEADER: + rtspsrc->short_header = g_value_get_boolean (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -783,6 +823,9 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_UDP_BUFFER_SIZE: g_value_set_int (value, rtspsrc->udp_buffer_size); break; + case PROP_SHORT_HEADER: + g_value_set_boolean (value, rtspsrc->short_header); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1640,7 +1683,7 @@ cleanup: } static void -gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) +gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush, gboolean playing) { GstEvent *event; gint cmd, i; @@ -1652,13 +1695,16 @@ gst_rtspsrc_flush (GstRTSPSrc * src, gboolean flush) if (flush) { event = gst_event_new_flush_start (); GST_DEBUG_OBJECT (src, "start flush"); - cmd = CMD_STOP; + cmd = CMD_WAIT; state = GST_STATE_PAUSED; } else { event = gst_event_new_flush_stop (); - GST_DEBUG_OBJECT (src, "stop flush"); - cmd = CMD_WAIT; - state = GST_STATE_PLAYING; + GST_DEBUG_OBJECT (src, "stop flush; playing %d", playing); + cmd = CMD_LOOP; + if (playing) + state = GST_STATE_PLAYING; + else + state = GST_STATE_PAUSED; clock = gst_element_get_clock (GST_ELEMENT_CAST (src)); if (clock) { base_time = gst_clock_get_time (clock); @@ -1702,12 +1748,10 @@ gst_rtspsrc_connection_send (GstRTSPSrc * src, GstRTSPConnection * conn, { GstRTSPResult ret; - GST_RTSP_CONN_LOCK (src); if (conn) ret = gst_rtsp_connection_send (conn, message, timeout); else ret = GST_RTSP_ERROR; - GST_RTSP_CONN_UNLOCK (src); return ret; } @@ -1718,12 +1762,10 @@ gst_rtspsrc_connection_receive (GstRTSPSrc * src, GstRTSPConnection * conn, { GstRTSPResult ret; - GST_RTSP_CONN_LOCK (src); if (conn) ret = gst_rtsp_connection_receive (conn, message, timeout); else ret = GST_RTSP_ERROR; - GST_RTSP_CONN_UNLOCK (src); return ret; } @@ -1811,7 +1853,7 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) * blocking in preroll). */ if (flush) { GST_DEBUG_OBJECT (src, "starting flush"); - gst_rtspsrc_flush (src, TRUE); + gst_rtspsrc_flush (src, TRUE, FALSE); } else { if (src->task) { gst_task_pause (src->task); @@ -1822,9 +1864,6 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) * with the above flush/pause code */ GST_RTSP_STREAM_LOCK (src); - /* stop flushing state */ - gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, FALSE); - GST_DEBUG_OBJECT (src, "stopped streaming"); /* copy segment, we need this because we still need the old @@ -1850,21 +1889,24 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) if (playing) { /* obtain current position in case seek fails */ gst_rtspsrc_get_position (src); - gst_rtspsrc_pause (src, FALSE); + gst_rtspsrc_pause (src, FALSE, FALSE); } gst_rtspsrc_do_seek (src, &seeksegment); /* and continue playing */ if (playing) - gst_rtspsrc_play (src, &seeksegment); + gst_rtspsrc_play (src, &seeksegment, FALSE); /* prepare for streaming again */ if (flush) { /* if we started flush, we stop now */ GST_DEBUG_OBJECT (src, "stopping flush"); - gst_rtspsrc_flush (src, FALSE); + gst_rtspsrc_flush (src, FALSE, playing); } else if (src->running) { + /* re-engage loop */ + gst_rtspsrc_loop_send_cmd (src, CMD_LOOP, FALSE); + /* we are running the current segment and doing a non-flushing seek, * close the segment first based on the previous last_stop. */ GST_DEBUG_OBJECT (src, "closing running segment %" G_GINT64_FORMAT @@ -1974,13 +2016,9 @@ gst_rtspsrc_handle_src_event (GstPad * pad, GstEvent * event) static gboolean gst_rtspsrc_handle_internal_src_event (GstPad * pad, GstEvent * event) { - GstRTSPSrc *src; gboolean res; - src = GST_RTSPSRC_CAST (gst_pad_get_element_private (pad)); - - GST_DEBUG_OBJECT (src, "pad %s:%s received event %s", - GST_DEBUG_PAD_NAME (pad), GST_EVENT_TYPE_NAME (event)); + GST_DEBUG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event)); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_SEEK: @@ -3272,7 +3310,8 @@ gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event, gboolean source) } static GstRTSPResult -gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info) +gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info, + gboolean async) { GstRTSPResult res; @@ -3307,6 +3346,9 @@ gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info) if (!info->connected) { /* connect */ + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "connect", + ("Connecting to %s", info->location)); GST_DEBUG_OBJECT (src, "connecting (%s)...", info->location); if ((res = gst_rtsp_connection_connect (info->connection, @@ -3358,13 +3400,14 @@ gst_rtsp_conninfo_close (GstRTSPSrc * src, GstRTSPConnInfo * info, } static GstRTSPResult -gst_rtsp_conninfo_reconnect (GstRTSPSrc * src, GstRTSPConnInfo * info) +gst_rtsp_conninfo_reconnect (GstRTSPSrc * src, GstRTSPConnInfo * info, + gboolean async) { GstRTSPResult res; GST_DEBUG_OBJECT (src, "reconnecting connection..."); gst_rtsp_conninfo_close (src, info, FALSE); - res = gst_rtsp_conninfo_connect (src, info); + res = gst_rtsp_conninfo_connect (src, info, async); return res; } @@ -3519,8 +3562,10 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) /* see if the timeout period expired */ if ((tv_timeout.tv_sec | tv_timeout.tv_usec) == 0) { GST_DEBUG_OBJECT (src, "timout, sending keep-alive"); - /* send keep-alive, ignore the result, a warning will be posted. */ - gst_rtspsrc_send_keep_alive (src); + /* send keep-alive, only act on interrupt, a warning will be posted for + * other errors. */ + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) + goto interrupt; /* get new timeout */ gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); } @@ -3531,8 +3576,8 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) /* protect the connection with the connection lock so that we can see when * we are finished doing server communication */ res = - gst_rtspsrc_connection_receive (src, src->conninfo.connection, &message, - src->ptcp_timeout); + gst_rtspsrc_connection_receive (src, src->conninfo.connection, + &message, src->ptcp_timeout); switch (res) { case GST_RTSP_OK: @@ -3544,7 +3589,8 @@ gst_rtspsrc_loop_interleaved (GstRTSPSrc * src) case GST_RTSP_ETIMEOUT: /* no reply, send keep alive */ GST_DEBUG_OBJECT (src, "timeout, sending keep-alive"); - gst_rtspsrc_send_keep_alive (src); + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) + goto interrupt; continue; case GST_RTSP_EEOF: /* go EOS when the server closed the connection */ @@ -3710,7 +3756,6 @@ interrupt: { gst_rtsp_message_unset (&message); GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush"); - /* unset flushing so we can do something else */ gst_rtspsrc_connection_flush (src, FALSE); return GST_FLOW_WRONG_STATE; } @@ -3747,113 +3792,164 @@ invalid_length: static GstFlowReturn gst_rtspsrc_loop_udp (GstRTSPSrc * src) { - gboolean restart = FALSE; GstRTSPResult res; GstRTSPMessage message = { 0 }; gint retry = 0; - GST_OBJECT_LOCK (src); - if (src->loop_cmd == CMD_STOP) - goto stopping; - - while (src->loop_cmd == CMD_WAIT) { - GST_OBJECT_UNLOCK (src); + while (TRUE) { + GTimeVal tv_timeout; - while (TRUE) { - GTimeVal tv_timeout; + /* get the next timeout interval */ + gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); - /* get the next timeout interval */ - gst_rtsp_connection_next_timeout (src->conninfo.connection, &tv_timeout); + GST_DEBUG_OBJECT (src, "doing receive with timeout %d seconds", + (gint) tv_timeout.tv_sec); - GST_DEBUG_OBJECT (src, "doing receive with timeout %d seconds", - (gint) tv_timeout.tv_sec); + gst_rtsp_message_unset (&message); - gst_rtsp_message_unset (&message); - /* we should continue reading the TCP socket because the server might - * send us requests. When the session timeout expires, we need to send a - * keep-alive request to keep the session open. */ - res = - gst_rtspsrc_connection_receive (src, src->conninfo.connection, - &message, &tv_timeout); + /* we should continue reading the TCP socket because the server might + * send us requests. When the session timeout expires, we need to send a + * keep-alive request to keep the session open. */ + res = gst_rtspsrc_connection_receive (src, src->conninfo.connection, + &message, &tv_timeout); - switch (res) { - case GST_RTSP_OK: - GST_DEBUG_OBJECT (src, "we received a server message"); - break; - case GST_RTSP_EINTR: - /* we got interrupted, see what we have to do */ - GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush"); - /* unset flushing so we can do something else */ - gst_rtspsrc_connection_flush (src, FALSE); + switch (res) { + case GST_RTSP_OK: + GST_DEBUG_OBJECT (src, "we received a server message"); + break; + case GST_RTSP_EINTR: + /* we got interrupted, see what we have to do */ + goto interrupt; + case GST_RTSP_ETIMEOUT: + /* send keep-alive, ignore the result, a warning will be posted. */ + GST_DEBUG_OBJECT (src, "timeout, sending keep-alive"); + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) goto interrupt; - case GST_RTSP_ETIMEOUT: - /* send keep-alive, ignore the result, a warning will be posted. */ - GST_DEBUG_OBJECT (src, "timeout, sending keep-alive"); - gst_rtspsrc_send_keep_alive (src); - continue; - case GST_RTSP_EEOF: - /* server closed the connection. not very fatal for UDP, reconnect and - * see what happens. */ - GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), - ("The server closed the connection.")); - if ((res = gst_rtsp_conninfo_reconnect (src, &src->conninfo)) < 0) - goto connect_error; + continue; + case GST_RTSP_EEOF: + /* server closed the connection. not very fatal for UDP, reconnect and + * see what happens. */ + GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), + ("The server closed the connection.")); + if ((res = + gst_rtsp_conninfo_reconnect (src, &src->conninfo, FALSE)) < 0) + goto connect_error; - continue; - default: - goto receive_error; - } + continue; + default: + goto receive_error; + } - switch (message.type) { - case GST_RTSP_MESSAGE_REQUEST: - /* server sends us a request message, handle it */ - res = - gst_rtspsrc_handle_request (src, src->conninfo.connection, - &message); - if (res == GST_RTSP_EEOF) - goto server_eof; - else if (res < 0) - goto handle_request_failed; - break; - case GST_RTSP_MESSAGE_RESPONSE: - /* we ignore response and data messages */ - GST_DEBUG_OBJECT (src, "ignoring response message"); - if (src->debug) - gst_rtsp_message_dump (&message); - if (message.type_data.response.code == GST_RTSP_STS_UNAUTHORIZED) { - GST_DEBUG_OBJECT (src, "but is Unauthorized response ..."); - if (gst_rtspsrc_setup_auth (src, &message) && !(retry++)) { - GST_DEBUG_OBJECT (src, "so retrying keep-alive"); - gst_rtspsrc_send_keep_alive (src); - } - } else { - retry = 0; + switch (message.type) { + case GST_RTSP_MESSAGE_REQUEST: + /* server sends us a request message, handle it */ + res = + gst_rtspsrc_handle_request (src, src->conninfo.connection, + &message); + if (res == GST_RTSP_EEOF) + goto server_eof; + else if (res < 0) + goto handle_request_failed; + break; + case GST_RTSP_MESSAGE_RESPONSE: + /* we ignore response and data messages */ + GST_DEBUG_OBJECT (src, "ignoring response message"); + if (src->debug) + gst_rtsp_message_dump (&message); + if (message.type_data.response.code == GST_RTSP_STS_UNAUTHORIZED) { + GST_DEBUG_OBJECT (src, "but is Unauthorized response ..."); + if (gst_rtspsrc_setup_auth (src, &message) && !(retry++)) { + GST_DEBUG_OBJECT (src, "so retrying keep-alive"); + if ((res = gst_rtspsrc_send_keep_alive (src)) == GST_RTSP_EINTR) + goto interrupt; } - break; - case GST_RTSP_MESSAGE_DATA: - /* we ignore response and data messages */ - GST_DEBUG_OBJECT (src, "ignoring data message"); - break; - default: - GST_WARNING_OBJECT (src, "ignoring unknown message type %d", - message.type); - break; - } + } else { + retry = 0; + } + break; + case GST_RTSP_MESSAGE_DATA: + /* we ignore response and data messages */ + GST_DEBUG_OBJECT (src, "ignoring data message"); + break; + default: + GST_WARNING_OBJECT (src, "ignoring unknown message type %d", + message.type); + break; } - interrupt: - GST_OBJECT_LOCK (src); - GST_DEBUG_OBJECT (src, "we have command %d", src->loop_cmd); - if (src->loop_cmd == CMD_STOP) - goto stopping; } - if (src->loop_cmd == CMD_RECONNECT) { - /* when we get here we have to reconnect using tcp */ - src->loop_cmd = CMD_WAIT; - /* only restart when the pads were not yet activated, else we were - * streaming over UDP */ - restart = src->need_activate; + /* we get here when the connection got interrupted */ +interrupt: + { + gst_rtsp_message_unset (&message); + GST_DEBUG_OBJECT (src, "got interrupted: stop connection flush"); + gst_rtspsrc_connection_flush (src, FALSE); + return GST_FLOW_WRONG_STATE; + } +connect_error: + { + gchar *str = gst_rtsp_strresult (res); + GstFlowReturn ret; + + src->conninfo.connected = FALSE; + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL), + ("Could not connect to server. (%s)", str)); + g_free (str); + ret = GST_FLOW_ERROR; + } else { + ret = GST_FLOW_WRONG_STATE; + } + return ret; + } +receive_error: + { + gchar *str = gst_rtsp_strresult (res); + + GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), + ("Could not receive message. (%s)", str)); + g_free (str); + return GST_FLOW_ERROR; + } +handle_request_failed: + { + gchar *str = gst_rtsp_strresult (res); + GstFlowReturn ret; + + gst_rtsp_message_unset (&message); + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not handle server message. (%s)", str)); + g_free (str); + ret = GST_FLOW_ERROR; + } else { + ret = GST_FLOW_WRONG_STATE; + } + return ret; + } +server_eof: + { + GST_DEBUG_OBJECT (src, "we got an eof from the server"); + GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), + ("The server closed the connection.")); + src->conninfo.connected = FALSE; + gst_rtsp_message_unset (&message); + return GST_FLOW_UNEXPECTED; } +} + +static GstRTSPResult +gst_rtspsrc_reconnect (GstRTSPSrc * src, gboolean async) +{ + GstRTSPResult res = GST_RTSP_OK; + gboolean restart; + + GST_DEBUG_OBJECT (src, "doing reconnect"); + + GST_OBJECT_LOCK (src); + /* only restart when the pads were not yet activated, else we were + * streaming over UDP */ + restart = src->need_activate; GST_OBJECT_UNLOCK (src); /* no need to restart, we're done */ @@ -3863,19 +3959,9 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) /* we can try only TCP now */ src->cur_protocols = GST_RTSP_LOWER_TRANS_TCP; - /* pause to prepare for a restart */ - gst_rtspsrc_pause (src, FALSE); - - if (src->task) { - /* stop task, we cannot join as this would deadlock, the task will stop when - * we exit this function below. */ - gst_task_stop (src->task); - /* and free the task so that _close will not stop/join it again. */ - gst_object_unref (GST_OBJECT (src->task)); - src->task = NULL; - } /* close and cleanup our state */ - gst_rtspsrc_close (src); + if ((res = gst_rtspsrc_close (src, async, FALSE)) < 0) + goto done; /* see if we have TCP left to try. Also don't try TCP when we were configured * with an SDP. */ @@ -3890,52 +3976,17 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src) gst_guint64_to_gdouble (src->udp_timeout / 1000000.0))); /* open new connection using tcp */ - if (!gst_rtspsrc_open (src)) + if (gst_rtspsrc_open (src, async) < 0) goto open_failed; /* start playback */ - if (!gst_rtspsrc_play (src, &src->segment)) + if (gst_rtspsrc_play (src, &src->segment, async) < 0) goto play_failed; done: - return GST_FLOW_OK; + return res; /* ERRORS */ -stopping: - { - GST_DEBUG_OBJECT (src, "we are stopping"); - GST_OBJECT_UNLOCK (src); - return GST_FLOW_WRONG_STATE; - } -receive_error: - { - gchar *str = gst_rtsp_strresult (res); - - GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), - ("Could not receive message. (%s)", str)); - g_free (str); - return GST_FLOW_ERROR; - } -handle_request_failed: - { - gchar *str = gst_rtsp_strresult (res); - - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not handle server message. (%s)", str)); - g_free (str); - gst_rtsp_message_unset (&message); - return GST_FLOW_ERROR; - } -connect_error: - { - gchar *str = gst_rtsp_strresult (res); - - src->conninfo.connected = FALSE; - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL), - ("Could not connect to server. (%s)", str)); - g_free (str); - return GST_FLOW_ERROR; - } no_protocols: { src->cur_protocols = 0; @@ -3956,37 +4007,143 @@ play_failed: GST_DEBUG_OBJECT (src, "play failed"); return GST_FLOW_OK; } -server_eof: - { - GST_DEBUG_OBJECT (src, "we got an eof from the server"); - GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL), - ("The server closed the connection.")); - src->conninfo.connected = FALSE; - gst_rtsp_message_unset (&message); - return GST_FLOW_UNEXPECTED; +} + +static void +gst_rtspsrc_loop_start_cmd (GstRTSPSrc * src, gint cmd) +{ + switch (cmd) { + case CMD_OPEN: + GST_ELEMENT_PROGRESS (src, START, "open", ("Opening Stream")); + break; + case CMD_PLAY: + GST_ELEMENT_PROGRESS (src, START, "request", ("Sending PLAY request")); + break; + case CMD_PAUSE: + GST_ELEMENT_PROGRESS (src, START, "request", ("Sending PAUSE request")); + break; + case CMD_CLOSE: + GST_ELEMENT_PROGRESS (src, START, "close", ("Closing Stream")); + break; + default: + break; + } +} + +static void +gst_rtspsrc_loop_complete_cmd (GstRTSPSrc * src, gint cmd) +{ + switch (cmd) { + case CMD_OPEN: + GST_ELEMENT_PROGRESS (src, COMPLETE, "open", ("Opened Stream")); + break; + case CMD_PLAY: + GST_ELEMENT_PROGRESS (src, COMPLETE, "request", ("Sent PLAY request")); + break; + case CMD_PAUSE: + GST_ELEMENT_PROGRESS (src, COMPLETE, "request", ("Sent PAUSE request")); + break; + case CMD_CLOSE: + GST_ELEMENT_PROGRESS (src, COMPLETE, "close", ("Closed Stream")); + break; + default: + break; + } +} + +static void +gst_rtspsrc_loop_cancel_cmd (GstRTSPSrc * src, gint cmd) +{ + switch (cmd) { + case CMD_OPEN: + GST_ELEMENT_PROGRESS (src, CANCELED, "open", ("Open canceled")); + break; + case CMD_PLAY: + GST_ELEMENT_PROGRESS (src, CANCELED, "request", ("PLAY canceled")); + break; + case CMD_PAUSE: + GST_ELEMENT_PROGRESS (src, CANCELED, "request", ("PAUSE canceled")); + break; + case CMD_CLOSE: + GST_ELEMENT_PROGRESS (src, CANCELED, "close", ("Close canceled")); + break; + default: + break; + } +} + +static void +gst_rtspsrc_loop_error_cmd (GstRTSPSrc * src, gint cmd) +{ + switch (cmd) { + case CMD_OPEN: + GST_ELEMENT_PROGRESS (src, ERROR, "open", ("Open failed")); + break; + case CMD_PLAY: + GST_ELEMENT_PROGRESS (src, ERROR, "request", ("PLAY failed")); + break; + case CMD_PAUSE: + GST_ELEMENT_PROGRESS (src, ERROR, "request", ("PAUSE failed")); + break; + case CMD_CLOSE: + GST_ELEMENT_PROGRESS (src, ERROR, "close", ("Close failed")); + break; + default: + break; } } static void +gst_rtspsrc_loop_end_cmd (GstRTSPSrc * src, gint cmd, GstRTSPResult ret) +{ + if (ret == GST_RTSP_OK) + gst_rtspsrc_loop_complete_cmd (src, cmd); + else if (ret == GST_RTSP_EINTR) + gst_rtspsrc_loop_cancel_cmd (src, cmd); + else + gst_rtspsrc_loop_error_cmd (src, cmd); +} + +static void gst_rtspsrc_loop_send_cmd (GstRTSPSrc * src, gint cmd, gboolean flush) { + gint old; + + /* FIXME flush param mute; remove at discretion */ + + /* start new request */ + gst_rtspsrc_loop_start_cmd (src, cmd); + + GST_DEBUG_OBJECT (src, "sending cmd %d", cmd); + GST_OBJECT_LOCK (src); + old = src->loop_cmd; + if (old != CMD_WAIT) { + src->loop_cmd = CMD_WAIT; + GST_OBJECT_UNLOCK (src); + /* cancel previous request */ + gst_rtspsrc_loop_cancel_cmd (src, old); + GST_OBJECT_LOCK (src); + } src->loop_cmd = cmd; - if (flush) { + /* interrupt if allowed */ + if (src->waiting) { GST_DEBUG_OBJECT (src, "start connection flush"); gst_rtspsrc_connection_flush (src, TRUE); - } else { - GST_DEBUG_OBJECT (src, "stop connection flush"); - gst_rtspsrc_connection_flush (src, FALSE); } + if (src->task) + gst_task_start (src->task); GST_OBJECT_UNLOCK (src); } -static void +static gboolean gst_rtspsrc_loop (GstRTSPSrc * src) { GstFlowReturn ret; + if (!src->conninfo.connection || !src->conninfo.connected) + goto no_connection; + if (src->interleaved) ret = gst_rtspsrc_loop_interleaved (src); else @@ -3995,19 +4152,21 @@ gst_rtspsrc_loop (GstRTSPSrc * src) if (ret != GST_FLOW_OK) goto pause; - return; + return TRUE; /* ERRORS */ +no_connection: + { + GST_WARNING_OBJECT (src, "we are not connected"); + ret = GST_FLOW_WRONG_STATE; + goto pause; + } pause: { const gchar *reason = gst_flow_get_name (ret); GST_DEBUG_OBJECT (src, "pausing task, reason %s", reason); src->running = FALSE; - if (src->task) { - /* can be NULL when we stopped and unreffed already */ - gst_task_pause (src->task); - } if (ret == GST_FLOW_UNEXPECTED) { /* perform EOS logic */ if (src->segment.flags & GST_SEEK_FLAG_SEGMENT) { @@ -4025,7 +4184,7 @@ pause: ("streaming task paused, reason %s (%d)", reason, ret)); gst_rtspsrc_push_event (src, gst_event_new_eos (), FALSE); } - return; + return FALSE; } } @@ -4168,7 +4327,8 @@ gst_rtspsrc_parse_digest_challenge (GstRTSPConnection * conn, } else value = NULL; - if ((strcmp (item, "stale") == 0) && (strcmp (value, "TRUE") == 0)) + if (item && (strcmp (item, "stale") == 0) && + value && (strcmp (value, "TRUE") == 0)) *stale = TRUE; gst_rtsp_connection_set_auth_param (conn, item, value); g_free (item); @@ -4325,7 +4485,8 @@ gst_rtspsrc_try_send (GstRTSPSrc * src, GstRTSPConnection * conn, gint try = 0; again: - gst_rtsp_ext_list_before_send (src->extensions, request); + if (!src->short_header) + gst_rtsp_ext_list_before_send (src->extensions, request); GST_DEBUG_OBJECT (src, "sending message"); @@ -4358,11 +4519,14 @@ next: /* ok, a response is good */ GST_DEBUG_OBJECT (src, "received response message"); break; - default: case GST_RTSP_MESSAGE_DATA: /* get next response */ GST_DEBUG_OBJECT (src, "ignoring data response message"); goto next; + default: + GST_WARNING_OBJECT (src, "ignoring unknown message type %d", + response->type); + goto next; } thecode = response->type_data.response.code; @@ -4393,21 +4557,26 @@ send_error: { gchar *str = gst_rtsp_strresult (res); - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not send message. (%s)", str)); + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not send message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "send interrupted"); + } g_free (str); return res; } receive_error: { - switch (res) { case GST_RTSP_EEOF: GST_WARNING_OBJECT (src, "server closed connection, doing reconnect"); if (try == 0) { try++; /* if reconnect succeeds, try again */ - if ((res = gst_rtsp_conninfo_reconnect (src, &src->conninfo)) == 0) + if ((res = + gst_rtsp_conninfo_reconnect (src, &src->conninfo, + FALSE)) == 0) goto again; } /* only try once after reconnect, then fallthrough and error out */ @@ -4415,8 +4584,12 @@ receive_error: { gchar *str = gst_rtsp_strresult (res); - GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), - ("Could not receive message. (%s)", str)); + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), + ("Could not receive message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "receive interrupted"); + } g_free (str); break; } @@ -4857,11 +5030,11 @@ gst_rtspsrc_stream_is_real_media (GstRTSPStream * stream) * This function will also configure the stream for the selected transport, * which basically means creating the pipeline. */ -static gboolean -gst_rtspsrc_setup_streams (GstRTSPSrc * src) +static GstRTSPResult +gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) { GList *walk; - GstRTSPResult res; + GstRTSPResult res = GST_RTSP_ERROR; GstRTSPMessage request = { 0 }; GstRTSPMessage response = { 0 }; GstRTSPStream *stream = NULL; @@ -4893,6 +5066,9 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) src->next_port_num = src->client_port_range.min; rtpport = rtcpport = 0; + if (G_UNLIKELY (src->streams == NULL)) + goto no_streams; + for (walk = src->streams; walk; walk = g_list_next (walk)) { GstRTSPConnection *conn; gchar *transports; @@ -4936,7 +5112,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) } if (src->conninfo.connection == NULL) { - if (!gst_rtsp_conninfo_connect (src, &stream->conninfo)) { + if (!gst_rtsp_conninfo_connect (src, &stream->conninfo, async)) { GST_DEBUG_OBJECT (src, "skipping stream %p, failed to connect", stream); continue; } @@ -5009,6 +5185,10 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) g_free (hval); } + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "request", ("SETUP stream %d", + stream->id)); + /* handle the code ourselves */ if ((res = gst_rtspsrc_send (src, conn, &request, &response, &code) < 0)) goto send_error; @@ -5131,7 +5311,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src) if (!src->need_activate) goto nothing_to_activate; - return TRUE; + return res; /* ERRORS */ no_protocols: @@ -5139,7 +5319,13 @@ no_protocols: /* no transport possible, post an error and stop */ GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), ("Could not connect to server, no protocols left")); - return FALSE; + return GST_RTSP_ERROR; + } +no_streams: + { + GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), + ("SDP contains no streams")); + return GST_RTSP_ERROR; } create_request_failed: { @@ -5154,6 +5340,7 @@ setup_transport_failed: { GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("Could not setup transport.")); + res = GST_RTSP_ERROR; goto cleanup_error; } response_error: @@ -5162,14 +5349,19 @@ response_error: GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), ("Error (%d): %s", code, GST_STR_NULL (str))); + res = GST_RTSP_ERROR; goto cleanup_error; } send_error: { gchar *str = gst_rtsp_strresult (res); - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not send message. (%s)", str)); + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not send message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "send interrupted"); + } g_free (str); goto cleanup_error; } @@ -5177,6 +5369,7 @@ no_transport: { GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("Server did not select transport.")); + res = GST_RTSP_ERROR; goto cleanup_error; } nothing_to_activate: @@ -5193,13 +5386,13 @@ nothing_to_activate: "more transport protocols or may otherwise be missing " "the right GStreamer RTSP extension plugin.")), (NULL)); } - return FALSE; + return GST_RTSP_ERROR; } cleanup_error: { gst_rtsp_message_unset (&request); gst_rtsp_message_unset (&response); - return FALSE; + return res; } } @@ -5272,9 +5465,11 @@ gst_rtspsrc_parse_range (GstRTSPSrc * src, const gchar * range, } /* must be called with the RTSP state lock */ -static gboolean -gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp) +static GstRTSPResult +gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp, + gboolean async) { + GstRTSPResult res; gint i, n_streams; /* prepare global stream caps properties */ @@ -5324,7 +5519,7 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp) src->conninfo.location = g_strdup (control); /* make a connection for this, if there was a connection already, nothing * happens. */ - if (gst_rtsp_conninfo_connect (src, &src->conninfo) < 0) { + if (gst_rtsp_conninfo_connect (src, &src->conninfo, async) < 0) { GST_ERROR_OBJECT (src, "could not connect"); } } @@ -5341,10 +5536,9 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp) } src->state = GST_RTSP_STATE_INIT; - GST_OBJECT_FLAG_SET (src, GST_ELEMENT_IS_SOURCE); /* setup streams */ - if (!gst_rtspsrc_setup_streams (src)) + if ((res = gst_rtspsrc_setup_streams (src, async)) < 0) goto setup_failed; /* reset our state */ @@ -5353,18 +5547,19 @@ gst_rtspsrc_open_from_sdp (GstRTSPSrc * src, GstSDPMessage * sdp) src->state = GST_RTSP_STATE_READY; - return TRUE; + return res; /* ERRORS */ setup_failed: { GST_ERROR_OBJECT (src, "setup failed"); - return FALSE; + return res; } } -static gboolean -gst_rtspsrc_retrieve_sdp (GstRTSPSrc * src, GstSDPMessage ** sdp) +static GstRTSPResult +gst_rtspsrc_retrieve_sdp (GstRTSPSrc * src, GstSDPMessage ** sdp, + gboolean async) { GstRTSPResult res; GstRTSPMessage request = { 0 }; @@ -5377,11 +5572,13 @@ restart: src->need_redirect = FALSE; /* can't continue without a valid url */ - if (G_UNLIKELY (src->conninfo.url == NULL)) + if (G_UNLIKELY (src->conninfo.url == NULL)) { + res = GST_RTSP_EINVAL; goto no_url; + } src->tried_url_auth = FALSE; - if ((res = gst_rtsp_conninfo_connect (src, &src->conninfo)) < 0) + if ((res = gst_rtsp_conninfo_connect (src, &src->conninfo, async)) < 0) goto connect_failed; /* create OPTIONS */ @@ -5394,8 +5591,13 @@ restart: /* send OPTIONS */ GST_DEBUG_OBJECT (src, "send options..."); - if (gst_rtspsrc_send (src, src->conninfo.connection, &request, &response, - NULL) < 0) + + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "open", ("Retrieving server options")); + + if ((res = + gst_rtspsrc_send (src, src->conninfo.connection, &request, &response, + NULL)) < 0) goto send_error; /* parse OPTIONS */ @@ -5416,8 +5618,13 @@ restart: /* send DESCRIBE */ GST_DEBUG_OBJECT (src, "send describe..."); - if (gst_rtspsrc_send (src, src->conninfo.connection, &request, &response, - NULL) < 0) + + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "open", ("Retrieving media info")); + + if ((res = + gst_rtspsrc_send (src, src->conninfo.connection, &request, &response, + NULL)) < 0) goto send_error; /* we only perform redirect for the describe, currently */ @@ -5460,7 +5667,7 @@ restart: gst_rtsp_message_unset (&request); gst_rtsp_message_unset (&response); - return TRUE; + return res; /* ERRORS */ no_url: @@ -5473,8 +5680,12 @@ connect_failed: { gchar *str = gst_rtsp_strresult (res); - GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL), - ("Failed to connect. (%s)", str)); + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL), + ("Failed to connect. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "connect interrupted"); + } g_free (str); goto cleanup_error; } @@ -5496,18 +5707,21 @@ send_error: methods_error: { /* error was posted */ + res = GST_RTSP_ERROR; goto cleanup_error; } wrong_content_type: { GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("Server does not support SDP, got %s.", respcont)); + res = GST_RTSP_ERROR; goto cleanup_error; } no_describe: { GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("Server can not provide an SDP.")); + res = GST_RTSP_ERROR; goto cleanup_error; } cleanup_error: @@ -5518,110 +5732,66 @@ cleanup_error: } gst_rtsp_message_unset (&request); gst_rtsp_message_unset (&response); - return FALSE; + return res; } } -static gboolean -gst_rtspsrc_open (GstRTSPSrc * src) +static GstRTSPResult +gst_rtspsrc_open (GstRTSPSrc * src, gboolean async) { - gboolean res; + GstRTSPResult ret; src->methods = GST_RTSP_SETUP | GST_RTSP_PLAY | GST_RTSP_PAUSE | GST_RTSP_TEARDOWN; - GST_RTSP_STATE_LOCK (src); - if (src->sdp == NULL) { - if (!(res = gst_rtspsrc_retrieve_sdp (src, &src->sdp))) + if ((ret = gst_rtspsrc_retrieve_sdp (src, &src->sdp, async)) < 0) goto no_sdp; } - if (!(res = gst_rtspsrc_open_from_sdp (src, src->sdp))) + if ((ret = gst_rtspsrc_open_from_sdp (src, src->sdp, async)) < 0) goto open_failed; - GST_RTSP_STATE_UNLOCK (src); +done: + if (async) + gst_rtspsrc_loop_end_cmd (src, CMD_OPEN, ret); - return res; + return ret; /* ERRORS */ no_sdp: { GST_WARNING_OBJECT (src, "can't get sdp"); - GST_RTSP_STATE_UNLOCK (src); - return FALSE; + src->open_error = TRUE; + goto done; } open_failed: { GST_WARNING_OBJECT (src, "can't setup streaming from sdp"); - GST_RTSP_STATE_UNLOCK (src); - return FALSE; - } -} - -#if 0 -static gboolean -gst_rtspsrc_async_open (GstRTSPSrc * src) -{ - GError *error = NULL; - gboolean res = TRUE; - - src->thread = - g_thread_create ((GThreadFunc) gst_rtspsrc_open, src, TRUE, &error); - if (error != NULL) { - GST_ELEMENT_ERROR (src, RESOURCE, INIT, (NULL), - ("Could not start async thread (%s).", error->message)); + src->open_error = TRUE; + goto done; } - return res; } -#endif - -static gboolean -gst_rtspsrc_close (GstRTSPSrc * src) +static GstRTSPResult +gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, gboolean only_close) { GstRTSPMessage request = { 0 }; GstRTSPMessage response = { 0 }; - GstRTSPResult res; + GstRTSPResult res = GST_RTSP_OK; GList *walk; - gboolean ret = FALSE; gchar *control; GST_DEBUG_OBJECT (src, "TEARDOWN..."); - GST_RTSP_STATE_LOCK (src); - - gst_rtspsrc_loop_send_cmd (src, CMD_STOP, TRUE); - - /* stop task if any */ - if (src->task) { - /* release lock before trying to get the streamlock */ - GST_RTSP_STATE_UNLOCK (src); - - gst_task_stop (src->task); - - /* make sure it is not running */ - GST_RTSP_STREAM_LOCK (src); - GST_RTSP_STREAM_UNLOCK (src); - - /* now wait for the task to finish */ - gst_task_join (src->task); - - /* and free the task */ - gst_object_unref (GST_OBJECT (src->task)); - src->task = NULL; - - GST_RTSP_STATE_LOCK (src); - } - - /* make sure we're not flushing anymore */ - gst_rtspsrc_connection_flush (src, FALSE); - if (src->state < GST_RTSP_STATE_READY) { GST_DEBUG_OBJECT (src, "not ready, doing cleanup"); goto close; } + if (only_close) + goto close; + /* construct a control url */ if (src->control) control = src->control; @@ -5658,7 +5828,12 @@ gst_rtspsrc_close (GstRTSPSrc * src) if (res < 0) goto create_request_failed; - if (gst_rtspsrc_send (src, info->connection, &request, &response, NULL) < 0) + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "close", ("Closing stream")); + + if ((res = + gst_rtspsrc_send (src, info->connection, &request, &response, + NULL)) < 0) goto send_error; /* FIXME, parse result? */ @@ -5684,24 +5859,34 @@ close: gst_rtspsrc_cleanup (src); src->state = GST_RTSP_STATE_INVALID; - GST_RTSP_STATE_UNLOCK (src); - return ret; + if (async) + gst_rtspsrc_loop_end_cmd (src, CMD_CLOSE, res); + + return res; /* ERRORS */ create_request_failed: { + gchar *str = gst_rtsp_strresult (res); + GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Could not create request.")); - ret = FALSE; + ("Could not create request. (%s)", str)); + g_free (str); goto close; } send_error: { + gchar *str = gst_rtsp_strresult (res); + gst_rtsp_message_unset (&request); - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not send message.")); - ret = FALSE; + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not send message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "TEARDOWN interrupted"); + } + g_free (str); goto close; } not_supported: @@ -5780,6 +5965,47 @@ gst_rtspsrc_parse_rtpinfo (GstRTSPSrc * src, gchar * rtpinfo) return TRUE; } +static void +gst_rtspsrc_handle_rtcp_interval (GstRTSPSrc * src, gchar * rtcp) +{ + guint64 interval; + GList *walk; + + interval = strtoul (rtcp, NULL, 10); + GST_DEBUG_OBJECT (src, "rtcp interval: %" G_GUINT64_FORMAT " ms", interval); + + if (!interval) + return; + + interval *= GST_MSECOND; + + for (walk = src->streams; walk; walk = g_list_next (walk)) { + GstRTSPStream *stream = (GstRTSPStream *) walk->data; + + /* already (optionally) retrieved this when configuring manager */ + if (stream->session) { + GObject *rtpsession = stream->session; + + GST_DEBUG_OBJECT (src, "configure rtcp interval in session %p", + rtpsession); + g_object_set (rtpsession, "rtcp-min-interval", interval, NULL); + } + } + + /* now it happens that (Xenon) server sending this may also provide bogus + * RTCP SR sync data (i.e. with quite some jitter), so never mind those + * and just use RTP-Info to sync */ + if (src->manager) { + GObjectClass *klass; + + klass = G_OBJECT_GET_CLASS (G_OBJECT (src->manager)); + if (g_object_class_find_property (klass, "rtcp-sync")) { + GST_DEBUG_OBJECT (src, "configuring rtp sync method"); + g_object_set (src->manager, "rtcp-sync", RTCP_SYNC_RTP, NULL); + } + } +} + static gdouble gst_rtspsrc_get_float (const gchar * dstr) { @@ -5824,21 +6050,46 @@ clear_rtp_base (GstRTSPSrc * src, GstRTSPStream * stream) } } -static gboolean -gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) +static GstRTSPResult +gst_rtspsrc_ensure_open (GstRTSPSrc * src, gboolean async) +{ + GstRTSPResult res = GST_RTSP_OK; + + if (src->state < GST_RTSP_STATE_READY) { + res = GST_RTSP_ERROR; + if (src->open_error) { + GST_DEBUG_OBJECT (src, "the stream was in error"); + goto done; + } + if (async) + gst_rtspsrc_loop_start_cmd (src, CMD_OPEN); + + if ((res = gst_rtspsrc_open (src, async)) < 0) { + GST_DEBUG_OBJECT (src, "failed to open stream"); + goto done; + } + } + +done: + return res; +} + +static GstRTSPResult +gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async) { GstRTSPMessage request = { 0 }; GstRTSPMessage response = { 0 }; - GstRTSPResult res; + GstRTSPResult res = GST_RTSP_OK; GList *walk; gchar *hval; gint hval_idx; gchar *control; - GST_RTSP_STATE_LOCK (src); - GST_DEBUG_OBJECT (src, "PLAY..."); + if ((res = gst_rtspsrc_ensure_open (src, async)) < 0) + goto open_failed; + if (!(src->methods & GST_RTSP_PLAY)) goto not_supported; @@ -5848,15 +6099,16 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) if (!src->conninfo.connection || !src->conninfo.connected) goto done; - /* waiting for connection idle, we were flushing so any attempt at doing data - * transfer will result in pausing the tasks. */ - GST_DEBUG_OBJECT (src, "wait for connection idle"); - GST_RTSP_CONN_LOCK (src); - GST_DEBUG_OBJECT (src, "connection is idle now"); - GST_RTSP_CONN_UNLOCK (src); + /* send some dummy packets before we activate the receive in the + * udp sources */ + gst_rtspsrc_send_dummy_packets (src); - GST_DEBUG_OBJECT (src, "stop connection flush"); - gst_rtspsrc_connection_flush (src, FALSE); + /* activate receive elements; + * only in async case, since receive elements may not have been affected + * by overall state change (e.g. not around yet), + * do not mess with state in sync case (e.g. seeking) */ + if (async) + gst_element_set_state (GST_ELEMENT_CAST (src), GST_STATE_PLAYING); /* construct a control url */ if (src->control) @@ -5905,7 +6157,10 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) gst_rtsp_message_add_header (&request, GST_RTSP_HDR_SPEED, hval); } - if (gst_rtspsrc_send (src, conn, &request, &response, NULL) < 0) + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "request", ("Sending PLAY request")); + + if ((res = gst_rtspsrc_send (src, conn, &request, &response, NULL)) < 0) goto send_error; /* seek may have silently failed as it is not supported */ @@ -5959,6 +6214,12 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) &hval, hval_idx++) == GST_RTSP_OK) gst_rtspsrc_parse_rtpinfo (src, hval); + /* some servers indicate RTCP parameters in PLAY response, + * rather than properly in SDP */ + if (gst_rtsp_message_get_header (&response, GST_RTSP_HDR_RTCP_INTERVAL, + &hval, 0) == GST_RTSP_OK) + gst_rtspsrc_handle_rtcp_interval (src, hval); + gst_rtsp_message_unset (&response); /* early exit when we did aggregate control */ @@ -5971,18 +6232,9 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) /* configure the caps of the streams after we parsed all headers. */ gst_rtspsrc_configure_caps (src, segment); - /* for interleaved transport, we receive the data on the RTSP connection - * instead of UDP. We start a task to select and read from that connection. - * For UDP we start the task as well to look for server info and UDP timeouts. */ - if (src->task == NULL) { - src->task = gst_task_create ((GstTaskFunction) gst_rtspsrc_loop, src); - gst_task_set_lock (src->task, GST_RTSP_STREAM_GET_LOCK (src)); - } src->running = TRUE; src->base_time = -1; src->state = GST_RTSP_STATE_PLAYING; - gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, FALSE); - gst_task_start (src->task); /* mark discont */ GST_DEBUG_OBJECT (src, "mark DISCONT, we did a seek to another position"); @@ -5992,11 +6244,17 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment) } done: - GST_RTSP_STATE_UNLOCK (src); + if (async) + gst_rtspsrc_loop_end_cmd (src, CMD_PLAY, res); - return TRUE; + return res; /* ERRORS */ +open_failed: + { + GST_DEBUG_OBJECT (src, "failed to open stream"); + goto done; + } not_supported: { GST_DEBUG_OBJECT (src, "PLAY is not supported"); @@ -6009,52 +6267,52 @@ was_playing: } create_request_failed: { - GST_RTSP_STATE_UNLOCK (src); + gchar *str = gst_rtsp_strresult (res); + GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Could not create request.")); - return FALSE; + ("Could not create request. (%s)", str)); + g_free (str); + goto done; } send_error: { - GST_RTSP_STATE_UNLOCK (src); + gchar *str = gst_rtsp_strresult (res); + gst_rtsp_message_unset (&request); - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not send message.")); - return FALSE; + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not send message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "PLAY interrupted"); + } + g_free (str); + goto done; } } -static gboolean -gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle) +static GstRTSPResult +gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle, gboolean async) { + GstRTSPResult res = GST_RTSP_OK; GstRTSPMessage request = { 0 }; GstRTSPMessage response = { 0 }; GList *walk; gchar *control; - GST_RTSP_STATE_LOCK (src); - GST_DEBUG_OBJECT (src, "PAUSE..."); + if ((res = gst_rtspsrc_ensure_open (src, async)) < 0) + goto open_failed; + if (!(src->methods & GST_RTSP_PAUSE)) goto not_supported; if (src->state == GST_RTSP_STATE_READY) goto was_paused; - /* waiting for connection idle, we were flushing so any attempt at doing data - * transfer will result in pausing the tasks. */ - GST_DEBUG_OBJECT (src, "wait for connection idle"); - GST_RTSP_CONN_LOCK (src); - GST_DEBUG_OBJECT (src, "connection is idle now"); - GST_RTSP_CONN_UNLOCK (src); - if (!src->conninfo.connection || !src->conninfo.connected) goto no_connection; - GST_DEBUG_OBJECT (src, "stop connection flush"); - gst_rtspsrc_connection_flush (src, FALSE); - /* construct a control url */ if (src->control) control = src->control; @@ -6082,10 +6340,16 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle) continue; } - if (gst_rtsp_message_init_request (&request, GST_RTSP_PAUSE, setup_url) < 0) + if (async) + GST_ELEMENT_PROGRESS (src, CONTINUE, "request", + ("Sending PAUSE request")); + + if ((res = + gst_rtsp_message_init_request (&request, GST_RTSP_PAUSE, + setup_url)) < 0) goto create_request_failed; - if (gst_rtspsrc_send (src, conn, &request, &response, NULL) < 0) + if ((res = gst_rtspsrc_send (src, conn, &request, &response, NULL)) < 0) goto send_error; gst_rtsp_message_unset (&request); @@ -6096,22 +6360,21 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean idle) break; } - if (idle && src->task) { - GST_DEBUG_OBJECT (src, "starting idle task again"); - src->base_time = -1; - gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, FALSE); - gst_task_start (src->task); - } - no_connection: src->state = GST_RTSP_STATE_READY; done: - GST_RTSP_STATE_UNLOCK (src); + if (async) + gst_rtspsrc_loop_end_cmd (src, CMD_PAUSE, res); - return TRUE; + return res; /* ERRORS */ +open_failed: + { + GST_DEBUG_OBJECT (src, "failed to open stream"); + goto done; + } not_supported: { GST_DEBUG_OBJECT (src, "PAUSE is not supported"); @@ -6124,18 +6387,26 @@ was_paused: } create_request_failed: { - GST_RTSP_STATE_UNLOCK (src); + gchar *str = gst_rtsp_strresult (res); + GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Could not create request.")); - return FALSE; + ("Could not create request. (%s)", str)); + g_free (str); + goto done; } send_error: { - GST_RTSP_STATE_UNLOCK (src); + gchar *str = gst_rtsp_strresult (res); + gst_rtsp_message_unset (&request); - GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), - ("Could not send message.")); - return FALSE; + if (res != GST_RTSP_EINTR) { + GST_ELEMENT_ERROR (src, RESOURCE, WRITE, (NULL), + ("Could not send message. (%s)", str)); + } else { + GST_WARNING_OBJECT (src, "PAUSE interrupted"); + } + g_free (str); + goto done; } } @@ -6219,6 +6490,134 @@ gst_rtspsrc_handle_message (GstBin * bin, GstMessage * message) } } +/* the thread where everything happens */ +static void +gst_rtspsrc_thread (GstRTSPSrc * src) +{ + gint cmd; + GstRTSPResult ret; + gboolean running = FALSE; + + GST_OBJECT_LOCK (src); + cmd = src->loop_cmd; + src->loop_cmd = CMD_WAIT; + GST_DEBUG_OBJECT (src, "got command %d", cmd); + + /* we got the message command, so ensure communication is possible again */ + gst_rtspsrc_connection_flush (src, FALSE); + + /* we allow these to be interrupted */ + if (cmd == CMD_LOOP || cmd == CMD_CLOSE || cmd == CMD_PAUSE) + src->waiting = TRUE; + GST_OBJECT_UNLOCK (src); + + switch (cmd) { + case CMD_OPEN: + ret = gst_rtspsrc_open (src, TRUE); + break; + case CMD_PLAY: + ret = gst_rtspsrc_play (src, &src->segment, TRUE); + if (ret == GST_RTSP_OK) + running = TRUE; + break; + case CMD_PAUSE: + ret = gst_rtspsrc_pause (src, TRUE, TRUE); + if (ret == GST_RTSP_OK) + running = TRUE; + break; + case CMD_CLOSE: + ret = gst_rtspsrc_close (src, TRUE, FALSE); + break; + case CMD_LOOP: + running = gst_rtspsrc_loop (src); + break; + case CMD_RECONNECT: + ret = gst_rtspsrc_reconnect (src, FALSE); + if (ret == GST_RTSP_OK) + running = TRUE; + break; + default: + break; + } + + GST_OBJECT_LOCK (src); + /* and go back to sleep */ + if (src->loop_cmd == CMD_WAIT) { + if (running) + src->loop_cmd = CMD_LOOP; + else if (src->task) + gst_task_pause (src->task); + } + /* reset waiting */ + src->waiting = FALSE; + GST_OBJECT_UNLOCK (src); +} + +static gboolean +gst_rtspsrc_start (GstRTSPSrc * src) +{ + GST_DEBUG_OBJECT (src, "starting"); + + GST_OBJECT_LOCK (src); + + src->loop_cmd = CMD_WAIT; + + if (src->task == NULL) { + src->task = gst_task_create ((GstTaskFunction) gst_rtspsrc_thread, src); + if (src->task == NULL) + goto task_error; + + gst_task_set_lock (src->task, GST_RTSP_STREAM_GET_LOCK (src)); + } + GST_OBJECT_UNLOCK (src); + + return TRUE; + + /* ERRORS */ +task_error: + { + GST_ERROR_OBJECT (src, "failed to create task"); + return FALSE; + } +} + +static gboolean +gst_rtspsrc_stop (GstRTSPSrc * src) +{ + GstTask *task; + + GST_DEBUG_OBJECT (src, "stopping"); + + /* also cancels pending task */ + gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, TRUE); + + GST_OBJECT_LOCK (src); + if ((task = src->task)) { + src->task = NULL; + GST_OBJECT_UNLOCK (src); + + gst_task_stop (task); + + /* make sure it is not running */ + GST_RTSP_STREAM_LOCK (src); + GST_RTSP_STREAM_UNLOCK (src); + + /* now wait for the task to finish */ + gst_task_join (task); + + /* and free the task */ + gst_object_unref (GST_OBJECT (task)); + + GST_OBJECT_LOCK (src); + } + GST_OBJECT_UNLOCK (src); + + /* ensure synchronously all is closed and clean */ + gst_rtspsrc_close (src, FALSE, TRUE); + + return TRUE; +} + static GstStateChangeReturn gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) { @@ -6229,25 +6628,23 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_rtspsrc_start (rtspsrc)) + goto start_failed; break; case GST_STATE_CHANGE_READY_TO_PAUSED: + /* init some state */ rtspsrc->cur_protocols = rtspsrc->protocols; /* first attempt, don't ignore timeouts */ rtspsrc->ignore_timeout = FALSE; - if (!gst_rtspsrc_open (rtspsrc)) - goto open_failed; + rtspsrc->open_error = FALSE; + gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_OPEN, FALSE); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - GST_DEBUG_OBJECT (rtspsrc, "PAUSED->PLAYING: stop connection flush"); - gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_STOP, TRUE); - /* send some dummy packets before we chain up to the parent to activate - * the receive in the udp sources */ - gst_rtspsrc_send_dummy_packets (rtspsrc); - break; case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + /* unblock the tcp tasks and make the loop waiting */ + gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, TRUE); + break; case GST_STATE_CHANGE_PAUSED_TO_READY: - GST_DEBUG_OBJECT (rtspsrc, "state change: sending stop command"); - gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_STOP, TRUE); break; default: break; @@ -6259,21 +6656,21 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - /* chained up to parent so the udp sources are activated and receiving */ - gst_rtspsrc_play (rtspsrc, &rtspsrc->segment); + gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PLAY, FALSE); break; case GST_STATE_CHANGE_PLAYING_TO_PAUSED: /* send pause request and keep the idle task around */ - gst_rtspsrc_pause (rtspsrc, TRUE); + gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_PAUSE, FALSE); ret = GST_STATE_CHANGE_NO_PREROLL; break; case GST_STATE_CHANGE_READY_TO_PAUSED: ret = GST_STATE_CHANGE_NO_PREROLL; break; case GST_STATE_CHANGE_PAUSED_TO_READY: - gst_rtspsrc_close (rtspsrc); + gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_CLOSE, FALSE); break; case GST_STATE_CHANGE_READY_TO_NULL: + gst_rtspsrc_stop (rtspsrc); break; default: break; @@ -6282,9 +6679,9 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) done: return ret; -open_failed: +start_failed: { - GST_DEBUG_OBJECT (rtspsrc, "open failed"); + GST_DEBUG_OBJECT (rtspsrc, "start failed"); return GST_STATE_CHANGE_FAILURE; } } diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h index 460f29a..cf8f81c 100644 --- a/gst/rtsp/gstrtspsrc.h +++ b/gst/rtsp/gstrtspsrc.h @@ -79,10 +79,6 @@ typedef struct _GstRTSPSrcClass GstRTSPSrcClass; #define GST_RTSP_STREAM_LOCK(rtsp) (g_static_rec_mutex_lock (GST_RTSP_STREAM_GET_LOCK(rtsp))) #define GST_RTSP_STREAM_UNLOCK(rtsp) (g_static_rec_mutex_unlock (GST_RTSP_STREAM_GET_LOCK(rtsp))) -#define GST_RTSP_CONN_GET_LOCK(rtsp) (GST_RTSPSRC_CAST(rtsp)->conn_rec_lock) -#define GST_RTSP_CONN_LOCK(rtsp) (g_static_rec_mutex_lock (GST_RTSP_CONN_GET_LOCK(rtsp))) -#define GST_RTSP_CONN_UNLOCK(rtsp) (g_static_rec_mutex_unlock (GST_RTSP_CONN_GET_LOCK(rtsp))) - typedef struct _GstRTSPConnInfo GstRTSPConnInfo; struct _GstRTSPConnInfo { @@ -131,7 +127,7 @@ struct _GstRTSPStream { gboolean container; /* original control url */ gchar *control_url; - guint32 ssrc; + guint32 ssrc; guint32 seqbase; guint64 timebase; @@ -184,13 +180,12 @@ struct _GstRTSPSrc { /* UDP mode loop */ gint loop_cmd; gboolean ignore_timeout; + gboolean waiting; + gboolean open_error; /* mutex for protecting state changes */ GStaticRecMutex *state_rec_lock; - /* mutex for protecting the connection */ - GStaticRecMutex *conn_rec_lock; - GstSDPMessage *sdp; gboolean from_sdp; gint numstreams; @@ -201,7 +196,7 @@ struct _GstRTSPSrc { /* properties */ GstRTSPLowerTrans protocols; gboolean debug; - guint retry; + guint retry; guint64 udp_timeout; GTimeVal tcp_timeout; GTimeVal *ptcp_timeout; @@ -219,6 +214,7 @@ struct _GstRTSPSrc { gint buffer_mode; GstRTSPRange client_port_range; gint udp_buffer_size; + gboolean short_header; /* state */ GstRTSPState state; diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in index 758091a..8de2d57 100644 --- a/gst/shapewipe/Makefile.in +++ b/gst/shapewipe/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,15 +102,22 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgstshapewipe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_libgstshapewipe_la_OBJECTS = libgstshapewipe_la-gstshapewipe.lo libgstshapewipe_la_OBJECTS = $(am_libgstshapewipe_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstshapewipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstshapewipe_la_SOURCES) DIST_SOURCES = $(libgstshapewipe_la_SOURCES) @@ -224,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -548,7 +549,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstshapewipe.la: $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_DEPENDENCIES) +libgstshapewipe.la: $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_DEPENDENCIES) $(EXTRA_libgstshapewipe_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstshapewipe_la_LINK) -rpath $(plugindir) $(libgstshapewipe_la_OBJECTS) $(libgstshapewipe_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -562,34 +563,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstshapewipe_la-gstshapewipe.lo: gstshapewipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -MT libgstshapewipe_la-gstshapewipe.lo -MD -MP -MF $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Tpo -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Tpo $(DEPDIR)/libgstshapewipe_la-gstshapewipe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstshapewipe.c' object='libgstshapewipe_la-gstshapewipe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstshapewipe.c' object='libgstshapewipe_la-gstshapewipe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstshapewipe_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstshapewipe_la_CFLAGS) $(CFLAGS) -c -o libgstshapewipe_la-gstshapewipe.lo `test -f 'gstshapewipe.c' || echo '$(srcdir)/'`gstshapewipe.c mostlyclean-libtool: -rm -f *.lo @@ -696,10 +693,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c index 83005a0..b8c91b5 100644 --- a/gst/shapewipe/gstshapewipe.c +++ b/gst/shapewipe/gstshapewipe.c @@ -46,6 +46,7 @@ #include #include +#include #include "gstshapewipe.h" @@ -136,12 +137,12 @@ gst_shape_wipe_base_init (gpointer g_class) "Adds a shape wipe transition to a video stream", "Sebastian Dröge "); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&video_sink_pad_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&mask_sink_pad_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&src_pad_template)); + gst_element_class_add_static_pad_template (gstelement_class, + &video_sink_pad_template); + gst_element_class_add_static_pad_template (gstelement_class, + &mask_sink_pad_template); + gst_element_class_add_static_pad_template (gstelement_class, + &src_pad_template); } static void diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in index f54a4a5..e6ceb90 100644 --- a/gst/smpte/Makefile.in +++ b/gst/smpte/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstsmpte_la_OBJECTS = libgstsmpte_la-gstsmpte.lo \ libgstsmpte_la-paint.lo libgstsmpte_la-gstsmptealpha.lo \ libgstsmpte_la-plugin.lo libgstsmpte_la_OBJECTS = $(am_libgstsmpte_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsmpte_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsmpte_la_SOURCES) DIST_SOURCES = $(libgstsmpte_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -555,7 +555,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsmpte.la: $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_DEPENDENCIES) +libgstsmpte.la: $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_DEPENDENCIES) $(EXTRA_libgstsmpte_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsmpte_la_LINK) -rpath $(plugindir) $(libgstsmpte_la_OBJECTS) $(libgstsmpte_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -574,74 +574,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsmpte_la-gstsmpte.lo: gstsmpte.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmpte.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmpte.Tpo -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstsmpte.Tpo $(DEPDIR)/libgstsmpte_la-gstsmpte.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmpte.c' object='libgstsmpte_la-gstsmpte.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmpte.c' object='libgstsmpte_la-gstsmpte.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmpte.lo `test -f 'gstsmpte.c' || echo '$(srcdir)/'`gstsmpte.c libgstsmpte_la-gstmask.lo: gstmask.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstmask.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstmask.Tpo -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstmask.Tpo $(DEPDIR)/libgstsmpte_la-gstmask.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmask.c' object='libgstsmpte_la-gstmask.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmask.c' object='libgstsmpte_la-gstmask.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstmask.lo `test -f 'gstmask.c' || echo '$(srcdir)/'`gstmask.c libgstsmpte_la-barboxwipes.lo: barboxwipes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-barboxwipes.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-barboxwipes.Tpo -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-barboxwipes.Tpo $(DEPDIR)/libgstsmpte_la-barboxwipes.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='barboxwipes.c' object='libgstsmpte_la-barboxwipes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='barboxwipes.c' object='libgstsmpte_la-barboxwipes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-barboxwipes.lo `test -f 'barboxwipes.c' || echo '$(srcdir)/'`barboxwipes.c libgstsmpte_la-paint.lo: paint.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-paint.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-paint.Tpo -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-paint.Tpo $(DEPDIR)/libgstsmpte_la-paint.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='paint.c' object='libgstsmpte_la-paint.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='paint.c' object='libgstsmpte_la-paint.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-paint.lo `test -f 'paint.c' || echo '$(srcdir)/'`paint.c libgstsmpte_la-gstsmptealpha.lo: gstsmptealpha.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-gstsmptealpha.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Tpo -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Tpo $(DEPDIR)/libgstsmpte_la-gstsmptealpha.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmptealpha.c' object='libgstsmpte_la-gstsmptealpha.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmptealpha.c' object='libgstsmpte_la-gstsmptealpha.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-gstsmptealpha.lo `test -f 'gstsmptealpha.c' || echo '$(srcdir)/'`gstsmptealpha.c libgstsmpte_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -MT libgstsmpte_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstsmpte_la-plugin.Tpo -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsmpte_la-plugin.Tpo $(DEPDIR)/libgstsmpte_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstsmpte_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstsmpte_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsmpte_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsmpte_la_CFLAGS) $(CFLAGS) -c -o libgstsmpte_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c mostlyclean-libtool: -rm -f *.lo @@ -748,10 +739,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index ce83234..4b21cd0 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -196,12 +196,12 @@ gst_smpte_base_init (GstSMPTEClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smpte_sink1_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smpte_sink2_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smpte_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_smpte_sink1_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smpte_sink2_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smpte_src_template); gst_element_class_set_details_simple (element_class, "SMPTE transitions", "Filter/Editor/Video", "Apply the standard SMPTE transitions on video images", diff --git a/gst/smpte/gstsmptealpha.c b/gst/smpte/gstsmptealpha.c index 030cb5d..3fb9ca8 100644 --- a/gst/smpte/gstsmptealpha.c +++ b/gst/smpte/gstsmptealpha.c @@ -163,10 +163,10 @@ gst_smpte_alpha_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smpte_alpha_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_smpte_alpha_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_smpte_alpha_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_smpte_alpha_src_template); gst_element_class_set_details_simple (element_class, "SMPTE transitions", "Filter/Editor/Video", "Apply the standard SMPTE transitions as alpha on video images", diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in index 3f00596..d667424 100644 --- a/gst/spectrum/Makefile.in +++ b/gst/spectrum/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstspectrum_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstspectrum_la_OBJECTS = libgstspectrum_la-gstspectrum.lo libgstspectrum_la_OBJECTS = $(am_libgstspectrum_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstspectrum_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstspectrum_la_SOURCES) DIST_SOURCES = $(libgstspectrum_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -554,7 +554,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstspectrum.la: $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_DEPENDENCIES) +libgstspectrum.la: $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_DEPENDENCIES) $(EXTRA_libgstspectrum_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstspectrum_la_LINK) -rpath $(plugindir) $(libgstspectrum_la_OBJECTS) $(libgstspectrum_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -568,34 +568,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstspectrum_la-gstspectrum.lo: gstspectrum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -MT libgstspectrum_la-gstspectrum.lo -MD -MP -MF $(DEPDIR)/libgstspectrum_la-gstspectrum.Tpo -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstspectrum_la-gstspectrum.Tpo $(DEPDIR)/libgstspectrum_la-gstspectrum.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstspectrum.c' object='libgstspectrum_la-gstspectrum.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstspectrum.c' object='libgstspectrum_la-gstspectrum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstspectrum_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstspectrum_la_CFLAGS) $(CFLAGS) -c -o libgstspectrum_la-gstspectrum.lo `test -f 'gstspectrum.c' || echo '$(srcdir)/'`gstspectrum.c mostlyclean-libtool: -rm -f *.lo @@ -702,10 +698,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index bc4fca4..4d7250b 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -1134,7 +1134,7 @@ gst_spectrum_transform_ip (GstBaseTransform * trans, GstBuffer * buffer) spectrum->message_ts += gst_util_uint64_scale (spectrum->num_frames, GST_SECOND, rate); - for (c = 0; c < channels; c++) { + for (c = 0; c < output_channels; c++) { cd = &spectrum->channel_data[c]; gst_spectrum_reset_message_data (spectrum, cd); } diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in index bda3e1c..d842e69 100644 --- a/gst/udp/Makefile.in +++ b/gst/udp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -75,8 +75,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -111,6 +110,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -125,8 +130,8 @@ am__objects_1 = libgstudp_la-gstudp-enumtypes.lo \ nodist_libgstudp_la_OBJECTS = $(am__objects_1) libgstudp_la_OBJECTS = $(am_libgstudp_la_OBJECTS) \ $(nodist_libgstudp_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstudp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -142,21 +147,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstudp_la_SOURCES) $(nodist_libgstudp_la_SOURCES) DIST_SOURCES = $(libgstudp_la_SOURCES) @@ -239,7 +244,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -314,7 +322,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -338,6 +345,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -372,18 +380,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -436,6 +436,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -470,7 +471,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -544,6 +544,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/gst-glib-gen.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -584,7 +585,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstudp.la: $(libgstudp_la_OBJECTS) $(libgstudp_la_DEPENDENCIES) +libgstudp.la: $(libgstudp_la_OBJECTS) $(libgstudp_la_DEPENDENCIES) $(EXTRA_libgstudp_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstudp_la_LINK) -rpath $(plugindir) $(libgstudp_la_OBJECTS) $(libgstudp_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -605,90 +606,79 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstudp_la-gstudp.lo: gstudp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp.Tpo -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp.Tpo $(DEPDIR)/libgstudp_la-gstudp.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudp.c' object='libgstudp_la-gstudp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudp.c' object='libgstudp_la-gstudp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp.lo `test -f 'gstudp.c' || echo '$(srcdir)/'`gstudp.c libgstudp_la-gstudpsrc.lo: gstudpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpsrc.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsrc.Tpo -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpsrc.Tpo $(DEPDIR)/libgstudp_la-gstudpsrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudpsrc.c' object='libgstudp_la-gstudpsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudpsrc.c' object='libgstudp_la-gstudpsrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsrc.lo `test -f 'gstudpsrc.c' || echo '$(srcdir)/'`gstudpsrc.c libgstudp_la-gstudpsink.lo: gstudpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpsink.Tpo -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpsink.Tpo $(DEPDIR)/libgstudp_la-gstudpsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudpsink.c' object='libgstudp_la-gstudpsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudpsink.c' object='libgstudp_la-gstudpsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpsink.lo `test -f 'gstudpsink.c' || echo '$(srcdir)/'`gstudpsink.c libgstudp_la-gstmultiudpsink.lo: gstmultiudpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstmultiudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstmultiudpsink.Tpo -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstmultiudpsink.Tpo $(DEPDIR)/libgstudp_la-gstmultiudpsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmultiudpsink.c' object='libgstudp_la-gstmultiudpsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmultiudpsink.c' object='libgstudp_la-gstmultiudpsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstmultiudpsink.lo `test -f 'gstmultiudpsink.c' || echo '$(srcdir)/'`gstmultiudpsink.c libgstudp_la-gstdynudpsink.lo: gstdynudpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstdynudpsink.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstdynudpsink.Tpo -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstdynudpsink.Tpo $(DEPDIR)/libgstudp_la-gstdynudpsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdynudpsink.c' object='libgstudp_la-gstdynudpsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdynudpsink.c' object='libgstudp_la-gstdynudpsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstdynudpsink.lo `test -f 'gstdynudpsink.c' || echo '$(srcdir)/'`gstdynudpsink.c libgstudp_la-gstudpnetutils.lo: gstudpnetutils.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudpnetutils.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudpnetutils.Tpo -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudpnetutils.Tpo $(DEPDIR)/libgstudp_la-gstudpnetutils.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudpnetutils.c' object='libgstudp_la-gstudpnetutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudpnetutils.c' object='libgstudp_la-gstudpnetutils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudpnetutils.lo `test -f 'gstudpnetutils.c' || echo '$(srcdir)/'`gstudpnetutils.c libgstudp_la-gstudp-enumtypes.lo: gstudp-enumtypes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Tpo $(DEPDIR)/libgstudp_la-gstudp-enumtypes.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudp-enumtypes.c' object='libgstudp_la-gstudp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudp-enumtypes.c' object='libgstudp_la-gstudp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-enumtypes.lo `test -f 'gstudp-enumtypes.c' || echo '$(srcdir)/'`gstudp-enumtypes.c libgstudp_la-gstudp-marshal.lo: gstudp-marshal.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -MT libgstudp_la-gstudp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstudp_la-gstudp-marshal.Tpo $(DEPDIR)/libgstudp_la-gstudp-marshal.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstudp-marshal.c' object='libgstudp_la-gstudp-marshal.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstudp-marshal.c' object='libgstudp_la-gstudp-marshal.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstudp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstudp_la_CFLAGS) $(CFLAGS) -c -o libgstudp_la-gstudp-marshal.lo `test -f 'gstudp-marshal.c' || echo '$(srcdir)/'`gstudp-marshal.c mostlyclean-libtool: -rm -f *.lo @@ -797,10 +787,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/udp/gstdynudpsink.c b/gst/udp/gstdynudpsink.c index d7b5678..18c58ca 100644 --- a/gst/udp/gstdynudpsink.c +++ b/gst/udp/gstdynudpsink.c @@ -129,8 +129,8 @@ gst_dynudpsink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); gst_element_class_set_details_simple (element_class, "UDP packet sender", "Sink/Network", diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index bcdb6cd..b65ab8c 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -41,6 +41,8 @@ #include #include +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (multiudpsink_debug); #define GST_CAT_DEFAULT (multiudpsink_debug) @@ -172,8 +174,7 @@ gst_multiudpsink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); + gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_set_details_simple (element_class, "UDP packet sender", "Sink/Network", @@ -214,7 +215,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) * of destinations. */ gst_multiudpsink_signals[SIGNAL_ADD] = - g_signal_new ("add", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + g_signal_new ("add", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, add), NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); @@ -228,7 +230,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) * clients. */ gst_multiudpsink_signals[SIGNAL_REMOVE] = - g_signal_new ("remove", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + g_signal_new ("remove", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, remove), NULL, NULL, gst_udp_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); @@ -239,7 +242,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) * Clear the list of clients. */ gst_multiudpsink_signals[SIGNAL_CLEAR] = - g_signal_new ("clear", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + g_signal_new ("clear", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, clear), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** @@ -254,7 +258,8 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) * connect_time (in epoch seconds), disconnect_time (in epoch seconds) */ gst_multiudpsink_signals[SIGNAL_GET_STATS] = - g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstMultiUDPSinkClass, get_stats), NULL, NULL, gst_udp_marshal_BOXED__STRING_INT, G_TYPE_VALUE_ARRAY, 2, G_TYPE_STRING, G_TYPE_INT); @@ -293,7 +298,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BYTES_SERVED, g_param_spec_uint64 ("bytes-served", "Bytes served", - "Total number of bytes send to all clients", 0, G_MAXUINT64, 0, + "Total number of bytes sent to all clients", 0, G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_SOCKFD, g_param_spec_int ("sockfd", "Socket Handle", diff --git a/gst/udp/gstudpnetutils.c b/gst/udp/gstudpnetutils.c index f488fcc..bdbffbc 100644 --- a/gst/udp/gstudpnetutils.c +++ b/gst/udp/gstudpnetutils.c @@ -374,7 +374,10 @@ gst_udp_parse_uri (const gchar * uristr, GstUDPUri * uri) gchar *location, *location_end; gchar *colptr; + /* consider no protocol to be udp:// */ protocol = gst_uri_get_protocol (uristr); + if (!protocol) + goto no_protocol; if (strcmp (protocol, "udp") != 0) goto wrong_protocol; g_free (protocol); @@ -425,6 +428,11 @@ gst_udp_parse_uri (const gchar * uristr, GstUDPUri * uri) return 0; /* ERRORS */ +no_protocol: + { + GST_ERROR ("error parsing uri %s: no protocol", uristr); + return -1; + } wrong_protocol: { GST_ERROR ("error parsing uri %s: wrong protocol (%s != udp)", uristr, diff --git a/gst/udp/gstudpnetutils.h b/gst/udp/gstudpnetutils.h index ec863bd..9b52ed9 100644 --- a/gst/udp/gstudpnetutils.h +++ b/gst/udp/gstudpnetutils.h @@ -29,7 +29,9 @@ #ifdef G_OS_WIN32 /* ws2_32.dll has getaddrinfo and freeaddrinfo on Windows XP and later. * minwg32 headers check WINVER before allowing the use of these */ +#ifndef WINVER #define WINVER 0x0501 +#endif #include #include #ifndef socklen_t diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c index 4363044..3377df2 100644 --- a/gst/udp/gstudpsrc.c +++ b/gst/udp/gstudpsrc.c @@ -218,8 +218,7 @@ gst_udpsrc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_details_simple (element_class, "UDP packet receiver", "Source/Network", @@ -484,12 +483,21 @@ retry: IOCTL_SOCKET (udpsrc->sock.fd, FIONREAD, &readsize)) < 0)) goto ioctl_failed; - /* if we get here and there is nothing to read from the socket, the select got - * woken up by activity on the socket but it was not a read. We know someone - * will also do something with the socket so that we don't go into an infinite - * loop in the select(). */ + /* If we get here and the readsize is zero, then either select was woken up + * by activity that is not a read, or a poll error occurred, or a UDP packet + * was received that has no data. Since we cannot identify which case it is, + * we handle all of them. This could possibly lead to a UDP packet getting + * lost, but since UDP is not reliable, we can accept this. */ if (G_UNLIKELY (!readsize)) { + /* try to read a packet (and it will be ignored), + * in case a packet with no data arrived */ + slen = sizeof (sa); + recvfrom (udpsrc->sock.fd, (char *) &slen, 0, 0, &sa.sa, &slen); + + /* clear any error, in case a poll error occurred */ clear_error (udpsrc); + + /* poll again */ goto retry; } @@ -533,7 +541,7 @@ no_select: /* patch pktdata and len when stripping off the headers */ if (G_UNLIKELY (udpsrc->skip_first_bytes != 0)) { - if (G_UNLIKELY (readsize <= udpsrc->skip_first_bytes)) + if (G_UNLIKELY (readsize < udpsrc->skip_first_bytes)) goto skip_error; pktdata += udpsrc->skip_first_bytes; diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in index fa68e90..17680da 100644 --- a/gst/videobox/Makefile.in +++ b/gst/videobox/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -89,8 +89,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -125,6 +124,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -136,8 +141,8 @@ am__objects_1 = libgstvideobox_la-tmp-orc.lo nodist_libgstvideobox_la_OBJECTS = $(am__objects_1) libgstvideobox_la_OBJECTS = $(am_libgstvideobox_la_OBJECTS) \ $(nodist_libgstvideobox_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideobox_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -153,21 +158,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideobox_la_SOURCES) \ $(nodist_libgstvideobox_la_SOURCES) @@ -251,7 +256,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -326,7 +334,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -350,6 +357,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -384,18 +392,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -448,6 +448,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -482,7 +483,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -558,6 +558,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -598,7 +599,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideobox.la: $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_DEPENDENCIES) +libgstvideobox.la: $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_DEPENDENCIES) $(EXTRA_libgstvideobox_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideobox_la_LINK) -rpath $(plugindir) $(libgstvideobox_la_OBJECTS) $(libgstvideobox_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -613,42 +614,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideobox_la-gstvideobox.lo: gstvideobox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-gstvideobox.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-gstvideobox.Tpo -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideobox_la-gstvideobox.Tpo $(DEPDIR)/libgstvideobox_la-gstvideobox.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideobox.c' object='libgstvideobox_la-gstvideobox.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideobox.c' object='libgstvideobox_la-gstvideobox.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-gstvideobox.lo `test -f 'gstvideobox.c' || echo '$(srcdir)/'`gstvideobox.c libgstvideobox_la-tmp-orc.lo: tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -MT libgstvideobox_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideobox_la-tmp-orc.Tpo -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideobox_la-tmp-orc.Tpo $(DEPDIR)/libgstvideobox_la-tmp-orc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstvideobox_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvideobox_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideobox_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideobox_la_CFLAGS) $(CFLAGS) -c -o libgstvideobox_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -760,10 +756,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index f985488..213aa9e 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -66,6 +66,8 @@ #include +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (videobox_debug); #define GST_CAT_DEFAULT videobox_debug @@ -2466,10 +2468,10 @@ gst_video_box_base_init (gpointer g_class) "Resizes a video by adding borders or cropping", "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_box_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_box_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_box_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_box_src_template); } static void @@ -3272,8 +3274,8 @@ static void gst_video_box_process (GstVideoBox * video_box, const guint8 * src, guint8 * dest) { - guint b_alpha = CLAMP (video_box->border_alpha * 256, 0, 256); - guint i_alpha = CLAMP (video_box->alpha * 256, 0, 256); + guint b_alpha = CLAMP (video_box->border_alpha * 256, 0, 255); + guint i_alpha = CLAMP (video_box->alpha * 256, 0, 255); GstVideoBoxFill fill_type = video_box->fill_type; gint br, bl, bt, bb, crop_w, crop_h; diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c index 6e9cd10..1e00246 100644 --- a/gst/videobox/gstvideoboxorc-dist.c +++ b/gst/videobox/gstvideoboxorc-dist.c @@ -181,7 +181,7 @@ void orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in index 2464329..506a237 100644 --- a/gst/videocrop/Makefile.in +++ b/gst/videocrop/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstvideocrop_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgstvideocrop_la_OBJECTS = libgstvideocrop_la-gstvideocrop.lo \ libgstvideocrop_la-gstaspectratiocrop.lo libgstvideocrop_la_OBJECTS = $(am_libgstvideocrop_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideocrop_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideocrop_la_SOURCES) DIST_SOURCES = $(libgstvideocrop_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -553,7 +553,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideocrop.la: $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_DEPENDENCIES) +libgstvideocrop.la: $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_DEPENDENCIES) $(EXTRA_libgstvideocrop_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideocrop_la_LINK) -rpath $(plugindir) $(libgstvideocrop_la_OBJECTS) $(libgstvideocrop_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -568,42 +568,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideocrop_la-gstvideocrop.lo: gstvideocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstvideocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Tpo -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Tpo $(DEPDIR)/libgstvideocrop_la-gstvideocrop.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideocrop.c' object='libgstvideocrop_la-gstvideocrop.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideocrop.c' object='libgstvideocrop_la-gstvideocrop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstvideocrop.lo `test -f 'gstvideocrop.c' || echo '$(srcdir)/'`gstvideocrop.c libgstvideocrop_la-gstaspectratiocrop.lo: gstaspectratiocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -MT libgstvideocrop_la-gstaspectratiocrop.lo -MD -MP -MF $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Tpo -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Tpo $(DEPDIR)/libgstvideocrop_la-gstaspectratiocrop.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaspectratiocrop.c' object='libgstvideocrop_la-gstaspectratiocrop.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaspectratiocrop.c' object='libgstvideocrop_la-gstaspectratiocrop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideocrop_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideocrop_la_CFLAGS) $(CFLAGS) -c -o libgstvideocrop_la-gstaspectratiocrop.lo `test -f 'gstaspectratiocrop.c' || echo '$(srcdir)/'`gstaspectratiocrop.c mostlyclean-libtool: -rm -f *.lo @@ -710,10 +705,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videocrop/gstaspectratiocrop.c b/gst/videocrop/gstaspectratiocrop.c index d932b22..150df37 100644 --- a/gst/videocrop/gstaspectratiocrop.c +++ b/gst/videocrop/gstaspectratiocrop.c @@ -43,6 +43,8 @@ #include "gstaspectratiocrop.h" +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (aspect_ratio_crop_debug); #define GST_CAT_DEFAULT aspect_ratio_crop_debug @@ -169,10 +171,8 @@ gst_aspect_ratio_crop_base_init (gpointer g_class) "Crops video into a user-defined aspect-ratio", "Thijs Vermeir "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); } static void diff --git a/gst/videocrop/gstvideocrop.c b/gst/videocrop/gstvideocrop.c index 7100bee..04b6e61 100644 --- a/gst/videocrop/gstvideocrop.c +++ b/gst/videocrop/gstvideocrop.c @@ -147,10 +147,9 @@ gst_video_crop_base_init (gpointer g_class) "Crops video into a user-defined region", "Tim-Philipp Müller "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); + gst_element_class_add_static_pad_template (element_class, + &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); } static gboolean diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in index bfaf6bb..c49db72 100644 --- a/gst/videofilter/Makefile.in +++ b/gst/videofilter/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstvideofilter_la_OBJECTS = libgstvideofilter_la-plugin.lo \ libgstvideofilter_la-gstvideobalance.lo \ libgstvideofilter_la-gstgamma.lo libgstvideofilter_la_OBJECTS = $(am_libgstvideofilter_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideofilter_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideofilter_la_SOURCES) DIST_SOURCES = $(libgstvideofilter_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -566,7 +566,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideofilter.la: $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_DEPENDENCIES) +libgstvideofilter.la: $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_DEPENDENCIES) $(EXTRA_libgstvideofilter_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideofilter_la_LINK) -rpath $(plugindir) $(libgstvideofilter_la_OBJECTS) $(libgstvideofilter_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -583,58 +583,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideofilter_la-plugin.lo: plugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-plugin.Tpo -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-plugin.Tpo $(DEPDIR)/libgstvideofilter_la-plugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstvideofilter_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstvideofilter_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c libgstvideofilter_la-gstvideoflip.lo: gstvideoflip.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideoflip.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Tpo -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Tpo $(DEPDIR)/libgstvideofilter_la-gstvideoflip.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideoflip.c' object='libgstvideofilter_la-gstvideoflip.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoflip.c' object='libgstvideofilter_la-gstvideoflip.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideoflip.lo `test -f 'gstvideoflip.c' || echo '$(srcdir)/'`gstvideoflip.c libgstvideofilter_la-gstvideobalance.lo: gstvideobalance.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstvideobalance.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Tpo -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Tpo $(DEPDIR)/libgstvideofilter_la-gstvideobalance.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideobalance.c' object='libgstvideofilter_la-gstvideobalance.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideobalance.c' object='libgstvideofilter_la-gstvideobalance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstvideobalance.lo `test -f 'gstvideobalance.c' || echo '$(srcdir)/'`gstvideobalance.c libgstvideofilter_la-gstgamma.lo: gstgamma.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -MT libgstvideofilter_la-gstgamma.lo -MD -MP -MF $(DEPDIR)/libgstvideofilter_la-gstgamma.Tpo -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideofilter_la-gstgamma.Tpo $(DEPDIR)/libgstvideofilter_la-gstgamma.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgamma.c' object='libgstvideofilter_la-gstgamma.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgamma.c' object='libgstvideofilter_la-gstgamma.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideofilter_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideofilter_la_CFLAGS) $(CFLAGS) -c -o libgstvideofilter_la-gstgamma.lo `test -f 'gstgamma.c' || echo '$(srcdir)/'`gstgamma.c mostlyclean-libtool: -rm -f *.lo @@ -741,10 +734,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c index 86663b6..76d60b6 100644 --- a/gst/videofilter/gstgamma.c +++ b/gst/videofilter/gstgamma.c @@ -139,12 +139,13 @@ gst_gamma_base_init (gpointer g_class) gst_element_class_set_details_simple (element_class, "Video gamma correction", "Filter/Effect/Video", - "Adjusts gamma on a video stream", "Arwed v. Merkatz "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_gamma_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_gamma_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_gamma_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_gamma_src_template); } static void diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c index 184b893..83a2afd 100644 --- a/gst/videofilter/gstvideobalance.c +++ b/gst/videofilter/gstvideobalance.c @@ -533,10 +533,10 @@ gst_video_balance_base_init (gpointer g_class) "Adjusts brightness, contrast, hue, saturation on a video stream", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_balance_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_balance_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_balance_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_balance_src_template); } static void diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c index 47ab784..7137057 100644 --- a/gst/videofilter/gstvideoflip.c +++ b/gst/videofilter/gstvideoflip.c @@ -1051,10 +1051,10 @@ gst_video_flip_base_init (gpointer g_class) "Filter/Effect/Video", "Flips and rotates video", "David Schleef "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_flip_sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_video_flip_src_template)); + gst_element_class_add_static_pad_template (element_class, + &gst_video_flip_sink_template); + gst_element_class_add_static_pad_template (element_class, + &gst_video_flip_src_template); } static void diff --git a/gst/videomixer/Makefile.am b/gst/videomixer/Makefile.am index 4a9ac7b..0cda826 100644 --- a/gst/videomixer/Makefile.am +++ b/gst/videomixer/Makefile.am @@ -6,14 +6,11 @@ include $(top_srcdir)/common/orc.mak libgstvideomixer_la_SOURCES = \ videomixer.c \ blend.c \ - videomixer2.c \ - gstcollectpads2.c + videomixer2.c nodist_libgstvideomixer_la_SOURCES = $(ORC_NODIST_SOURCES) libgstvideomixer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ - $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) \ - -DGstCollectPads2=GstVideoMixer2Pads \ - -DGstCollectPads2Class=GstVideoMixer2PadsClass + $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstvideo-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) $(GST_LIBS) $(ORC_LIBS) @@ -26,8 +23,7 @@ noinst_HEADERS = \ videomixerpad.h \ blend.h \ videomixer2.h \ - videomixer2pad.h \ - gstcollectpads2.h + videomixer2pad.h Android.mk: Makefile.am $(BUILT_SOURCES) androgenizer \ diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in index cb92dee..d6445e3 100644 --- a/gst/videomixer/Makefile.in +++ b/gst/videomixer/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -89,8 +89,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -125,6 +124,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -133,14 +138,13 @@ libgstvideomixer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libgstvideomixer_la_OBJECTS = libgstvideomixer_la-videomixer.lo \ libgstvideomixer_la-blend.lo \ - libgstvideomixer_la-videomixer2.lo \ - libgstvideomixer_la-gstcollectpads2.lo + libgstvideomixer_la-videomixer2.lo am__objects_1 = libgstvideomixer_la-tmp-orc.lo nodist_libgstvideomixer_la_OBJECTS = $(am__objects_1) libgstvideomixer_la_OBJECTS = $(am_libgstvideomixer_la_OBJECTS) \ $(nodist_libgstvideomixer_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideomixer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -156,21 +160,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideomixer_la_SOURCES) \ $(nodist_libgstvideomixer_la_SOURCES) @@ -254,7 +258,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -329,7 +336,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -353,6 +359,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -387,18 +394,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -451,6 +450,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -485,7 +485,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -520,14 +519,11 @@ cp_v_gen_0 = @echo " CP $@"; libgstvideomixer_la_SOURCES = \ videomixer.c \ blend.c \ - videomixer2.c \ - gstcollectpads2.c + videomixer2.c nodist_libgstvideomixer_la_SOURCES = $(ORC_NODIST_SOURCES) libgstvideomixer_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ - $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) \ - -DGstCollectPads2=GstVideoMixer2Pads \ - -DGstCollectPads2Class=GstVideoMixer2PadsClass + $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS) libgstvideomixer_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstvideo-@GST_MAJORMINOR@ \ @@ -542,8 +538,7 @@ noinst_HEADERS = \ videomixerpad.h \ blend.h \ videomixer2.h \ - videomixer2pad.h \ - gstcollectpads2.h + videomixer2pad.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -571,6 +566,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/orc.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -611,7 +607,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideomixer.la: $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_DEPENDENCIES) +libgstvideomixer.la: $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_DEPENDENCIES) $(EXTRA_libgstvideomixer_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideomixer_la_LINK) -rpath $(plugindir) $(libgstvideomixer_la_OBJECTS) $(libgstvideomixer_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -621,7 +617,6 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-blend.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-gstcollectpads2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-tmp-orc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-videomixer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideomixer_la-videomixer2.Plo@am__quote@ @@ -629,66 +624,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideomixer_la-videomixer.lo: videomixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videomixer.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videomixer.Tpo -c -o libgstvideomixer_la-videomixer.lo `test -f 'videomixer.c' || echo '$(srcdir)/'`videomixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-videomixer.Tpo $(DEPDIR)/libgstvideomixer_la-videomixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videomixer.c' object='libgstvideomixer_la-videomixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videomixer.c' object='libgstvideomixer_la-videomixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer.lo `test -f 'videomixer.c' || echo '$(srcdir)/'`videomixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer.lo `test -f 'videomixer.c' || echo '$(srcdir)/'`videomixer.c libgstvideomixer_la-blend.lo: blend.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-blend.Tpo -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-blend.Tpo $(DEPDIR)/libgstvideomixer_la-blend.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='blend.c' object='libgstvideomixer_la-blend.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='blend.c' object='libgstvideomixer_la-blend.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-blend.lo `test -f 'blend.c' || echo '$(srcdir)/'`blend.c libgstvideomixer_la-videomixer2.lo: videomixer2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-videomixer2.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-videomixer2.Tpo $(DEPDIR)/libgstvideomixer_la-videomixer2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videomixer2.c' object='libgstvideomixer_la-videomixer2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videomixer2.c' object='libgstvideomixer_la-videomixer2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c - -libgstvideomixer_la-gstcollectpads2.lo: gstcollectpads2.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-gstcollectpads2.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-gstcollectpads2.Tpo -c -o libgstvideomixer_la-gstcollectpads2.lo `test -f 'gstcollectpads2.c' || echo '$(srcdir)/'`gstcollectpads2.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-gstcollectpads2.Tpo $(DEPDIR)/libgstvideomixer_la-gstcollectpads2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcollectpads2.c' object='libgstvideomixer_la-gstcollectpads2.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-gstcollectpads2.lo `test -f 'gstcollectpads2.c' || echo '$(srcdir)/'`gstcollectpads2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-videomixer2.lo `test -f 'videomixer2.c' || echo '$(srcdir)/'`videomixer2.c libgstvideomixer_la-tmp-orc.lo: tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -MT libgstvideomixer_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideomixer_la-tmp-orc.Tpo -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideomixer_la-tmp-orc.Tpo $(DEPDIR)/libgstvideomixer_la-tmp-orc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstvideomixer_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvideomixer_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideomixer_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideomixer_la_CFLAGS) $(CFLAGS) -c -o libgstvideomixer_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c mostlyclean-libtool: -rm -f *.lo @@ -800,10 +780,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/videomixer/blendorc-dist.c b/gst/videomixer/blendorc-dist.c index 21b6ae1..ee783d8 100644 --- a/gst/videomixer/blendorc-dist.c +++ b/gst/videomixer/blendorc-dist.c @@ -193,7 +193,7 @@ void orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -285,7 +285,7 @@ orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -438,7 +438,7 @@ orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -742,7 +742,7 @@ orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1076,7 +1076,7 @@ orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -1562,7 +1562,7 @@ orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); @@ -2086,7 +2086,7 @@ orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) { OrcExecutor _ex, *ex = &_ex; - static int p_inited = 0; + static volatile int p_inited = 0; static OrcProgram *p = 0; void (*func) (OrcExecutor *); diff --git a/gst/videomixer/gstcollectpads2.c b/gst/videomixer/gstcollectpads2.c deleted file mode 100644 index 8ac21d3..0000000 --- a/gst/videomixer/gstcollectpads2.c +++ /dev/null @@ -1,1932 +0,0 @@ -/* GStreamer - * Copyright (C) 2005 Wim Taymans - * Copyright (C) 2008 Mark Nauwelaerts - * Copyright (C) 2010 Sebastian Dröge - * - * gstcollectpads2.c: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/** - * SECTION:gstcollectpads2 - * @short_description: manages a set of pads that operate in collect mode - * @see_also: - * - * Manages a set of pads that operate in collect mode. This means that control - * is given to the manager of this object when all pads have data. - * - * - * Collectpads are created with gst_collect_pads2_new(). A callback should then - * be installed with gst_collect_pads2_set_function (). - * - * - * Pads are added to the collection with gst_collect_pads2_add_pad()/ - * gst_collect_pads2_remove_pad(). The pad - * has to be a sinkpad. The chain and event functions of the pad are - * overridden. The element_private of the pad is used to store - * private information for the collectpads. - * - * - * For each pad, data is queued in the _chain function or by - * performing a pull_range. - * - * - * When data is queued on all pads in waiting mode, the callback function is called. - * - * - * Data can be dequeued from the pad with the gst_collect_pads2_pop() method. - * One can peek at the data with the gst_collect_pads2_peek() function. - * These functions will return NULL if the pad received an EOS event. When all - * pads return NULL from a gst_collect_pads2_peek(), the element can emit an EOS - * event itself. - * - * - * Data can also be dequeued in byte units using the gst_collect_pads2_available(), - * gst_collect_pads2_read() and gst_collect_pads2_flush() calls. - * - * - * Elements should call gst_collect_pads2_start() and gst_collect_pads2_stop() in - * their state change functions to start and stop the processing of the collectpads. - * The gst_collect_pads2_stop() call should be called before calling the parent - * element state change function in the PAUSED_TO_READY state change to ensure - * no pad is blocked and the element can finish streaming. - * - * - * gst_collect_pads2_collect() and gst_collect_pads2_collect_range() can be used by - * elements that start a #GstTask to drive the collect_pads2. This feature is however - * not yet implemented. - * - * - * gst_collect_pads2_set_waiting() sets a pad to waiting or non-waiting mode. - * CollectPads element is not waiting for data to be collected on non-waiting pads. - * Thus these pads may but need not have data when the callback is called. - * All pads are in waiting mode by default. - * - * - * - * Last reviewed on 2008-03-14 (0.10.17) - */ - -#include "gstcollectpads2.h" - -GST_DEBUG_CATEGORY_STATIC (collect_pads2_debug); -#define GST_CAT_DEFAULT collect_pads2_debug - -GST_BOILERPLATE (GstCollectPads2, gst_collect_pads2, GstObject, - GST_TYPE_OBJECT); - -static void gst_collect_pads2_clear (GstCollectPads2 * pads, - GstCollectData2 * data); -static GstFlowReturn gst_collect_pads2_chain (GstPad * pad, GstBuffer * buffer); -static gboolean gst_collect_pads2_event (GstPad * pad, GstEvent * event); -static void gst_collect_pads2_finalize (GObject * object); -static GstFlowReturn gst_collect_pads2_default_collected (GstCollectPads2 * - pads, gpointer user_data); -static gint gst_collect_pads2_default_compare_func (GstCollectPads2 * pads, - GstCollectData2 * data1, GstClockTime timestamp1, GstCollectData2 * data2, - GstClockTime timestamp2, gpointer user_data); -static gboolean gst_collect_pads2_recalculate_full (GstCollectPads2 * pads); -static void ref_data (GstCollectData2 * data); -static void unref_data (GstCollectData2 * data); - -/* Some properties are protected by LOCK, others by STREAM_LOCK - * However, manipulating either of these partitions may require - * to signal/wake a _WAIT, so use a separate (sort of) event to prevent races - * Alternative implementations are possible, e.g. some low-level re-implementing - * of the 2 above locks to drop both of them atomically when going into _WAIT. - */ -#define GST_COLLECT_PADS2_GET_EVT_COND(pads) (((GstCollectPads2 *)pads)->evt_cond) -#define GST_COLLECT_PADS2_GET_EVT_LOCK(pads) (((GstCollectPads2 *)pads)->evt_lock) -#define GST_COLLECT_PADS2_EVT_WAIT(pads, cookie) G_STMT_START { \ - g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ - /* should work unless a lot of event'ing and thread starvation */\ - while (cookie == ((GstCollectPads2 *) pads)->evt_cookie) \ - g_cond_wait (GST_COLLECT_PADS2_GET_EVT_COND (pads), \ - GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ - cookie = ((GstCollectPads2 *) pads)->evt_cookie; \ - g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ -} G_STMT_END -#define GST_COLLECT_PADS2_EVT_WAIT_TIMED(pads, cookie, timeout) G_STMT_START { \ - GTimeVal __tv; \ - \ - g_get_current_time (&tv); \ - g_time_val_add (&tv, timeout); \ - \ - g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ - /* should work unless a lot of event'ing and thread starvation */\ - while (cookie == ((GstCollectPads2 *) pads)->evt_cookie) \ - g_cond_timed_wait (GST_COLLECT_PADS2_GET_EVT_COND (pads), \ - GST_COLLECT_PADS2_GET_EVT_LOCK (pads), &tv); \ - cookie = ((GstCollectPads2 *) pads)->evt_cookie; \ - g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ -} G_STMT_END -#define GST_COLLECT_PADS2_EVT_BROADCAST(pads) G_STMT_START { \ - g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ - /* never mind wrap-around */ \ - ++(((GstCollectPads2 *) pads)->evt_cookie); \ - g_cond_broadcast (GST_COLLECT_PADS2_GET_EVT_COND (pads)); \ - g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ -} G_STMT_END -#define GST_COLLECT_PADS2_EVT_INIT(cookie) G_STMT_START { \ - g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ - cookie = ((GstCollectPads2 *) pads)->evt_cookie; \ - g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads)); \ -} G_STMT_END - -static void -gst_collect_pads2_base_init (gpointer g_class) -{ - /* Do nothing here */ -} - -static void -gst_collect_pads2_class_init (GstCollectPads2Class * klass) -{ - GObjectClass *gobject_class = (GObjectClass *) klass; - - GST_DEBUG_CATEGORY_INIT (collect_pads2_debug, "collectpads2", 0, - "GstCollectPads2"); - - gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_collect_pads2_finalize); -} - -static void -gst_collect_pads2_init (GstCollectPads2 * pads, GstCollectPads2Class * g_class) -{ - pads->data = NULL; - pads->cookie = 0; - pads->numpads = 0; - pads->queuedpads = 0; - pads->eospads = 0; - pads->started = FALSE; - - g_static_rec_mutex_init (&pads->stream_lock); - - pads->func = gst_collect_pads2_default_collected; - pads->user_data = NULL; - pads->event_func = NULL; - pads->event_user_data = NULL; - - pads->prepare_buffer_func = NULL; - pads->prepare_buffer_user_data = NULL; - - /* members for default muxing */ - pads->buffer_func = NULL; - pads->buffer_user_data = NULL; - pads->compare_func = gst_collect_pads2_default_compare_func; - pads->compare_user_data = NULL; - pads->earliest_data = NULL; - pads->earliest_time = GST_CLOCK_TIME_NONE; - - /* members to manage the pad list */ - pads->pad_cookie = 0; - pads->pad_list = NULL; - - /* members for event */ - pads->evt_lock = g_mutex_new (); - pads->evt_cond = g_cond_new (); - pads->evt_cookie = 0; -} - -static void -gst_collect_pads2_finalize (GObject * object) -{ - GstCollectPads2 *pads = GST_COLLECT_PADS2 (object); - - GST_DEBUG_OBJECT (object, "finalize"); - - g_static_rec_mutex_free (&pads->stream_lock); - - g_cond_free (pads->evt_cond); - g_mutex_free (pads->evt_lock); - - /* Remove pads and free pads list */ - g_slist_foreach (pads->pad_list, (GFunc) unref_data, NULL); - g_slist_foreach (pads->data, (GFunc) unref_data, NULL); - g_slist_free (pads->data); - g_slist_free (pads->pad_list); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -/** - * gst_collect_pads2_new: - * - * Create a new instance of #GstCollectsPads. - * - * Returns: a new #GstCollectPads2, or NULL in case of an error. - * - * MT safe. - */ -GstCollectPads2 * -gst_collect_pads2_new (void) -{ - GstCollectPads2 *newcoll; - - newcoll = g_object_new (GST_TYPE_COLLECT_PADS2, NULL); - - return newcoll; -} - -/** - * gst_collect_pads2_set_prepare_buffer_function: - * @pads: the collectpads to use - * @func: the function to set - * @user_data: user data passed to the function - * - * Set the callback function and user data that will be called - * for every buffer that arrives. - * - * MT safe. - */ -void -gst_collect_pads2_set_prepare_buffer_function (GstCollectPads2 * pads, - GstCollectPads2BufferFunction func, gpointer user_data) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_OBJECT_LOCK (pads); - pads->prepare_buffer_func = func; - pads->prepare_buffer_user_data = user_data; - GST_OBJECT_UNLOCK (pads); -} - -/* Must be called with GstObject lock! */ -static void -gst_collect_pads2_set_buffer_function_locked (GstCollectPads2 * pads, - GstCollectPads2BufferFunction func, gpointer user_data) -{ - pads->buffer_func = func; - pads->buffer_user_data = user_data; -} - -/** - * gst_collect_pads2_set_buffer_function: - * @pads: the collectpads to use - * @func: the function to set - * @user_data: user data passed to the function - * - * Set the callback function and user data that will be called with - * the oldest buffer when all pads have been collected. - * - * MT safe. - */ -void -gst_collect_pads2_set_buffer_function (GstCollectPads2 * pads, - GstCollectPads2BufferFunction func, gpointer user_data) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_OBJECT_LOCK (pads); - gst_collect_pads2_set_buffer_function_locked (pads, func, user_data); - GST_OBJECT_UNLOCK (pads); -} - -/** - * gst_collect_pads2_set_compare_function: - * @pads: the pads to use - * @func: the function to set - * @user_data: user data passed to the function - * - * Set the timestamp comparison function. - * - * MT safe. - */ -/* NOTE allowing to change comparison seems not advisable; -no known use-case, and collaboration with default algorithm is unpredictable. -If custom compairing/operation is needed, just use a collect function of -your own */ -void -gst_collect_pads2_set_compare_function (GstCollectPads2 * pads, - GstCollectPads2CompareFunction func, gpointer user_data) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_OBJECT_LOCK (pads); - pads->compare_func = func; - pads->compare_user_data = user_data; - GST_OBJECT_UNLOCK (pads); -} - -/** - * gst_collect_pads2_set_function: - * @pads: the collectspads to use - * @func: the function to set - * @user_data: user data passed to the function - * - * CollectPads provides a default collection algorithm that will determine - * the oldest buffer available on all of its pads, and then delegate - * to a configured callback. - * However, if circumstances are more complicated and/or more control - * is desired, this sets a callback that will be invoked instead when - * all the pads added to the collection have buffers queued. - * Evidently, this callback is not compatible with - * gst_collect_pads2_set_buffer_function() callback. - * If this callback is set, the former will be unset. - * - * MT safe. - */ -void -gst_collect_pads2_set_function (GstCollectPads2 * pads, - GstCollectPads2Function func, gpointer user_data) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_OBJECT_LOCK (pads); - pads->func = func; - pads->user_data = user_data; - gst_collect_pads2_set_buffer_function_locked (pads, NULL, NULL); - GST_OBJECT_UNLOCK (pads); -} - -static void -ref_data (GstCollectData2 * data) -{ - g_assert (data != NULL); - - g_atomic_int_inc (&(data->refcount)); -} - -static void -unref_data (GstCollectData2 * data) -{ - g_assert (data != NULL); - g_assert (data->refcount > 0); - - if (!g_atomic_int_dec_and_test (&(data->refcount))) - return; - - if (data->destroy_notify) - data->destroy_notify (data); - - g_object_unref (data->pad); - if (data->buffer) { - gst_buffer_unref (data->buffer); - } - g_free (data); -} - -/** - * gst_collect_pads2_set_event_function: - * @pads: the collectspads to use - * @func: the function to set - * @user_data: user data passed to the function - * - * Set the event callback function and user data that will be called after - * collectpads has processed and event originating from one of the collected - * pads. If the event being processed is a serialized one, this callback is - * called with @pads STREAM_LOCK held, otherwise not. As this lock should be - * held when calling a number of CollectPads functions, it should be acquired - * if so (unusually) needed. - * - * MT safe. - */ -void -gst_collect_pads2_set_event_function (GstCollectPads2 * pads, - GstCollectPads2EventFunction func, gpointer user_data) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_OBJECT_LOCK (pads); - pads->event_func = func; - pads->event_user_data = user_data; - GST_OBJECT_UNLOCK (pads); -} - -/** - * gst_collect_pads2_add_pad: - * @pads: the collectspads to use - * @pad: the pad to add - * @size: the size of the returned #GstCollectData2 structure - * - * Add a pad to the collection of collect pads. The pad has to be - * a sinkpad. The refcount of the pad is incremented. Use - * gst_collect_pads2_remove_pad() to remove the pad from the collection - * again. - * - * You specify a size for the returned #GstCollectData2 structure - * so that you can use it to store additional information. - * - * The pad will be automatically activated in push mode when @pads is - * started. - * - * This function calls gst_collect_pads2_add_pad() passing a value of NULL - * for destroy_notify and TRUE for locked. - * - * Returns: a new #GstCollectData2 to identify the new pad. Or NULL - * if wrong parameters are supplied. - * - * MT safe. - */ -GstCollectData2 * -gst_collect_pads2_add_pad (GstCollectPads2 * pads, GstPad * pad, guint size) -{ - return gst_collect_pads2_add_pad_full (pads, pad, size, NULL, TRUE); -} - -/** - * gst_collect_pads2_add_pad_full: - * @pads: the collectspads to use - * @pad: the pad to add - * @size: the size of the returned #GstCollectData2 structure - * @destroy_notify: function to be called before the returned #GstCollectData2 - * structure is freed - * @lock: whether to lock this pad in usual waiting state - * - * Add a pad to the collection of collect pads. The pad has to be - * a sinkpad. The refcount of the pad is incremented. Use - * gst_collect_pads2_remove_pad() to remove the pad from the collection - * again. - * - * You specify a size for the returned #GstCollectData2 structure - * so that you can use it to store additional information. - * - * You can also specify a #GstCollectData2DestroyNotify that will be called - * just before the #GstCollectData2 structure is freed. It is passed the - * pointer to the structure and should free any custom memory and resources - * allocated for it. - * - * Keeping a pad locked in waiting state is only relevant when using - * the default collection algorithm (providing the oldest buffer). - * It ensures a buffer must be available on this pad for a collection - * to take place. This is of typical use to a muxer element where - * non-subtitle streams should always be in waiting state, - * e.g. to assure that caps information is available on all these streams - * when initial headers have to be written. - * - * The pad will be automatically activated in push mode when @pads is - * started. - * - * Since: 0.10.12 - * - * Returns: a new #GstCollectData2 to identify the new pad. Or NULL - * if wrong parameters are supplied. - * - * MT safe. - */ -GstCollectData2 * -gst_collect_pads2_add_pad_full (GstCollectPads2 * pads, GstPad * pad, - guint size, GstCollectData2DestroyNotify destroy_notify, gboolean lock) -{ - GstCollectData2 *data; - - g_return_val_if_fail (pads != NULL, NULL); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL); - g_return_val_if_fail (pad != NULL, NULL); - g_return_val_if_fail (GST_PAD_IS_SINK (pad), NULL); - g_return_val_if_fail (size >= sizeof (GstCollectData2), NULL); - - GST_DEBUG_OBJECT (pads, "adding pad %s:%s", GST_DEBUG_PAD_NAME (pad)); - - data = g_malloc0 (size); - data->collect = pads; - data->pad = gst_object_ref (pad); - data->buffer = NULL; - data->pos = 0; - gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED); - data->state = GST_COLLECT_PADS2_STATE_WAITING; - data->state |= lock ? GST_COLLECT_PADS2_STATE_LOCKED : 0; - data->refcount = 1; - data->destroy_notify = destroy_notify; - - GST_OBJECT_LOCK (pads); - GST_OBJECT_LOCK (pad); - gst_pad_set_element_private (pad, data); - GST_OBJECT_UNLOCK (pad); - pads->pad_list = g_slist_append (pads->pad_list, data); - gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads2_chain)); - gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads2_event)); - /* backward compat, also add to data if stopped, so that the element already - * has this in the public data list before going PAUSED (typically) - * this can only be done when we are stopped because we don't take the - * STREAM_LOCK to protect the pads->data list. */ - if (!pads->started) { - pads->data = g_slist_append (pads->data, data); - ref_data (data); - } - /* activate the pad when needed */ - if (pads->started) - gst_pad_set_active (pad, TRUE); - pads->pad_cookie++; - GST_OBJECT_UNLOCK (pads); - - return data; -} - -static gint -find_pad (GstCollectData2 * data, GstPad * pad) -{ - if (data->pad == pad) - return 0; - return 1; -} - -/** - * gst_collect_pads2_remove_pad: - * @pads: the collectspads to use - * @pad: the pad to remove - * - * Remove a pad from the collection of collect pads. This function will also - * free the #GstCollectData2 and all the resources that were allocated with - * gst_collect_pads2_add_pad(). - * - * The pad will be deactivated automatically when @pads is stopped. - * - * Returns: %TRUE if the pad could be removed. - * - * MT safe. - */ -gboolean -gst_collect_pads2_remove_pad (GstCollectPads2 * pads, GstPad * pad) -{ - GstCollectData2 *data; - GSList *list; - - g_return_val_if_fail (pads != NULL, FALSE); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), FALSE); - g_return_val_if_fail (pad != NULL, FALSE); - g_return_val_if_fail (GST_IS_PAD (pad), FALSE); - - GST_DEBUG_OBJECT (pads, "removing pad %s:%s", GST_DEBUG_PAD_NAME (pad)); - - GST_OBJECT_LOCK (pads); - list = g_slist_find_custom (pads->pad_list, pad, (GCompareFunc) find_pad); - if (!list) - goto unknown_pad; - - data = (GstCollectData2 *) list->data; - - GST_DEBUG_OBJECT (pads, "found pad %s:%s at %p", GST_DEBUG_PAD_NAME (pad), - data); - - /* clear the stuff we configured */ - gst_pad_set_chain_function (pad, NULL); - gst_pad_set_event_function (pad, NULL); - GST_OBJECT_LOCK (pad); - gst_pad_set_element_private (pad, NULL); - GST_OBJECT_UNLOCK (pad); - - /* backward compat, also remove from data if stopped, note that this function - * can only be called when we are stopped because we don't take the - * STREAM_LOCK to protect the pads->data list. */ - if (!pads->started) { - GSList *dlist; - - dlist = g_slist_find_custom (pads->data, pad, (GCompareFunc) find_pad); - if (dlist) { - GstCollectData2 *pdata = dlist->data; - - pads->data = g_slist_delete_link (pads->data, dlist); - unref_data (pdata); - } - } - /* remove from the pad list */ - pads->pad_list = g_slist_delete_link (pads->pad_list, list); - pads->pad_cookie++; - - /* signal waiters because something changed */ - GST_COLLECT_PADS2_EVT_BROADCAST (pads); - - /* deactivate the pad when needed */ - if (!pads->started) - gst_pad_set_active (pad, FALSE); - - /* clean and free the collect data */ - unref_data (data); - - GST_OBJECT_UNLOCK (pads); - - return TRUE; - -unknown_pad: - { - GST_WARNING_OBJECT (pads, "cannot remove unknown pad %s:%s", - GST_DEBUG_PAD_NAME (pad)); - GST_OBJECT_UNLOCK (pads); - return FALSE; - } -} - -/** - * gst_collect_pads2_is_active: - * @pads: the collectspads to use - * @pad: the pad to check - * - * Check if a pad is active. - * - * This function is currently not implemented. - * - * Returns: %TRUE if the pad is active. - * - * MT safe. - */ -gboolean -gst_collect_pads2_is_active (GstCollectPads2 * pads, GstPad * pad) -{ - g_return_val_if_fail (pads != NULL, FALSE); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), FALSE); - g_return_val_if_fail (pad != NULL, FALSE); - g_return_val_if_fail (GST_IS_PAD (pad), FALSE); - - g_warning ("gst_collect_pads2_is_active() is not implemented"); - - return FALSE; -} - -/** - * gst_collect_pads2_collect: - * @pads: the collectspads to use - * - * Collect data on all pads. This function is usually called - * from a #GstTask function in an element. - * - * This function is currently not implemented. - * - * Returns: #GstFlowReturn of the operation. - * - * MT safe. - */ -GstFlowReturn -gst_collect_pads2_collect (GstCollectPads2 * pads) -{ - g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR); - - g_warning ("gst_collect_pads2_collect() is not implemented"); - - return GST_FLOW_NOT_SUPPORTED; -} - -/** - * gst_collect_pads2_collect_range: - * @pads: the collectspads to use - * @offset: the offset to collect - * @length: the length to collect - * - * Collect data with @offset and @length on all pads. This function - * is typically called in the getrange function of an element. - * - * This function is currently not implemented. - * - * Returns: #GstFlowReturn of the operation. - * - * MT safe. - */ -GstFlowReturn -gst_collect_pads2_collect_range (GstCollectPads2 * pads, guint64 offset, - guint length) -{ - g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR); - - g_warning ("gst_collect_pads2_collect_range() is not implemented"); - - return GST_FLOW_NOT_SUPPORTED; -} - -/* - * Must be called with STREAM_LOCK. - */ -static void -gst_collect_pads2_set_flushing_unlocked (GstCollectPads2 * pads, - gboolean flushing) -{ - GSList *walk = NULL; - - /* Update the pads flushing flag */ - for (walk = pads->data; walk; walk = g_slist_next (walk)) { - GstCollectData2 *cdata = walk->data; - - if (GST_IS_PAD (cdata->pad)) { - GST_OBJECT_LOCK (cdata->pad); - if (flushing) - GST_PAD_SET_FLUSHING (cdata->pad); - else - GST_PAD_UNSET_FLUSHING (cdata->pad); - if (flushing) - GST_COLLECT_PADS2_STATE_SET (cdata, GST_COLLECT_PADS2_STATE_FLUSHING); - else - GST_COLLECT_PADS2_STATE_UNSET (cdata, GST_COLLECT_PADS2_STATE_FLUSHING); - gst_collect_pads2_clear (pads, cdata); - GST_OBJECT_UNLOCK (cdata->pad); - } - } - - /* inform _chain of changes */ - GST_COLLECT_PADS2_EVT_BROADCAST (pads); -} - -/** - * gst_collect_pads2_set_flushing: - * @pads: the collectspads to use - * @flushing: desired state of the pads - * - * Change the flushing state of all the pads in the collection. No pad - * is able to accept anymore data when @flushing is %TRUE. Calling this - * function with @flushing %FALSE makes @pads accept data again. - * Caller must ensure that downstream streaming (thread) is not blocked, - * e.g. by sending a FLUSH_START downstream. - * - * MT safe. - * - * Since: 0.10.7. - */ -void -gst_collect_pads2_set_flushing (GstCollectPads2 * pads, gboolean flushing) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - /* NOTE since this eventually calls _pop, some (STREAM_)LOCK is needed here */ - GST_COLLECT_PADS2_STREAM_LOCK (pads); - gst_collect_pads2_set_flushing_unlocked (pads, flushing); - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); -} - -/** - * gst_collect_pads2_start: - * @pads: the collectspads to use - * - * Starts the processing of data in the collect_pads2. - * - * MT safe. - */ -void -gst_collect_pads2_start (GstCollectPads2 * pads) -{ - GSList *collected; - - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_DEBUG_OBJECT (pads, "starting collect pads"); - - /* make sure stop and collect cannot be called anymore */ - GST_COLLECT_PADS2_STREAM_LOCK (pads); - - /* make pads streamable */ - GST_OBJECT_LOCK (pads); - - /* loop over the master pad list and reset the segment */ - collected = pads->pad_list; - for (; collected; collected = g_slist_next (collected)) { - GstCollectData2 *data; - - data = collected->data; - gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED); - } - - gst_collect_pads2_set_flushing_unlocked (pads, FALSE); - - /* Start collect pads */ - pads->started = TRUE; - GST_OBJECT_UNLOCK (pads); - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); -} - -/** - * gst_collect_pads2_stop: - * @pads: the collectspads to use - * - * Stops the processing of data in the collect_pads2. this function - * will also unblock any blocking operations. - * - * MT safe. - */ -void -gst_collect_pads2_stop (GstCollectPads2 * pads) -{ - GSList *collected; - - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - - GST_DEBUG_OBJECT (pads, "stopping collect pads"); - - /* make sure collect and start cannot be called anymore */ - GST_COLLECT_PADS2_STREAM_LOCK (pads); - - /* make pads not accept data anymore */ - GST_OBJECT_LOCK (pads); - gst_collect_pads2_set_flushing_unlocked (pads, TRUE); - - /* Stop collect pads */ - pads->started = FALSE; - pads->eospads = 0; - pads->queuedpads = 0; - - /* loop over the master pad list and flush buffers */ - collected = pads->pad_list; - for (; collected; collected = g_slist_next (collected)) { - GstCollectData2 *data; - GstBuffer **buffer_p; - - data = collected->data; - if (data->buffer) { - buffer_p = &data->buffer; - gst_buffer_replace (buffer_p, NULL); - data->pos = 0; - } - GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_EOS); - } - - if (pads->earliest_data) - unref_data (pads->earliest_data); - pads->earliest_data = NULL; - pads->earliest_time = GST_CLOCK_TIME_NONE; - - GST_OBJECT_UNLOCK (pads); - /* Wake them up so they can end the chain functions. */ - GST_COLLECT_PADS2_EVT_BROADCAST (pads); - - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); -} - -/** - * gst_collect_pads2_peek: - * @pads: the collectspads to peek - * @data: the data to use - * - * Peek at the buffer currently queued in @data. This function - * should be called with the @pads STREAM_LOCK held, such as in the callback - * handler. - * - * Returns: The buffer in @data or NULL if no buffer is queued. - * should unref the buffer after usage. - * - * MT safe. - */ -GstBuffer * -gst_collect_pads2_peek (GstCollectPads2 * pads, GstCollectData2 * data) -{ - GstBuffer *result; - - g_return_val_if_fail (pads != NULL, NULL); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL); - g_return_val_if_fail (data != NULL, NULL); - - if ((result = data->buffer)) - gst_buffer_ref (result); - - GST_DEBUG_OBJECT (pads, "Peeking at pad %s:%s: buffer=%p", - GST_DEBUG_PAD_NAME (data->pad), result); - - return result; -} - -/** - * gst_collect_pads2_pop: - * @pads: the collectspads to pop - * @data: the data to use - * - * Pop the buffer currently queued in @data. This function - * should be called with the @pads STREAM_LOCK held, such as in the callback - * handler. - * - * Returns: The buffer in @data or NULL if no buffer was queued. - * You should unref the buffer after usage. - * - * MT safe. - */ -GstBuffer * -gst_collect_pads2_pop (GstCollectPads2 * pads, GstCollectData2 * data) -{ - GstBuffer *result; - - g_return_val_if_fail (pads != NULL, NULL); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL); - g_return_val_if_fail (data != NULL, NULL); - - if ((result = data->buffer)) { - data->buffer = NULL; - data->pos = 0; - /* one less pad with queued data now */ - if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING)) - pads->queuedpads--; - } - - GST_COLLECT_PADS2_EVT_BROADCAST (pads); - - GST_DEBUG_OBJECT (pads, "Pop buffer on pad %s:%s: buffer=%p", - GST_DEBUG_PAD_NAME (data->pad), result); - - return result; -} - -/* pop and unref the currently queued buffer, should be called with STREAM_LOCK - * held */ -static void -gst_collect_pads2_clear (GstCollectPads2 * pads, GstCollectData2 * data) -{ - GstBuffer *buf; - - if ((buf = gst_collect_pads2_pop (pads, data))) - gst_buffer_unref (buf); -} - -/** - * gst_collect_pads2_available: - * @pads: the collectspads to query - * - * Query how much bytes can be read from each queued buffer. This means - * that the result of this call is the maximum number of bytes that can - * be read from each of the pads. - * - * This function should be called with @pads STREAM_LOCK held, such as - * in the callback. - * - * Returns: The maximum number of bytes queued on all pads. This function - * returns 0 if a pad has no queued buffer. - * - * MT safe. - */ -/* we might pre-calculate this in some struct field, - * but would then have to maintain this in _chain and particularly _pop, etc, - * even if element is never interested in this information */ -guint -gst_collect_pads2_available (GstCollectPads2 * pads) -{ - GSList *collected; - guint result = G_MAXUINT; - - g_return_val_if_fail (pads != NULL, 0); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0); - - collected = pads->data; - for (; collected; collected = g_slist_next (collected)) { - GstCollectData2 *pdata; - GstBuffer *buffer; - gint size; - - pdata = (GstCollectData2 *) collected->data; - - /* ignore pad with EOS */ - if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (pdata, - GST_COLLECT_PADS2_STATE_EOS))) { - GST_DEBUG_OBJECT (pads, "pad %p is EOS", pdata); - continue; - } - - /* an empty buffer without EOS is weird when we get here.. */ - if (G_UNLIKELY ((buffer = pdata->buffer) == NULL)) { - GST_WARNING_OBJECT (pads, "pad %p has no buffer", pdata); - goto not_filled; - } - - /* this is the size left of the buffer */ - size = GST_BUFFER_SIZE (buffer) - pdata->pos; - GST_DEBUG_OBJECT (pads, "pad %p has %d bytes left", pdata, size); - - /* need to return the min of all available data */ - if (size < result) - result = size; - } - /* nothing changed, all must be EOS then, return 0 */ - if (G_UNLIKELY (result == G_MAXUINT)) - result = 0; - - return result; - -not_filled: - { - return 0; - } -} - -/** - * gst_collect_pads2_read: - * @pads: the collectspads to query - * @data: the data to use - * @bytes: a pointer to a byte array - * @size: the number of bytes to read - * - * Get a pointer in @bytes where @size bytes can be read from the - * given pad data. - * - * This function should be called with @pads STREAM_LOCK held, such as - * in the callback. - * - * Returns: The number of bytes available for consumption in the - * memory pointed to by @bytes. This can be less than @size and - * is 0 if the pad is end-of-stream. - * - * MT safe. - */ -guint -gst_collect_pads2_read (GstCollectPads2 * pads, GstCollectData2 * data, - guint8 ** bytes, guint size) -{ - guint readsize; - GstBuffer *buffer; - - g_return_val_if_fail (pads != NULL, 0); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0); - g_return_val_if_fail (data != NULL, 0); - g_return_val_if_fail (bytes != NULL, 0); - - /* no buffer, must be EOS */ - if ((buffer = data->buffer) == NULL) - return 0; - - readsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos); - - *bytes = GST_BUFFER_DATA (buffer) + data->pos; - - return readsize; -} - -/** - * gst_collect_pads2_flush: - * @pads: the collectspads to query - * @data: the data to use - * @size: the number of bytes to flush - * - * Flush @size bytes from the pad @data. - * - * This function should be called with @pads STREAM_LOCK held, such as - * in the callback. - * - * Returns: The number of bytes flushed This can be less than @size and - * is 0 if the pad was end-of-stream. - * - * MT safe. - */ -guint -gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data, - guint size) -{ - guint flushsize; - GstBuffer *buffer; - - g_return_val_if_fail (pads != NULL, 0); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0); - g_return_val_if_fail (data != NULL, 0); - - /* no buffer, must be EOS */ - if ((buffer = data->buffer) == NULL) - return 0; - - /* this is what we can flush at max */ - flushsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos); - - data->pos += size; - - if (data->pos >= GST_BUFFER_SIZE (buffer)) - /* _clear will also reset data->pos to 0 */ - gst_collect_pads2_clear (pads, data); - - return flushsize; -} - -/** - * gst_collect_pads2_read_buffer: - * @pads: the collectspads to query - * @data: the data to use - * @size: the number of bytes to read - * - * Get a subbuffer of @size bytes from the given pad @data. - * - * This function should be called with @pads STREAM_LOCK held, such as in the - * callback. - * - * Since: 0.10.18 - * - * Returns: A sub buffer. The size of the buffer can be less that requested. - * A return of NULL signals that the pad is end-of-stream. - * Unref the buffer after use. - * - * MT safe. - */ -GstBuffer * -gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data, - guint size) -{ - guint readsize; - GstBuffer *buffer; - - g_return_val_if_fail (pads != NULL, NULL); - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL); - g_return_val_if_fail (data != NULL, NULL); - - /* no buffer, must be EOS */ - if ((buffer = data->buffer) == NULL) - return NULL; - - readsize = MIN (size, GST_BUFFER_SIZE (buffer) - data->pos); - - return gst_buffer_create_sub (buffer, data->pos, readsize); -} - -/** - * gst_collect_pads2_take_buffer: - * @pads: the collectspads to query - * @data: the data to use - * @size: the number of bytes to read - * - * Get a subbuffer of @size bytes from the given pad @data. Flushes the amount - * of read bytes. - * - * This function should be called with @pads STREAM_LOCK held, such as in the - * callback. - * - * Since: 0.10.18 - * - * Returns: A sub buffer. The size of the buffer can be less that requested. - * A return of NULL signals that the pad is end-of-stream. - * Unref the buffer after use. - * - * MT safe. - */ -GstBuffer * -gst_collect_pads2_take_buffer (GstCollectPads2 * pads, GstCollectData2 * data, - guint size) -{ - GstBuffer *buffer = gst_collect_pads2_read_buffer (pads, data, size); - - if (buffer) { - gst_collect_pads2_flush (pads, data, GST_BUFFER_SIZE (buffer)); - } - return buffer; -} - -/** - * gst_collect_pads2_set_waiting: - * @pads: the collectspads - * @data: the data to use - * @waiting: boolean indicating whether this pad should operate - * in waiting or non-waiting mode - * - * Sets a pad to waiting or non-waiting mode, if at least this pad - * has not been created with locked waiting state, - * in which case nothing happens. - * - * This function should be called with @pads STREAM_LOCK held, such as - * in the callback. - * - * MT safe. - */ -void -gst_collect_pads2_set_waiting (GstCollectPads2 * pads, GstCollectData2 * data, - gboolean waiting) -{ - g_return_if_fail (pads != NULL); - g_return_if_fail (GST_IS_COLLECT_PADS2 (pads)); - g_return_if_fail (data != NULL); - - GST_DEBUG_OBJECT (pads, "Setting pad %s to waiting %d, locked %d", - GST_PAD_NAME (data->pad), waiting, - GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_LOCKED)); - - /* Do something only on a change and if not locked */ - if (!GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_LOCKED) && - (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING) != - ! !waiting)) { - /* Set waiting state for this pad */ - if (waiting) - GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_WAITING); - else - GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_WAITING); - /* Update number of queued pads if needed */ - if (!data->buffer && - !GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_EOS)) { - if (waiting) - pads->queuedpads--; - else - pads->queuedpads++; - } - - /* signal waiters because something changed */ - GST_COLLECT_PADS2_EVT_BROADCAST (pads); - } -} - -/* see if pads were added or removed and update our stats. Any pad - * added after releasing the LOCK will get collected in the next - * round. - * - * We can do a quick check by checking the cookies, that get changed - * whenever the pad list is updated. - * - * Must be called with STREAM_LOCK. - */ -static void -gst_collect_pads2_check_pads (GstCollectPads2 * pads) -{ - /* the master list and cookie are protected with LOCK */ - GST_OBJECT_LOCK (pads); - if (G_UNLIKELY (pads->pad_cookie != pads->cookie)) { - GSList *collected; - - /* clear list and stats */ - g_slist_foreach (pads->data, (GFunc) unref_data, NULL); - g_slist_free (pads->data); - pads->data = NULL; - pads->numpads = 0; - pads->queuedpads = 0; - pads->eospads = 0; - if (pads->earliest_data) - unref_data (pads->earliest_data); - pads->earliest_data = NULL; - pads->earliest_time = GST_CLOCK_TIME_NONE; - - /* loop over the master pad list */ - collected = pads->pad_list; - for (; collected; collected = g_slist_next (collected)) { - GstCollectData2 *data; - - /* update the stats */ - pads->numpads++; - data = collected->data; - if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_EOS)) - pads->eospads++; - else if (data->buffer || !GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_WAITING)) - pads->queuedpads++; - - /* add to the list of pads to collect */ - ref_data (data); - /* preserve order of adding/requesting pads */ - pads->data = g_slist_append (pads->data, data); - } - /* and update the cookie */ - pads->cookie = pads->pad_cookie; - } - GST_OBJECT_UNLOCK (pads); -} - -/* checks if all the pads are collected and call the collectfunction - * - * Should be called with STREAM_LOCK. - * - * Returns: The #GstFlowReturn of collection. - */ -static GstFlowReturn -gst_collect_pads2_check_collected (GstCollectPads2 * pads) -{ - GstFlowReturn flow_ret = GST_FLOW_OK; - GstCollectPads2Function func; - gpointer user_data; - - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR); - - GST_OBJECT_LOCK (pads); - func = pads->func; - user_data = pads->user_data; - GST_OBJECT_UNLOCK (pads); - - g_return_val_if_fail (pads->func != NULL, GST_FLOW_NOT_SUPPORTED); - - /* check for new pads, update stats etc.. */ - gst_collect_pads2_check_pads (pads); - - if (G_UNLIKELY (pads->eospads == pads->numpads)) { - /* If all our pads are EOS just collect once to let the element - * do its final EOS handling. */ - GST_DEBUG_OBJECT (pads, "All active pads (%d) are EOS, calling %s", - pads->numpads, GST_DEBUG_FUNCPTR_NAME (func)); - - flow_ret = func (pads, user_data); - } else { - gboolean collected = FALSE; - - /* We call the collected function as long as our condition matches. */ - while (((pads->queuedpads + pads->eospads) >= pads->numpads)) { - GST_DEBUG_OBJECT (pads, "All active pads (%d + %d >= %d) have data, " - "calling %s", pads->queuedpads, pads->eospads, pads->numpads, - GST_DEBUG_FUNCPTR_NAME (func)); - - flow_ret = func (pads, user_data); - collected = TRUE; - - /* break on error */ - if (flow_ret != GST_FLOW_OK) - break; - /* Don't keep looping after telling the element EOS or flushing */ - if (pads->queuedpads == 0) - break; - } - if (!collected) - GST_DEBUG_OBJECT (pads, "Not all active pads (%d) have data, continuing", - pads->numpads); - } - return flow_ret; -} - - -/* General overview: - * - only pad with a buffer can determine earliest_data (and earliest_time) - * - only segment info determines (non-)waiting state - * - ? perhaps use _stream_time for comparison - * (which muxers might have use as well ?) - */ - -/* - * Function to recalculate the waiting state of all pads. - * - * Must be called with STREAM_LOCK. - * - * Returns TRUE if a pad was set to waiting - * (from non-waiting state). - */ -static gboolean -gst_collect_pads2_recalculate_waiting (GstCollectPads2 * pads) -{ - GSList *collected; - gboolean result = FALSE; - - /* If earliest time is not known, there is nothing to do. */ - if (pads->earliest_data == NULL) - return FALSE; - - for (collected = pads->data; collected; collected = g_slist_next (collected)) { - GstCollectData2 *data = (GstCollectData2 *) collected->data; - int cmp_res; - - /* check if pad has a segment */ - if (data->segment.format == GST_FORMAT_UNDEFINED) - continue; - - /* check segment format */ - if (data->segment.format != GST_FORMAT_TIME) { - GST_ERROR_OBJECT (pads, "GstCollectPads2 can handle only time segments."); - continue; - } - - /* check if the waiting state should be changed */ - cmp_res = pads->compare_func (pads, data, data->segment.start, - pads->earliest_data, pads->earliest_time, pads->compare_user_data); - if (cmp_res > 0) - /* stop waiting */ - gst_collect_pads2_set_waiting (pads, data, FALSE); - else { - if (!GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_WAITING)) { - /* start waiting */ - gst_collect_pads2_set_waiting (pads, data, TRUE); - result = TRUE; - } - } - } - - return result; -} - -/** - * gst_collect_pads2_find_best_pad: - * @pads: the collectpads to use - * @data: returns the collectdata for earliest data - * @time: returns the earliest available buffertime - * - * Find the oldest/best pad, i.e. pad holding the oldest buffer and - * and return the corresponding #GstCollectData2 and buffertime. - * - * This function should be called with STREAM_LOCK held, - * such as in the callback. - */ -static void -gst_collect_pads2_find_best_pad (GstCollectPads2 * pads, - GstCollectData2 ** data, GstClockTime * time) -{ - GSList *collected; - GstCollectData2 *best = NULL; - GstClockTime best_time = GST_CLOCK_TIME_NONE; - - g_return_if_fail (data != NULL); - g_return_if_fail (time != NULL); - - for (collected = pads->data; collected; collected = g_slist_next (collected)) { - GstBuffer *buffer; - GstCollectData2 *data = (GstCollectData2 *) collected->data; - GstClockTime timestamp; - - buffer = gst_collect_pads2_peek (pads, data); - /* if we have a buffer check if it is better then the current best one */ - if (buffer != NULL) { - timestamp = GST_BUFFER_TIMESTAMP (buffer); - gst_buffer_unref (buffer); - if (best == NULL || pads->compare_func (pads, data, timestamp, - best, best_time, pads->compare_user_data) < 0) { - best = data; - best_time = timestamp; - } - } - } - - /* set earliest time */ - *data = best; - *time = best_time; - - GST_DEBUG_OBJECT (pads, "best pad %s, best time %" GST_TIME_FORMAT, - best ? GST_PAD_NAME (((GstCollectData2 *) best)->pad) : "(nil)", - GST_TIME_ARGS (best_time)); -} - -/* - * Function to recalculate earliest_data and earliest_timestamp. This also calls - * gst_collect_pads2_recalculate_waiting - * - * Must be called with STREAM_LOCK. - */ -static gboolean -gst_collect_pads2_recalculate_full (GstCollectPads2 * pads) -{ - if (pads->earliest_data) - unref_data (pads->earliest_data); - gst_collect_pads2_find_best_pad (pads, &pads->earliest_data, - &pads->earliest_time); - if (pads->earliest_data) - ref_data (pads->earliest_data); - return gst_collect_pads2_recalculate_waiting (pads); -} - -/* - * Default collect callback triggered when #GstCollectPads2 gathered all data. - * - * Called with STREAM_LOCK. - */ -static GstFlowReturn -gst_collect_pads2_default_collected (GstCollectPads2 * pads, gpointer user_data) -{ - GstCollectData2 *best = NULL; - GstBuffer *buffer; - GstFlowReturn ret = GST_FLOW_OK; - GstCollectPads2BufferFunction func; - gpointer buffer_user_data; - - g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR); - - GST_OBJECT_LOCK (pads); - func = pads->buffer_func; - buffer_user_data = pads->buffer_user_data; - GST_OBJECT_UNLOCK (pads); - - g_return_val_if_fail (func != NULL, GST_FLOW_NOT_SUPPORTED); - - /* Find the oldest pad at all cost */ - if (gst_collect_pads2_recalculate_full (pads)) { - /* waiting was switched on, - * so give another thread a chance to deliver a possibly - * older buffer; don't charge on yet with the current oldest */ - ret = GST_FLOW_OK; - } - - best = pads->earliest_data; - - /* No data collected means EOS. */ - if (G_UNLIKELY (best == NULL)) { - ret = func (pads, best, NULL, buffer_user_data); - if (ret == GST_FLOW_OK) - ret = GST_FLOW_UNEXPECTED; - goto done; - } - - /* make sure that the pad we take a buffer from is waiting; - * otherwise popping a buffer will seem not to have happened - * and collectpads can get into a busy loop */ - gst_collect_pads2_set_waiting (pads, best, TRUE); - - /* Send buffer */ - buffer = gst_collect_pads2_pop (pads, best); - ret = func (pads, best, buffer, buffer_user_data); - -done: - return ret; -} - -/* - * Default timestamp compare function. - */ -static gint -gst_collect_pads2_default_compare_func (GstCollectPads2 * pads, - GstCollectData2 * data1, GstClockTime timestamp1, - GstCollectData2 * data2, GstClockTime timestamp2, gpointer user_data) -{ - - GST_LOG_OBJECT (pads, "comparing %" GST_TIME_FORMAT - " and %" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp1), - GST_TIME_ARGS (timestamp2)); - /* non-valid timestamps go first as they are probably headers or so */ - if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp1))) - return GST_CLOCK_TIME_IS_VALID (timestamp2) ? -1 : 0; - - if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp2))) - return 1; - - /* compare timestamp */ - if (timestamp1 < timestamp2) - return -1; - - if (timestamp1 > timestamp2) - return 1; - - return 0; -} - -static gboolean -gst_collect_pads2_event (GstPad * pad, GstEvent * event) -{ - gboolean res = FALSE, need_unlock = FALSE; - GstCollectData2 *data; - GstCollectPads2 *pads; - GstCollectPads2EventFunction event_func; - GstCollectPads2BufferFunction buffer_func; - gpointer event_user_data; - - /* some magic to get the managing collect_pads2 */ - GST_OBJECT_LOCK (pad); - data = (GstCollectData2 *) gst_pad_get_element_private (pad); - if (G_UNLIKELY (data == NULL)) - goto pad_removed; - ref_data (data); - GST_OBJECT_UNLOCK (pad); - - res = FALSE; - - pads = data->collect; - - GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event), - GST_DEBUG_PAD_NAME (data->pad)); - - GST_OBJECT_LOCK (pads); - event_func = pads->event_func; - event_user_data = pads->event_user_data; - buffer_func = pads->buffer_func; - GST_OBJECT_UNLOCK (pads); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_FLUSH_START: - { - /* forward event to unblock check_collected */ - if (event_func) - res = event_func (pads, data, event, event_user_data); - if (!res) - res = gst_pad_event_default (pad, event); - - /* now unblock the chain function. - * no cond per pad, so they all unblock, - * non-flushing block again */ - GST_COLLECT_PADS2_STREAM_LOCK (pads); - GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_FLUSHING); - gst_collect_pads2_clear (pads, data); - - /* cater for possible default muxing functionality */ - if (buffer_func) { - /* restore to initial state */ - gst_collect_pads2_set_waiting (pads, data, TRUE); - /* if the current pad is affected, reset state, recalculate later */ - if (pads->earliest_data == data) { - unref_data (data); - pads->earliest_data = NULL; - pads->earliest_time = GST_CLOCK_TIME_NONE; - } - } - - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - - /* event already cleaned up by forwarding */ - res = TRUE; - goto done; - } - case GST_EVENT_FLUSH_STOP: - { - /* flush the 1 buffer queue */ - GST_COLLECT_PADS2_STREAM_LOCK (pads); - GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_FLUSHING); - gst_collect_pads2_clear (pads, data); - /* we need new segment info after the flush */ - gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED); - GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT); - /* if the pad was EOS, remove the EOS flag and - * decrement the number of eospads */ - if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_EOS))) { - if (!GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_WAITING)) - pads->queuedpads++; - pads->eospads--; - GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_EOS); - } - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - - /* forward event */ - goto forward_or_default; - } - case GST_EVENT_EOS: - { - GST_COLLECT_PADS2_STREAM_LOCK (pads); - /* if the pad was not EOS, make it EOS and so we - * have one more eospad */ - if (G_LIKELY (!GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_EOS))) { - GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_EOS); - if (!GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_WAITING)) - pads->queuedpads--; - pads->eospads++; - } - /* check if we need collecting anything, we ignore the result. */ - gst_collect_pads2_check_collected (pads); - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - - goto forward_or_eat; - } - case GST_EVENT_NEWSEGMENT: - { - gint64 start, stop, time; - gdouble rate, arate; - GstFormat format; - gboolean update; - gint cmp_res; - - GST_COLLECT_PADS2_STREAM_LOCK (pads); - - gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, - &start, &stop, &time); - - GST_DEBUG_OBJECT (data->pad, "got newsegment, start %" GST_TIME_FORMAT - ", stop %" GST_TIME_FORMAT, GST_TIME_ARGS (start), - GST_TIME_ARGS (stop)); - - gst_segment_set_newsegment_full (&data->segment, update, rate, arate, - format, start, stop, time); - - GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT); - - /* default muxing functionality */ - if (!buffer_func) - goto newsegment_done; - - /* default collection can not handle other segment formats than time */ - if (format != GST_FORMAT_TIME) { - GST_ERROR_OBJECT (pads, "GstCollectPads2 default collecting " - "can only handle time segments."); - goto newsegment_done; - } - - /* If oldest time is not known, or current pad got newsegment; - * recalculate the state */ - if (!pads->earliest_data || pads->earliest_data == data) { - gst_collect_pads2_recalculate_full (pads); - goto newsegment_done; - } - - /* Check if the waiting state of the pad should change. */ - cmp_res = pads->compare_func (pads, data, start, pads->earliest_data, - pads->earliest_time, pads->compare_user_data); - - if (cmp_res > 0) - /* Stop waiting */ - gst_collect_pads2_set_waiting (pads, data, FALSE); - - newsegment_done: - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - /* we must not forward this event since multiple segments will be - * accumulated and this is certainly not what we want. */ - goto forward_or_eat; - } - default: - /* forward other events */ - goto forward_or_default; - } - -forward_or_default: - if (GST_EVENT_IS_SERIALIZED (event)) { - GST_COLLECT_PADS2_STREAM_LOCK (pads); - need_unlock = TRUE; - } - if (event_func) - res = event_func (pads, data, event, event_user_data); - if (!res) - res = gst_pad_event_default (pad, event); - if (need_unlock) - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - goto done; - -forward_or_eat: - if (GST_EVENT_IS_SERIALIZED (event)) { - GST_COLLECT_PADS2_STREAM_LOCK (pads); - need_unlock = TRUE; - } - if (event_func) - res = event_func (pads, data, event, event_user_data); - if (!res) { - gst_event_unref (event); - res = TRUE; - } - if (need_unlock) - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - goto done; - -done: - unref_data (data); - return res; - - /* ERRORS */ -pad_removed: - { - GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad)); - GST_OBJECT_UNLOCK (pad); - return FALSE; - } -} - -/* For each buffer we receive we check if our collected condition is reached - * and if so we call the collected function. When this is done we check if - * data has been unqueued. If data is still queued we wait holding the stream - * lock to make sure no EOS event can happen while we are ready to be - * collected - */ -static GstFlowReturn -gst_collect_pads2_chain (GstPad * pad, GstBuffer * buffer) -{ - GstCollectData2 *data; - GstCollectPads2 *pads; - GstFlowReturn ret; - GstBuffer **buffer_p; - guint32 cookie; - GstCollectPads2BufferFunction prepare_buffer_func; - gpointer prepare_buffer_user_data; - - GST_DEBUG ("Got buffer for pad %s:%s", GST_DEBUG_PAD_NAME (pad)); - - /* some magic to get the managing collect_pads2 */ - GST_OBJECT_LOCK (pad); - data = (GstCollectData2 *) gst_pad_get_element_private (pad); - if (G_UNLIKELY (data == NULL)) - goto no_data; - ref_data (data); - GST_OBJECT_UNLOCK (pad); - - pads = data->collect; - GST_OBJECT_LOCK (pads); - prepare_buffer_func = pads->prepare_buffer_func; - prepare_buffer_user_data = pads->prepare_buffer_user_data; - GST_OBJECT_UNLOCK (pads); - - GST_COLLECT_PADS2_STREAM_LOCK (pads); - /* if not started, bail out */ - if (G_UNLIKELY (!pads->started)) - goto not_started; - /* check if this pad is flushing */ - if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_FLUSHING))) - goto flushing; - /* pad was EOS, we can refuse this data */ - if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_EOS))) - goto unexpected; - - GST_DEBUG_OBJECT (pads, "Queuing buffer %p for pad %s:%s", buffer, - GST_DEBUG_PAD_NAME (pad)); - - if (prepare_buffer_func) { - ret = prepare_buffer_func (pads, data, buffer, prepare_buffer_user_data); - if (ret == GST_COLLECT_PADS2_FLOW_DROP) { - GST_DEBUG_OBJECT (pads, "Dropping buffer as requested"); - ret = GST_FLOW_OK; - goto unlock_done; - } else if (ret == GST_FLOW_UNEXPECTED) { - goto unexpected; - } else if (ret != GST_FLOW_OK) { - goto error; - } - } - - /* One more pad has data queued */ - if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING)) - pads->queuedpads++; - buffer_p = &data->buffer; - gst_buffer_replace (buffer_p, buffer); - - /* update segment last position if in TIME */ - if (G_LIKELY (data->segment.format == GST_FORMAT_TIME)) { - GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); - - if (GST_CLOCK_TIME_IS_VALID (timestamp)) - gst_segment_set_last_stop (&data->segment, GST_FORMAT_TIME, timestamp); - } - - /* While we have data queued on this pad try to collect stuff */ - do { - /* Check if our collected condition is matched and call the collected - * function if it is */ - ret = gst_collect_pads2_check_collected (pads); - /* when an error occurs, we want to report this back to the caller ASAP - * without having to block if the buffer was not popped */ - if (G_UNLIKELY (ret != GST_FLOW_OK)) - goto error; - - /* data was consumed, we can exit and accept new data */ - if (data->buffer == NULL) - break; - - /* Having the _INIT here means we don't care about any broadcast up to here - * (most of which occur with STREAM_LOCK held, so could not have happened - * anyway). We do care about e.g. a remove initiated broadcast as of this - * point. Putting it here also makes this thread ignores any evt it raised - * itself (as is a usual WAIT semantic). - */ - GST_COLLECT_PADS2_EVT_INIT (cookie); - - /* pad could be removed and re-added */ - unref_data (data); - GST_OBJECT_LOCK (pad); - if (G_UNLIKELY ((data = gst_pad_get_element_private (pad)) == NULL)) - goto pad_removed; - ref_data (data); - GST_OBJECT_UNLOCK (pad); - - GST_DEBUG_OBJECT (pads, "Pad %s:%s has a buffer queued, waiting", - GST_DEBUG_PAD_NAME (pad)); - - /* wait to be collected, this must happen from another thread triggered - * by the _chain function of another pad. We release the lock so we - * can get stopped or flushed as well. We can however not get EOS - * because we still hold the STREAM_LOCK. - */ - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - GST_COLLECT_PADS2_EVT_WAIT (pads, cookie); - GST_COLLECT_PADS2_STREAM_LOCK (pads); - - GST_DEBUG_OBJECT (pads, "Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad)); - - /* after a signal, we could be stopped */ - if (G_UNLIKELY (!pads->started)) - goto not_started; - /* check if this pad is flushing */ - if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data, - GST_COLLECT_PADS2_STATE_FLUSHING))) - goto flushing; - } - while (data->buffer != NULL); - -unlock_done: - GST_COLLECT_PADS2_STREAM_UNLOCK (pads); - unref_data (data); - gst_buffer_unref (buffer); - return ret; - -pad_removed: - { - GST_WARNING ("%s got removed from collectpads", GST_OBJECT_NAME (pad)); - GST_OBJECT_UNLOCK (pad); - ret = GST_FLOW_NOT_LINKED; - goto unlock_done; - } - /* ERRORS */ -no_data: - { - GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad)); - GST_OBJECT_UNLOCK (pad); - gst_buffer_unref (buffer); - return GST_FLOW_NOT_LINKED; - } -not_started: - { - GST_DEBUG ("not started"); - gst_collect_pads2_clear (pads, data); - ret = GST_FLOW_WRONG_STATE; - goto unlock_done; - } -flushing: - { - GST_DEBUG ("pad %s:%s is flushing", GST_DEBUG_PAD_NAME (pad)); - gst_collect_pads2_clear (pads, data); - ret = GST_FLOW_WRONG_STATE; - goto unlock_done; - } -unexpected: - { - /* we should not post an error for this, just inform upstream that - * we don't expect anything anymore */ - GST_DEBUG ("pad %s:%s is eos", GST_DEBUG_PAD_NAME (pad)); - ret = GST_FLOW_UNEXPECTED; - goto unlock_done; - } -error: - { - /* we print the error, the element should post a reasonable error - * message for fatal errors */ - GST_DEBUG ("collect failed, reason %d (%s)", ret, gst_flow_get_name (ret)); - gst_collect_pads2_clear (pads, data); - goto unlock_done; - } -} diff --git a/gst/videomixer/gstcollectpads2.h b/gst/videomixer/gstcollectpads2.h deleted file mode 100644 index 3c10448..0000000 --- a/gst/videomixer/gstcollectpads2.h +++ /dev/null @@ -1,336 +0,0 @@ -/* GStreamer - * Copyright (C) 2005 Wim Taymans - * Copyright (C) 2008 Mark Nauwelaerts - * - * gstcollectpads2.h: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_COLLECT_PADS2_H__ -#define __GST_COLLECT_PADS2_H__ - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_COLLECT_PADS2 (gst_collect_pads2_get_type()) -#define GST_COLLECT_PADS2(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COLLECT_PADS2,GstCollectPads2)) -#define GST_COLLECT_PADS2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COLLECT_PADS2,GstCollectPads2Class)) -#define GST_COLLECT_PADS2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_COLLECT_PADS2,GstCollectPads2Class)) -#define GST_IS_COLLECT_PADS2(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COLLECT_PADS2)) -#define GST_IS_COLLECT_PADS2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COLLECT_PADS2)) - -typedef struct _GstCollectData2 GstCollectData2; -typedef struct _GstCollectPads2 GstCollectPads2; -typedef struct _GstCollectPads2Class GstCollectPads2Class; - -/** - * GstCollectData2DestroyNotify: - * @data: the #GstCollectData2 that will be freed - * - * A function that will be called when the #GstCollectData2 will be freed. - * It is passed the pointer to the structure and should free any custom - * memory and resources allocated for it. - * - * Since: 0.10.12 - */ -typedef void (*GstCollectData2DestroyNotify) (GstCollectData2 *data); - -/** - * GstCollectPads2StateFlags: - * @GST_COLLECT_PADS2_STATE_EOS: Set if collectdata's pad is EOS. - * @GST_COLLECT_PADS2_STATE_FLUSHING: Set if collectdata's pad is flushing. - * @GST_COLLECT_PADS2_STATE_NEW_SEGMENT: Set if collectdata's pad received a - * new_segment event. - * @GST_COLLECT_PADS2_STATE_WAITING: Set if collectdata's pad must be waited - * for when collecting. - * @GST_COLLECT_PADS2_STATE_LOCKED: Set collectdata's pad WAITING state must - * not be changed. - * #GstCollectPads2StateFlags indicate private state of a collectdata('s pad). - */ -typedef enum { - GST_COLLECT_PADS2_STATE_EOS = 1 << 0, - GST_COLLECT_PADS2_STATE_FLUSHING = 1 << 1, - GST_COLLECT_PADS2_STATE_NEW_SEGMENT = 1 << 2, - GST_COLLECT_PADS2_STATE_WAITING = 1 << 3, - GST_COLLECT_PADS2_STATE_LOCKED = 1 << 4 -} GstCollectPads2StateFlags; - -/** - * GST_COLLECT_PADS2_STATE: - * @data: a #GstCollectData2. - * - * A flags word containing #GstCollectPads2StateFlags flags set - * on this collected pad. - */ -#define GST_COLLECT_PADS2_STATE(data) (((GstCollectData2 *) data)->state) -/** - * GST_COLLECT_PADS2_STATE_IS_SET: - * @data: a #GstCollectData2. - * @flag: the #GstCollectPads2StateFlags to check. - * - * Gives the status of a specific flag on a collected pad. - */ -#define GST_COLLECT_PADS2_STATE_IS_SET(data,flag) !!(GST_COLLECT_PADS2_STATE (data) & flag) -/** - * GST_COLLECT_PADS2_STATE_SET: - * @data: a #GstCollectData2. - * @flag: the #GstCollectPads2StateFlags to set. - * - * Sets a state flag on a collected pad. - */ -#define GST_COLLECT_PADS2_STATE_SET(data,flag) (GST_COLLECT_PADS2_STATE (data) |= flag) -/** - * GST_COLLECT_PADS2_STATE_UNSET: - * @data: a #GstCollectData2. - * @flag: the #GstCollectPads2StateFlags to clear. - * - * Clears a state flag on a collected pad. - */ -#define GST_COLLECT_PADS2_STATE_UNSET(data,flag) (GST_COLLECT_PADS2_STATE (data) &= ~(flag)) - -#define GST_COLLECT_PADS2_FLOW_DROP GST_FLOW_CUSTOM_SUCCESS - -/** - * GstCollectData2: - * @collect: owner #GstCollectPads2 - * @pad: #GstPad managed by this data - * @buffer: currently queued buffer. - * @pos: position in the buffer - * @segment: last segment received. - * - * Structure used by the collect_pads2. - */ -struct _GstCollectData2 -{ - /* with STREAM_LOCK of @collect */ - GstCollectPads2 *collect; - GstPad *pad; - GstBuffer *buffer; - guint pos; - GstSegment segment; - - /*< private >*/ - /* state: bitfield for easier extension; - * eos, flushing, new_segment, waiting */ - guint state; - - /* refcounting for struct, and destroy callback */ - GstCollectData2DestroyNotify destroy_notify; - gint refcount; - - gpointer _gst_reserved[GST_PADDING]; -}; - -/** - * GstCollectPads2Function: - * @pads: the #GstCollectPads2 that trigered the callback - * @user_data: user data passed to gst_collect_pads2_set_function() - * - * A function that will be called when all pads have received data. - * - * Returns: #GST_FLOW_OK for success - */ -typedef GstFlowReturn (*GstCollectPads2Function) (GstCollectPads2 *pads, gpointer user_data); - -/** - * GstCollectPads2BufferFunction: - * @pads: the #GstCollectPads2 that trigered the callback - * @data: the #GstCollectData2 of pad that has received the buffer - * @buffer: the #GstBuffer - * @user_data: user data passed to gst_collect_pads2_set_buffer_function() - * - * A function that will be called when a (considered oldest) buffer can be muxed. - * If all pads have reached EOS, this function is called with NULL @buffer - * and NULL @data. - * - * Returns: #GST_FLOW_OK for success - */ -typedef GstFlowReturn (*GstCollectPads2BufferFunction) (GstCollectPads2 *pads, GstCollectData2 *data, - GstBuffer *buffer, gpointer user_data); - -/** - * GstCollectPads2CompareFunction: - * @pads: the #GstCollectPads that is comparing the timestamps - * @data1: the first #GstCollectData2 - * @timestamp1: the first timestamp - * @data2: the second #GstCollectData2 - * @timestamp2: the second timestamp - * @user_data: user data passed to gst_collect_pads2_set_compare_function() - * - * A function for comparing two timestamps of buffers or newsegments collected on one pad. - * - * Returns: Integer less than zero when first timestamp is deemed older than the second one. - * Zero if the timestamps are deemed equally old. - * Integer greate than zero when second timestamp is deemed older than the first one. - */ -typedef gint (*GstCollectPads2CompareFunction) (GstCollectPads2 *pads, - GstCollectData2 * data1, GstClockTime timestamp1, - GstCollectData2 * data2, GstClockTime timestamp2, - gpointer user_data); - -/** - * GstCollectPads2EventFunction: - * @pads: the #GstCollectPads2 that trigered the callback - * @pad: the #GstPad that received an event - * @event: the #GstEvent received - * @user_data: user data passed to gst_collect_pads2_set_event_function() - * - * A function that will be called after collectpads has processed the event. - * - * Returns: %TRUE if the pad could handle the event - */ -typedef gboolean (*GstCollectPads2EventFunction) (GstCollectPads2 *pads, GstCollectData2 * pad, - GstEvent * event, gpointer user_data); - -/** - * GST_COLLECT_PADS2_GET_STREAM_LOCK: - * @pads: a #GstCollectPads2 - * - * Get the stream lock of @pads. The stream lock is used to coordinate and - * serialize execution among the various streams being collected, and in - * protecting the resources used to accomplish this. - */ -#define GST_COLLECT_PADS2_GET_STREAM_LOCK(pads) (&((GstCollectPads2 *)pads)->stream_lock) -/** - * GST_COLLECT_PADS2_STREAM_LOCK: - * @pads: a #GstCollectPads2 - * - * Lock the stream lock of @pads. - */ -#define GST_COLLECT_PADS2_STREAM_LOCK(pads) (g_static_rec_mutex_lock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))) -/** - * GST_COLLECT_PADS2_STREAM_UNLOCK: - * @pads: a #GstCollectPads2 - * - * Unlock the stream lock of @pads. - */ -#define GST_COLLECT_PADS2_STREAM_UNLOCK(pads) (g_static_rec_mutex_unlock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))) - -/** - * GstCollectPads2: - * @data: #GList of #GstCollectData2 managed by this #GstCollectPads2. - * - * Collectpads object. - */ -struct _GstCollectPads2 { - GstObject object; - - /*< public >*/ /* with LOCK and/or STREAM_LOCK */ - GSList *data; /* list of CollectData items */ - - /*< private >*/ - GStaticRecMutex stream_lock; /* used to serialize collection among several streams */ - /* with LOCK and/or STREAM_LOCK*/ - gboolean started; - - /* with STREAM_LOCK */ - guint32 cookie; /* @data list cookie */ - guint numpads; /* number of pads in @data */ - guint queuedpads; /* number of pads with a buffer */ - guint eospads; /* number of pads that are EOS */ - GstClockTime earliest_time; /* Current earliest time */ - GstCollectData2 *earliest_data; /* Pad data for current earliest time */ - - /* with LOCK */ - GSList *pad_list; /* updated pad list */ - guint32 pad_cookie; /* updated cookie */ - - GstCollectPads2Function func; /* function and user_data for callback */ - gpointer user_data; - GstCollectPads2BufferFunction prepare_buffer_func; /* function and user_data for prepare buffer callback */ - gpointer prepare_buffer_user_data; - GstCollectPads2BufferFunction buffer_func; /* function and user_data for buffer callback */ - gpointer buffer_user_data; - GstCollectPads2CompareFunction compare_func; - gpointer compare_user_data; - GstCollectPads2EventFunction event_func; /* function and data for event callback */ - gpointer event_user_data; - - /* no other lock needed */ - GMutex *evt_lock; /* these make up sort of poor man's event signaling */ - GCond *evt_cond; - guint32 evt_cookie; - - gpointer _gst_reserved[GST_PADDING + 0]; - -}; - -struct _GstCollectPads2Class { - GstObjectClass parent_class; - - /*< private >*/ - gpointer _gst_reserved[GST_PADDING]; -}; - -GType gst_collect_pads2_get_type(void); - -/* creating the object */ -GstCollectPads2* gst_collect_pads2_new (void); - -/* set the callbacks */ -void gst_collect_pads2_set_function (GstCollectPads2 *pads, GstCollectPads2Function func, - gpointer user_data); -void gst_collect_pads2_set_prepare_buffer_function (GstCollectPads2 *pads, - GstCollectPads2BufferFunction func, gpointer user_data); -void gst_collect_pads2_set_buffer_function (GstCollectPads2 *pads, - GstCollectPads2BufferFunction func, gpointer user_data); -void gst_collect_pads2_set_event_function (GstCollectPads2 *pads, - GstCollectPads2EventFunction func, gpointer user_data); -void gst_collect_pads2_set_compare_function (GstCollectPads2 *pads, - GstCollectPads2CompareFunction func, gpointer user_data); - -/* pad management */ -GstCollectData2* gst_collect_pads2_add_pad (GstCollectPads2 *pads, GstPad *pad, guint size); -GstCollectData2* gst_collect_pads2_add_pad_full (GstCollectPads2 *pads, GstPad *pad, guint size, GstCollectData2DestroyNotify destroy_notify, - gboolean lock); -gboolean gst_collect_pads2_remove_pad (GstCollectPads2 *pads, GstPad *pad); -gboolean gst_collect_pads2_is_active (GstCollectPads2 *pads, GstPad *pad); -void gst_mux_pads_set_locked (GstCollectPads2 *pads, GstCollectData2 *data, - gboolean locked); - -/* start/stop collection */ -GstFlowReturn gst_collect_pads2_collect (GstCollectPads2 *pads); -GstFlowReturn gst_collect_pads2_collect_range (GstCollectPads2 *pads, guint64 offset, guint length); - -void gst_collect_pads2_start (GstCollectPads2 *pads); -void gst_collect_pads2_stop (GstCollectPads2 *pads); -void gst_collect_pads2_set_flushing (GstCollectPads2 *pads, gboolean flushing); - -/* get collected buffers */ -GstBuffer* gst_collect_pads2_peek (GstCollectPads2 *pads, GstCollectData2 *data); -GstBuffer* gst_collect_pads2_pop (GstCollectPads2 *pads, GstCollectData2 *data); - -/* get collected bytes */ -guint gst_collect_pads2_available (GstCollectPads2 *pads); -guint gst_collect_pads2_read (GstCollectPads2 *pads, GstCollectData2 *data, - guint8 **bytes, guint size); -guint gst_collect_pads2_flush (GstCollectPads2 *pads, GstCollectData2 *data, - guint size); -GstBuffer* gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data, - guint size); -GstBuffer* gst_collect_pads2_take_buffer (GstCollectPads2 * pads, GstCollectData2 * data, - guint size); - -/* setting and unsetting waiting mode */ -void gst_collect_pads2_set_waiting (GstCollectPads2 *pads, GstCollectData2 *data, - gboolean waiting); - - -G_END_DECLS - -#endif /* __GST_COLLECT_PADS22_H__ */ diff --git a/gst/videomixer/videomixer.c b/gst/videomixer/videomixer.c index 7ab1de9..5a49b39 100644 --- a/gst/videomixer/videomixer.c +++ b/gst/videomixer/videomixer.c @@ -89,6 +89,8 @@ #include "videomixer.h" #include "videomixer2.h" +#include "gst/glib-compat-private.h" + #ifdef DISABLE_ORC #define orc_memset memset #else @@ -664,10 +666,8 @@ gst_videomixer_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Video mixer", "Filter/Editor/Video", diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index 76bbe59..585f3aa 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -86,6 +86,10 @@ #include "config.h" #endif +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include "videomixer2.h" @@ -93,6 +97,8 @@ #include +#include "gst/glib-compat-private.h" + #ifdef DISABLE_ORC #define orc_memset memset #else @@ -760,7 +766,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, if (buf == mixcol->queued) { gst_buffer_unref (buf); - gst_buffer_replace (mixcol->queued, NULL); + gst_buffer_replace (&mixcol->queued, NULL); } else { gst_buffer_unref (buf); buf = gst_collect_pads2_pop (mix->collect, &mixcol->collect); @@ -770,6 +776,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, } else if (start_time >= output_end_time) { GST_DEBUG_OBJECT (pad, "Keeping buffer until %" GST_TIME_FORMAT, GST_TIME_ARGS (start_time)); + gst_buffer_unref (buf); eos = FALSE; } else { GST_DEBUG_OBJECT (pad, "Too old buffer -- dropping"); @@ -1576,8 +1583,9 @@ done: } static GstFlowReturn -gst_videomixer2_sink_prepare_buffer (GstCollectPads2 * pads, - GstCollectData2 * data, GstBuffer * buf, GstVideoMixer2 * mix) +gst_videomixer2_sink_clip (GstCollectPads2 * pads, + GstCollectData2 * data, GstBuffer * buf, GstBuffer ** outbuf, + GstVideoMixer2 * mix) { GstVideoMixer2Pad *pad = GST_VIDEO_MIXER2_PAD (data->pad); GstVideoMixer2Collect *mixcol = pad->mixcol; @@ -1586,14 +1594,17 @@ gst_videomixer2_sink_prepare_buffer (GstCollectPads2 * pads, start_time = GST_BUFFER_TIMESTAMP (buf); if (start_time == -1) { GST_ERROR_OBJECT (pad, "Timestamped buffers required!"); + gst_buffer_unref (buf); return GST_FLOW_ERROR; } end_time = GST_BUFFER_DURATION (buf); if (end_time == -1) end_time = gst_util_uint64_scale_int (GST_SECOND, pad->fps_d, pad->fps_n); - if (end_time == -1) + if (end_time == -1) { + *outbuf = buf; return GST_FLOW_OK; + } start_time = MAX (start_time, mixcol->collect.segment.start); start_time = @@ -1614,9 +1625,12 @@ gst_videomixer2_sink_prepare_buffer (GstCollectPads2 * pads, } if (mixcol->buffer != NULL && end_time < mixcol->end_time) { - return GST_COLLECT_PADS2_FLOW_DROP; + gst_buffer_unref (buf); + *outbuf = NULL; + return GST_FLOW_OK; } + *outbuf = buf; return GST_FLOW_OK; } @@ -1923,10 +1937,8 @@ gst_videomixer2_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Video mixer 2", "Filter/Editor/Video", @@ -1987,8 +1999,8 @@ gst_videomixer2_init (GstVideoMixer2 * mix, GstVideoMixer2Class * g_class) mix); gst_collect_pads2_set_event_function (mix->collect, (GstCollectPads2EventFunction) gst_videomixer2_sink_event, mix); - gst_collect_pads2_set_prepare_buffer_function (mix->collect, - (GstCollectPads2BufferFunction) gst_videomixer2_sink_prepare_buffer, mix); + gst_collect_pads2_set_clip_function (mix->collect, + (GstCollectPads2ClipFunction) gst_videomixer2_sink_clip, mix); mix->lock = g_mutex_new (); /* initialize variables */ diff --git a/gst/videomixer/videomixer2.h b/gst/videomixer/videomixer2.h index 2f2339d..3c73f4d 100644 --- a/gst/videomixer/videomixer2.h +++ b/gst/videomixer/videomixer2.h @@ -25,7 +25,7 @@ #include #include "blend.h" -#include "gstcollectpads2.h" +#include G_BEGIN_DECLS diff --git a/gst/videomixer/videomixer2pad.h b/gst/videomixer/videomixer2pad.h index af00508..a2412da 100644 --- a/gst/videomixer/videomixer2pad.h +++ b/gst/videomixer/videomixer2pad.h @@ -24,7 +24,7 @@ #include #include -#include "gstcollectpads2.h" +#include G_BEGIN_DECLS diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in index f962384..66b6a4d 100644 --- a/gst/wavenc/Makefile.in +++ b/gst/wavenc/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -110,8 +115,8 @@ libgstwavenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstwavenc_la_OBJECTS = libgstwavenc_la-gstwavenc.lo libgstwavenc_la_OBJECTS = $(am_libgstwavenc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstwavenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -127,21 +132,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstwavenc_la_SOURCES) DIST_SOURCES = $(libgstwavenc_la_SOURCES) @@ -224,7 +229,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -299,7 +307,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -323,6 +330,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -357,18 +365,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -421,6 +421,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -455,7 +456,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -555,7 +555,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstwavenc.la: $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_DEPENDENCIES) +libgstwavenc.la: $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_DEPENDENCIES) $(EXTRA_libgstwavenc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavenc_la_LINK) -rpath $(plugindir) $(libgstwavenc_la_OBJECTS) $(libgstwavenc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -569,34 +569,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstwavenc_la-gstwavenc.lo: gstwavenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -MT libgstwavenc_la-gstwavenc.lo -MD -MP -MF $(DEPDIR)/libgstwavenc_la-gstwavenc.Tpo -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavenc_la-gstwavenc.Tpo $(DEPDIR)/libgstwavenc_la-gstwavenc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavenc.c' object='libgstwavenc_la-gstwavenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavenc.c' object='libgstwavenc_la-gstwavenc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavenc_la_CFLAGS) $(CFLAGS) -c -o libgstwavenc_la-gstwavenc.lo `test -f 'gstwavenc.c' || echo '$(srcdir)/'`gstwavenc.c mostlyclean-libtool: -rm -f *.lo @@ -703,10 +699,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c index c3b0c57..e6b06d9 100644 --- a/gst/wavenc/gstwavenc.c +++ b/gst/wavenc/gstwavenc.c @@ -151,10 +151,8 @@ gst_wavenc_base_init (gpointer g_class) "Codec/Muxer/Audio", "Encode raw audio into WAV", "Iain Holmes "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); + gst_element_class_add_static_pad_template (element_class, &sink_factory); GST_DEBUG_CATEGORY_INIT (wavenc_debug, "wavenc", 0, "WAV encoder element"); } @@ -179,6 +177,7 @@ gst_wavenc_init (GstWavEnc * wavenc, GstWavEncClass * klass) GST_DEBUG_FUNCPTR (gst_wavenc_event)); gst_pad_set_setcaps_function (wavenc->sinkpad, GST_DEBUG_FUNCPTR (gst_wavenc_sink_setcaps)); + gst_pad_use_fixed_caps (wavenc->sinkpad); gst_element_add_pad (GST_ELEMENT (wavenc), wavenc->sinkpad); wavenc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); @@ -275,7 +274,7 @@ gst_wavenc_sink_setcaps (GstPad * pad, GstCaps * caps) wavenc = GST_WAVENC (gst_pad_get_parent (pad)); - if (wavenc->sent_header) { + if (wavenc->sent_header && !gst_caps_can_intersect (caps, GST_PAD_CAPS (pad))) { GST_WARNING_OBJECT (wavenc, "cannot change format in middle of stream"); goto fail; } diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in index 429be1c..186977f 100644 --- a/gst/wavparse/Makefile.in +++ b/gst/wavparse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -111,8 +116,8 @@ libgstwavparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstwavparse_la_OBJECTS = libgstwavparse_la-gstwavparse.lo libgstwavparse_la_OBJECTS = $(am_libgstwavparse_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstwavparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -128,21 +133,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstwavparse_la_SOURCES) DIST_SOURCES = $(libgstwavparse_la_SOURCES) @@ -225,7 +230,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -300,7 +308,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -324,6 +331,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -358,18 +366,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -422,6 +422,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -456,7 +457,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -561,7 +561,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstwavparse.la: $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_DEPENDENCIES) +libgstwavparse.la: $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_DEPENDENCIES) $(EXTRA_libgstwavparse_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwavparse_la_LINK) -rpath $(plugindir) $(libgstwavparse_la_OBJECTS) $(libgstwavparse_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -575,34 +575,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstwavparse_la-gstwavparse.lo: gstwavparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -MT libgstwavparse_la-gstwavparse.lo -MD -MP -MF $(DEPDIR)/libgstwavparse_la-gstwavparse.Tpo -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwavparse_la-gstwavparse.Tpo $(DEPDIR)/libgstwavparse_la-gstwavparse.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwavparse.c' object='libgstwavparse_la-gstwavparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwavparse.c' object='libgstwavparse_la-gstwavparse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwavparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwavparse_la_CFLAGS) $(CFLAGS) -c -o libgstwavparse_la-gstwavparse.lo `test -f 'gstwavparse.c' || echo '$(srcdir)/'`gstwavparse.c mostlyclean-libtool: -rm -f *.lo @@ -709,10 +705,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 5f8a789..cce76d0 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -49,6 +49,11 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + +/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex + * with newer GLib versions (>= 2.31.0) */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include @@ -102,8 +107,8 @@ gst_wavparse_base_init (gpointer g_class) GstPadTemplate *src_template; /* register pads */ - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &sink_template_factory); src_template = gst_pad_template_new ("wavparse_src", GST_PAD_SRC, GST_PAD_SOMETIMES, gst_riff_create_audio_template_caps ()); @@ -1200,7 +1205,8 @@ gst_wavparse_stream_headers (GstWavParse * wav) if (tag == GST_RIFF_TAG_JUNK || tag == GST_RIFF_TAG_JUNQ || tag == GST_RIFF_TAG_bext || tag == GST_RIFF_TAG_BEXT || - tag == GST_RIFF_TAG_LIST) { + tag == GST_RIFF_TAG_LIST || tag == GST_RIFF_TAG_ID32 || + tag == GST_RIFF_TAG_IDVX) { GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk", GST_FOURCC_ARGS (tag)); gst_buffer_unref (buf); @@ -1307,7 +1313,10 @@ gst_wavparse_stream_headers (GstWavParse * wav) gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE, GST_TAG_AUDIO_CODEC, codec_name, NULL); - +#ifdef WAVPARSER_MODIFICATION + gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, (guint)(wav->av_bps*8), NULL); // bitrate +#endif g_free (codec_name); codec_name = NULL; } diff --git a/gst/wavparse/gstwavparse.h b/gst/wavparse/gstwavparse.h index ecac968..c5e7237 100644 --- a/gst/wavparse/gstwavparse.h +++ b/gst/wavparse/gstwavparse.h @@ -41,6 +41,8 @@ G_BEGIN_DECLS #define GST_IS_WAVPARSE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_WAVPARSE)) +#define WAVPARSER_MODIFICATION + typedef enum { GST_WAVPARSE_START, GST_WAVPARSE_HEADER, diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in index f763f1f..1791a24 100644 --- a/gst/y4m/Makefile.in +++ b/gst/y4m/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,14 +102,20 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libgsty4menc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libgsty4menc_la_OBJECTS = libgsty4menc_la-gsty4mencode.lo libgsty4menc_la_OBJECTS = $(am_libgsty4menc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgsty4menc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -126,21 +131,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgsty4menc_la_SOURCES) DIST_SOURCES = $(libgsty4menc_la_SOURCES) @@ -223,7 +228,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -298,7 +306,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -322,6 +329,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -356,18 +364,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -420,6 +420,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -454,7 +455,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -547,7 +547,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgsty4menc.la: $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_DEPENDENCIES) +libgsty4menc.la: $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_DEPENDENCIES) $(EXTRA_libgsty4menc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgsty4menc_la_LINK) -rpath $(plugindir) $(libgsty4menc_la_OBJECTS) $(libgsty4menc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -561,34 +561,30 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgsty4menc_la-gsty4mencode.lo: gsty4mencode.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -MT libgsty4menc_la-gsty4mencode.lo -MD -MP -MF $(DEPDIR)/libgsty4menc_la-gsty4mencode.Tpo -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsty4menc_la-gsty4mencode.Tpo $(DEPDIR)/libgsty4menc_la-gsty4mencode.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsty4mencode.c' object='libgsty4menc_la-gsty4mencode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsty4mencode.c' object='libgsty4menc_la-gsty4mencode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsty4menc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsty4menc_la_CFLAGS) $(CFLAGS) -c -o libgsty4menc_la-gsty4mencode.lo `test -f 'gsty4mencode.c' || echo '$(srcdir)/'`gsty4mencode.c mostlyclean-libtool: -rm -f *.lo @@ -695,10 +691,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c index 4adaa5a..7830c95 100644 --- a/gst/y4m/gsty4mencode.c +++ b/gst/y4m/gsty4mencode.c @@ -94,10 +94,10 @@ gst_y4m_encode_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&y4mencode_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&y4mencode_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &y4mencode_src_factory); + gst_element_class_add_static_pad_template (element_class, + &y4mencode_sink_factory); gst_element_class_set_details_simple (element_class, "YUV4MPEG video encoder", "Codec/Encoder/Video", "Encodes a YUV frame into the yuv4mpeg format (mjpegtools)", diff --git a/install-sh b/install-sh index 6781b98..a9244eb 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -200,7 +208,11 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -385,7 +392,7 @@ do case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ do for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/ltmain.sh b/ltmain.sh old mode 100755 new mode 100644 index d88da2c..c7d06c3 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,9 +1,9 @@ -# Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.6b +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -32,50 +32,57 @@ # # Provide generalized library-building support services. # -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print informational messages (default) -# --version print version information -# -h, --help print short or long help message +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory # -# MODE-ARGS vary depending on the MODE. +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 -# automake: $automake_version -# autoconf: $autoconf_version +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1 +# automake: $automake_version +# autoconf: $autoconf_version # # Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . -PROGRAM=ltmain.sh +PROGRAM=libtool PACKAGE=libtool -VERSION="2.2.6b Debian-2.2.6b-2" +VERSION="2.4.2 Debian-2.4.2-1" TIMESTAMP="" -package_revision=1.3017 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -91,10 +98,15 @@ fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # NLS nuisances: We save the old values to restore during execute mode. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES @@ -107,24 +119,28 @@ do lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL $lt_unset CDPATH +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" : ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -144,6 +160,27 @@ IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: @@ -158,33 +195,183 @@ basename="s,^.*/,," # those functions but instead duplicate the functionality here. func_dirname_and_basename () { - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } -# Generated shell functions inserted here. +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} # The name of this program: -# In the unlikely event $progname began with a '-', it would play havoc with -# func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result -case $progname in - -*) progname=./$progname ;; -esac # Make sure we have an absolute path for reexecution: case $progpath in @@ -196,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. @@ -243,7 +439,7 @@ opt_warning=: # name if it has been set yet. func_echo () { - $ECHO "$progname${mode+: }$mode: $*" + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... @@ -258,18 +454,25 @@ func_verbose () : } +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + # func_error arg... # Echo program name prefixed message to standard error. func_error () { - $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { - $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : @@ -326,9 +529,9 @@ func_mkdir_p () case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do @@ -378,7 +581,7 @@ func_mktempdir () func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi - $ECHO "X$my_tmpdir" | $Xsed + $ECHO "$my_tmpdir" } @@ -392,7 +595,7 @@ func_quote_for_eval () { case $1 in *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac @@ -419,7 +622,7 @@ func_quote_for_expand () { case $1 in *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ + my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; @@ -488,15 +691,39 @@ func_show_eval_locale () fi } - - +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} # func_version # Echo version message to standard output and exit. func_version () { - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ @@ -509,22 +736,28 @@ func_version () # Echo short help message to standard output and exit. func_usage () { - $SED -n '/^# Usage:/,/# -h/ { + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" - $ECHO + echo $ECHO "run \`$progname --help | more' for full usage" exit $? } -# func_help -# Echo long help message to standard output and exit. +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. func_help () { + $opt_debug + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print s/^# // s/^# *$// s*\$progname*'$progname'* @@ -534,11 +767,18 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p - }' < "$progpath" - exit $? + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi } # func_missing_arg argname @@ -546,63 +786,106 @@ func_help () # exit_cmd. func_missing_arg () { - func_error "missing argument for $1" + $opt_debug + + func_error "missing argument for $1." exit_cmd=exit } -exit_cmd=: +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: -# Check that we have a working $ECHO. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. @@ -636,16 +919,16 @@ func_config () # Display the features supported by this script. func_features () { - $ECHO "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $ECHO "enable shared libraries" + echo "enable shared libraries" else - $ECHO "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $ECHO "enable static libraries" + echo "enable static libraries" else - $ECHO "disable static libraries" + echo "disable static libraries" fi exit $? @@ -692,117 +975,209 @@ func_enable_tag () esac } -# Parse options once, thoroughly. This comes as soon as possible in -# the script to make things like `libtool --version' happen quickly. +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () { + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac - # Parse non-mode specific arguments: - while test "$#" -gt 0; do +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do opt="$1" shift - case $opt in - --config) func_config ;; - - --debug) preserve_args="$preserve_args $opt" + --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" - opt_debug='set -x' $opt_debug ;; - - -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break - execute_dlfiles="$execute_dlfiles $1" - shift + --dry-run|--dryrun|-n) + opt_dry_run=: ;; - - --dry-run | -n) opt_dry_run=: ;; - --features) func_features ;; - --finish) mode="finish" ;; - - --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break - case $1 in - # Valid mode arguments: - clean) ;; - compile) ;; - execute) ;; - finish) ;; - install) ;; - link) ;; - relink) ;; - uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; - esac - - mode="$1" + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" shift ;; - --preserve-dup-deps) - opt_duplicate_deps=: ;; - - --quiet|--silent) preserve_args="$preserve_args $opt" - opt_silent=: + opt_preserve_dup_deps=: ;; - - --verbose| -v) preserve_args="$preserve_args $opt" + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" ;; - - --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break - preserve_args="$preserve_args $opt $1" - func_enable_tag "$1" # tagname is set here + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" shift ;; + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + # Separate optargs to long options: - -dlopen=*|--mode=*|--tag=*) - func_opt_split "$opt" - set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; - -\?|-h) func_usage ;; - --help) opt_help=: ;; - --version) func_version ;; - - -*) func_fatal_help "unrecognized option \`$opt'" ;; - - *) nonopt="$opt" - break + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) @@ -810,82 +1185,44 @@ func_enable_tag () opt_duplicate_compiler_generated_deps=: ;; *) - opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac - # Having warned about all mis-specified options, bail out if - # anything was wrong. - $exit_cmd $EXIT_FAILURE -} + $opt_help || { + # Sanity checks first: + func_check_version_match -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" fi - exit $EXIT_MISMATCH - fi -} - - -## ----------- ## -## Main. ## -## ----------- ## - -$opt_help || { - # Sanity checks first: - func_check_version_match + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi - test -z "$mode" && func_fatal_error "error: you must specify a MODE." + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." -} +## ----------- ## +## Main. ## +## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. @@ -950,12 +1287,9 @@ func_ltwrapper_executable_p () # temporary ltwrapper_script. func_ltwrapper_scriptname () { - func_ltwrapper_scriptname_result="" - if func_ltwrapper_executable_p "$1"; then - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - fi + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file @@ -1001,6 +1335,37 @@ func_source () } +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. @@ -1013,13 +1378,15 @@ func_infer_tag () if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) @@ -1030,11 +1397,13 @@ func_infer_tag () CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. @@ -1097,6 +1466,486 @@ EOF } } + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + # func_mode_compile arg... func_mode_compile () { @@ -1137,12 +1986,12 @@ func_mode_compile () ;; -pie | -fpie | -fPIE) - pie_flag="$pie_flag $arg" + func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" + func_append later " $arg" continue ;; @@ -1163,15 +2012,14 @@ func_mode_compile () save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" - func_quote_for_eval "$arg" - lastarg="$lastarg $func_quote_for_eval_result" + func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" + func_append base_compile " $lastarg" continue ;; @@ -1187,8 +2035,7 @@ func_mode_compile () esac # case $arg_mode # Aesthetically quote the previous argument. - func_quote_for_eval "$lastarg" - base_compile="$base_compile $func_quote_for_eval_result" + func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in @@ -1213,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -1288,7 +2135,7 @@ func_mode_compile () # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then - output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= @@ -1319,17 +2166,16 @@ compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi - removelist="$removelist $output_obj" + func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist - removelist="$removelist $lockfile" + func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result @@ -1349,7 +2195,7 @@ compiler." if test -z "$output_obj"; then # Place PIC objects in $objdir - command="$command -o $lobj" + func_append command " -o $lobj" fi func_show_eval_locale "$command" \ @@ -1396,11 +2242,11 @@ compiler." command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then - command="$command -o $obj" + func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" + func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' @@ -1445,13 +2291,13 @@ compiler." } $opt_help || { -test "$mode" = compile && func_mode_compile ${1+"$@"} + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. - case $mode in + case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. @@ -1482,10 +2328,11 @@ This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. @@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: - -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." @@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) @@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially: -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. @@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM." ;; *) - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac - $ECHO + echo $ECHO "Try \`$progname --help' for more information about other modes." - - exit $? } - # Now that we've collected a possible --mode arg, show help if necessary - $opt_help && func_mode_help +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi # func_mode_execute arg... @@ -1643,13 +2523,16 @@ func_mode_execute () func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do + for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" @@ -1671,7 +2554,7 @@ func_mode_execute () dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" + func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" @@ -1712,7 +2595,7 @@ func_mode_execute () for file do case $file in - -*) ;; + -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then @@ -1728,8 +2611,7 @@ func_mode_execute () ;; esac # Quote arguments (to preserve shell metacharacters). - func_quote_for_eval "$file" - args="$args $func_quote_for_eval_result" + func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then @@ -1754,29 +2636,66 @@ func_mode_execute () # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - $ECHO "export $shlibpath_var" + echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } -test "$mode" = execute && func_mode_execute ${1+"$@"} +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug - libdirs="$nonopt" + libs= + libdirs= admincmds= - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. @@ -1786,7 +2705,7 @@ func_mode_finish () if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done @@ -1795,53 +2714,55 @@ func_mode_finish () # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS - $ECHO "X----------------------------------------------------------------------" | $Xsed - $ECHO "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - $ECHO - $ECHO "If you ever happen to want to link against installed libraries" - $ECHO "in a given directory, LIBDIR, you must either use libtool, and" - $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" - $ECHO "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" - $ECHO " during execution" - fi - if test -n "$runpath_var"; then - $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" - $ECHO " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $ECHO + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo - $ECHO "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" - $ECHO "pages." - ;; - *) - $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - $ECHO "X----------------------------------------------------------------------" | $Xsed + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi exit $EXIT_SUCCESS } -test "$mode" = finish && func_mode_finish ${1+"$@"} +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... @@ -1852,7 +2773,7 @@ func_mode_install () # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. - $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -1866,7 +2787,12 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" - install_prog="$install_prog$func_quote_for_eval_result" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac # We need to accept at least all the BSD install flags. dest= @@ -1876,10 +2802,12 @@ func_mode_install () install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then - files="$files $dest" + func_append files " $dest" dest=$arg continue fi @@ -1887,10 +2815,9 @@ func_mode_install () case $arg in -d) isdir=yes ;; -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac + if $install_cp; then :; else + prev=$arg + fi ;; -g | -m | -o) prev=$arg @@ -1904,6 +2831,10 @@ func_mode_install () *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg @@ -1914,7 +2845,11 @@ func_mode_install () # Aesthetically quote the argument. func_quote_for_eval "$arg" - install_prog="$install_prog $func_quote_for_eval_result" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ @@ -1923,6 +2858,13 @@ func_mode_install () test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" @@ -1977,10 +2919,13 @@ func_mode_install () case $file in *.$libext) # Do the static libraries later. - staticlibs="$staticlibs $file" + func_append staticlibs " $file" ;; *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" @@ -1994,23 +2939,23 @@ func_mode_install () if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; + *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; + *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" - dir="$dir$objdir" + func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -2023,9 +2968,9 @@ func_mode_install () if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" @@ -2043,7 +2988,7 @@ func_mode_install () test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. - func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in @@ -2083,7 +3028,7 @@ func_mode_install () func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) @@ -2183,7 +3128,7 @@ func_mode_install () if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no @@ -2202,7 +3147,7 @@ func_mode_install () file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" @@ -2221,7 +3166,7 @@ func_mode_install () } else # Install the binary that we compiled earlier. - file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -2257,11 +3202,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -2280,7 +3227,7 @@ func_mode_install () fi } -test "$mode" = install && func_mode_install ${1+"$@"} +test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -2323,6 +3270,22 @@ func_generate_dlsyms () extern \"C\" { #endif +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + /* External symbol declarations for the compiler. */\ " @@ -2332,10 +3295,11 @@ extern \"C\" { $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. - progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do - func_verbose "extracting global C symbols from \`$progfile'" - $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then @@ -2371,7 +3335,7 @@ extern \"C\" { eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2384,10 +3348,52 @@ extern \"C\" { func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac done $opt_dry_run || { @@ -2415,36 +3421,19 @@ extern \"C\" { if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else - $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; -" - case $host in - *cygwin* | *mingw* | *cegcc* ) - $ECHO >> "$output_objdir/$my_dlsyms" "\ -/* DATA imports from DLLs on WIN32 con't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs. */" - lt_dlsym_const= ;; - *osf5*) - echo >> "$output_objdir/$my_dlsyms" "\ -/* This system does not cope well with relocations in const data */" - lt_dlsym_const= ;; - *) - lt_dlsym_const=const ;; - esac - - $ECHO >> "$output_objdir/$my_dlsyms" "\ -extern $lt_dlsym_const lt_dlsymlist +extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; -$lt_dlsym_const lt_dlsymlist +LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," @@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; @@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() { for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; - *) symtab_cflags="$symtab_cflags $arg" ;; + *) func_append symtab_cflags " $arg" ;; esac done @@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() { case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; @@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() { # really was required. # Nullify the symbol file. - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } @@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() { # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2559,9 +3549,11 @@ func_win32_libid () win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ @@ -2590,6 +3582,131 @@ func_win32_libid () $ECHO "$win32_libid_type" } +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} # func_extract_an_archive dir oldlib @@ -2598,7 +3715,18 @@ func_extract_an_archive () $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else @@ -2669,7 +3797,7 @@ func_extract_archives () darwin_file= darwin_files= for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ @@ -2684,25 +3812,30 @@ func_extract_archives () func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } - -# func_emit_wrapper_part1 [arg=no] +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. # -# Emit the first part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part1 () +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () { - func_emit_wrapper_part1_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part1_arg1=$1 - fi + func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL @@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 () # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible @@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then - ECHO=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$ECHO works! - : - else - # Restart under the correct shell, and then maybe \$ECHO will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ " - $ECHO "\ + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -2783,30 +4019,13 @@ else esac fi - file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done -" -} -# end: func_emit_wrapper_part1 - -# func_emit_wrapper_part2 [arg=no] -# -# Emit the second part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part2 () -{ - func_emit_wrapper_part2_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part2_arg1=$1 - fi - - $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 () fi # remove .libs from thisdir case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi @@ -2869,6 +4088,18 @@ func_emit_wrapper_part2 () if test -f \"\$progdir/\$program\"; then" + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ @@ -2877,253 +4108,28 @@ func_emit_wrapper_part2 () # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 + func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } -# end: func_emit_wrapper_part2 - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=no - if test -n "$1" ; then - func_emit_wrapper_arg1=$1 - fi - - # split this up so that func_emit_cwrapperexe_src - # can call each part independently. - func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" - func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -} - - -# func_to_host_path arg -# -# Convert paths to host format when used with build tools. -# Intended for use with "native" mingw (where libtool itself -# is running under the msys shell), or in the following cross- -# build environments: -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# where wine is equipped with the `winepath' executable. -# In the native mingw case, the (msys) shell automatically -# converts paths for any non-msys applications it launches, -# but that facility isn't available from inside the cwrapper. -# Similar accommodations are necessary for $host mingw and -# $build cygwin. Calling this function does no harm for other -# $host/$build combinations not listed above. -# -# ARG is the path (on $build) that should be converted to -# the proper representation for $host. The result is stored -# in $func_to_host_path_result. -func_to_host_path () -{ - func_to_host_path_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - case $build in - *mingw* ) # actually, msys - # awkward: cmd appends spaces to result - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_path_tmp1=`( cmd //c echo "$1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_path_tmp1=`cygpath -w "$1"` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # Unfortunately, winepath does not exit with a non-zero - # error code, so we are forced to check the contents of - # stdout. On the other hand, if the command is not - # found, the shell will set an exit code of 127 and print - # *an error message* to stdout. So we must check for both - # error code of zero AND non-empty stdout, which explains - # the odd construction: - func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` - if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - else - # Allow warning below. - func_to_host_path_result="" - fi - ;; - esac - if test -z "$func_to_host_path_result" ; then - func_error "Could not determine host path corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_path_result="$1" - fi - ;; - esac - fi -} -# end: func_to_host_path -# func_to_host_pathlist arg -# -# Convert pathlists to host format when used with build tools. -# See func_to_host_path(), above. This function supports the -# following $build/$host combinations (but does no harm for -# combinations not listed here): -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# -# Path separators are also converted from $build format to -# $host format. If ARG begins or ends with a path separator -# character, it is preserved (but converted to $host format) -# on output. -# -# ARG is a pathlist (on $build) that should be converted to -# the proper representation on $host. The result is stored -# in $func_to_host_pathlist_result. -func_to_host_pathlist () -{ - func_to_host_pathlist_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_to_host_pathlist_tmp2="$1" - # Once set for this call, this variable should not be - # reassigned. It is used in tha fallback case. - func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e 's|^:*||' -e 's|:*$||'` - case $build in - *mingw* ) # Actually, msys. - # Awkward: cmd appends spaces to result. - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # unfortunately, winepath doesn't convert pathlists - func_to_host_pathlist_result="" - func_to_host_pathlist_oldIFS=$IFS - IFS=: - for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do - IFS=$func_to_host_pathlist_oldIFS - if test -n "$func_to_host_pathlist_f" ; then - func_to_host_path "$func_to_host_pathlist_f" - if test -n "$func_to_host_path_result" ; then - if test -z "$func_to_host_pathlist_result" ; then - func_to_host_pathlist_result="$func_to_host_path_result" - else - func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" - fi - fi - fi - IFS=: - done - IFS=$func_to_host_pathlist_oldIFS - ;; - esac - if test -z "$func_to_host_pathlist_result" ; then - func_error "Could not determine the host path(s) corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This may break if $1 contains DOS-style drive - # specifications. The fix is not to complicate the expression - # below, but for the user to provide a working wine installation - # with winepath so that path translation in the cross-to-mingw - # case works properly. - lt_replace_pathsep_nix_to_dos="s|:|;|g" - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_replace_pathsep_nix_to_dos"` - fi - # Now, add the leading and trailing path separators back - case "$1" in - :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" - ;; - esac - case "$1" in - *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" - ;; - esac - ;; - esac - fi -} -# end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout @@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src () This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "$SHELL $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. */ EOF cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include #include #ifdef _MSC_VER # include # include # include -# define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include -# define HAVE_SETENV -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif # endif #endif #include @@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int); #include #include +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) @@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int); # define S_IXGRP 0 #endif -#ifdef _MSC_VER -# define S_IXUSR _S_IEXEC -# define stat _stat -# ifndef _INTPTR_T_DEFINED -# define intptr_t int -# endif -#endif - +/* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' @@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int); # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ -#ifdef __CYGWIN__ -# define FOPEN_WB "wb" -#endif - #ifndef FOPEN_WB # define FOPEN_WB "w" #endif @@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int); if (stale) { free ((void *) stale); stale = 0; } \ } while (0) -#undef LTWRAPPER_DEBUGPRINTF -#if defined DEBUGWRAPPER -# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -static void -ltwrapper_debugprintf (const char *fmt, ...) -{ - va_list args; - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); -} +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; #else -# define LTWRAPPER_DEBUGPRINTF(args) +static int lt_debug = 0; #endif -const char *program_name = NULL; +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); @@ -3271,41 +4287,27 @@ char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); -void lt_fatal (const char *message, ...); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_opt_process_env_set (const char *arg); -void lt_opt_process_env_prepend (const char *arg); -void lt_opt_process_env_append (const char *arg); -int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); - -static const char *script_text_part1 = -EOF - - func_emit_wrapper_part1 yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ "/' -e 's/$/\\n"/' - echo ";" - cat <"))); + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); } EOF @@ -3560,11 +4523,14 @@ EOF mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ - LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; @@ -3586,7 +4552,7 @@ xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) - lt_fatal ("Memory exhausted"); + lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } @@ -3620,8 +4586,8 @@ check_executable (const char *path) { struct stat st; - LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3638,8 +4604,8 @@ make_executable (const char *path) int rval = 0; struct stat st; - LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3665,8 +4631,8 @@ find_executable (const char *wrapper) int tmp_len; char *concat_name; - LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", - wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; @@ -3719,7 +4685,8 @@ find_executable (const char *wrapper) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); @@ -3744,7 +4711,8 @@ find_executable (const char *wrapper) } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); @@ -3770,8 +4738,9 @@ chase_symlinks (const char *pathspec) int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { - LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", - tmp_pathspec)); + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) @@ -3793,8 +4762,9 @@ chase_symlinks (const char *pathspec) } else { - char *errstr = strerror (errno); - lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); @@ -3807,7 +4777,8 @@ chase_symlinks (const char *pathspec) tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { - lt_fatal ("Could not follow symlinks for %s", pathspec); + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif @@ -3833,11 +4804,25 @@ strendzap (char *str, const char *pat) return str; } +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + static void -lt_error_core (int exit_status, const char *mode, +lt_error_core (int exit_status, const char *file, + int line, const char *mode, const char *message, va_list ap) { - fprintf (stderr, "%s: %s: ", program_name, mode); + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); @@ -3846,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode, } void -lt_fatal (const char *message, ...) +lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + void lt_setenv (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ @@ -3904,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) return new_value; } -int -lt_split_name_value (const char *arg, char** name, char** value) -{ - const char *p; - int len; - if (!arg || !*arg) - return 1; - - p = strchr (arg, (int)'='); - - if (!p) - return 1; - - *value = xstrdup (++p); - - len = strlen (arg) - strlen (*value); - *name = XMALLOC (char, len); - strncpy (*name, arg, len-1); - (*name)[len - 1] = '\0'; - - return 0; -} - -void -lt_opt_process_env_set (const char *arg) -{ - char *name = NULL; - char *value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); - } - - lt_setenv (name, value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_prepend (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_append (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 1); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - void lt_update_exe_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4011,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value) void lt_update_lib_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - (name ? name : ""), - (value ? value : ""))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4023,11 +4937,158 @@ lt_update_lib_path (const char *name, const char *value) } } +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} EOF } # end: func_emit_cwrapperexe_src +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + # func_mode_link arg... func_mode_link () { @@ -4072,6 +5133,7 @@ func_mode_link () new_inherited_linker_flags= avoid_version=no + bindir= dlfiles= dlprefiles= dlself=no @@ -4164,6 +5226,11 @@ func_mode_link () esac case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. @@ -4195,9 +5262,9 @@ func_mode_link () ;; *) if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" + func_append dlfiles " $arg" else - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $arg" fi prev= continue @@ -4221,7 +5288,7 @@ func_mode_link () *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; - *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; @@ -4240,7 +5307,7 @@ func_mode_link () moreargs= for fil in `cat "$save_arg"` do -# moreargs="$moreargs $fil" +# func_append moreargs " $fil" arg=$fil # A libtool-controlled object. @@ -4269,7 +5336,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4281,7 +5348,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4351,12 +5418,12 @@ func_mode_link () if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; - *) rpath="$rpath $arg" ;; + *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; + *) func_append xrpath " $arg" ;; esac fi prev= @@ -4368,28 +5435,28 @@ func_mode_link () continue ;; weak) - weak_libs="$weak_libs $arg" + func_append weak_libs " $arg" prev= continue ;; xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) - compiler_flags="$compiler_flags $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" @@ -4425,6 +5492,11 @@ func_mode_link () continue ;; + -bindir) + prev=bindir + continue + ;; + -dlopen) prev=dlfiles continue @@ -4475,15 +5547,16 @@ func_mode_link () ;; -L*) - func_stripname '-L' '' "$arg" - dir=$func_stripname_result - if test -z "$dir"; then + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -4495,24 +5568,30 @@ func_mode_link () ;; esac case "$deplibs " in - *" -L$dir "*) ;; + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; + *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -4522,7 +5601,7 @@ func_mode_link () -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4536,7 +5615,7 @@ func_mode_link () ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -4556,7 +5635,7 @@ func_mode_link () ;; esac fi - deplibs="$deplibs $arg" + func_append deplibs " $arg" continue ;; @@ -4568,21 +5647,22 @@ func_mode_link () # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot) - compiler_flags="$compiler_flags $arg" + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; @@ -4649,13 +5729,17 @@ func_mode_link () # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac continue ;; @@ -4708,8 +5792,8 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $func_quote_for_eval_result" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4724,9 +5808,9 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" - linker_flags="$linker_flags $func_quote_for_eval_result" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4754,23 +5838,27 @@ func_mode_link () arg="$func_quote_for_eval_result" ;; - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # @file GCC response files + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" - compiler_flags="$compiler_flags $arg" + func_append compiler_flags " $arg" continue ;; @@ -4782,7 +5870,7 @@ func_mode_link () *.$objext) # A standard object. - objs="$objs $arg" + func_append objs " $arg" ;; *.lo) @@ -4813,7 +5901,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4825,7 +5913,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4870,24 +5958,25 @@ func_mode_link () *.$libext) # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" + func_append deplibs " $arg" + func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. + func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" + func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $func_resolve_sysroot_result" prev= else - deplibs="$deplibs $arg" + func_append deplibs " $func_resolve_sysroot_result" fi continue ;; @@ -4925,7 +6014,7 @@ func_mode_link () if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi @@ -4934,6 +6023,8 @@ func_mode_link () func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" @@ -4954,12 +6045,12 @@ func_mode_link () # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - libs="$libs $deplib" + func_append libs " $deplib" done if test "$linkmode" = lib; then @@ -4972,9 +6063,9 @@ func_mode_link () if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac - pre_post_deps="$pre_post_deps $pre_post_dep" + func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= @@ -5044,17 +6135,19 @@ func_mode_link () for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= + func_resolve_sysroot "$lib" case $lib in - *.la) func_source "$lib" ;; + *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + func_basename "$deplib" + deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; - *) deplibs="$deplibs $deplib" ;; + *) func_append deplibs " $deplib" ;; esac done done @@ -5070,16 +6163,17 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - compiler_flags="$compiler_flags $deplib" + func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5164,7 +6258,7 @@ func_mode_link () if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5177,7 +6271,8 @@ func_mode_link () test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then @@ -5191,7 +6286,8 @@ func_mode_link () finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" @@ -5202,17 +6298,21 @@ func_mode_link () -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" - dir=$func_stripname_result + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; - *.la) lib="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" @@ -5230,7 +6330,7 @@ func_mode_link () match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi @@ -5240,15 +6340,15 @@ func_mode_link () ;; esac if test "$valid_a_lib" != yes; then - $ECHO + echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because the file extensions .$libext of this argument makes me believe" - $ECHO "*** that it is just a static archive that I should not use here." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" @@ -5275,11 +6375,11 @@ func_mode_link () if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. - newdlprefiles="$newdlprefiles $deplib" + func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - newdlfiles="$newdlfiles $deplib" + func_append newdlfiles " $deplib" fi fi continue @@ -5321,20 +6421,20 @@ func_mode_link () # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; - *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then @@ -5345,17 +6445,17 @@ func_mode_link () func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" @@ -5366,9 +6466,15 @@ func_mode_link () # Get the name of the library we link against. linklib= - for l in $old_library $library_names; do - linklib="$l" - done + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi @@ -5385,9 +6491,9 @@ func_mode_link () # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" + func_append dlprefiles " $lib $dependency_libs" else - newdlfiles="$newdlfiles $lib" + func_append newdlfiles " $lib" fi continue fi # $pass = dlopen @@ -5409,14 +6515,14 @@ func_mode_link () # Find the relevant object directory and library name. if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5424,12 +6530,12 @@ func_mode_link () dir="$ladir" absdir="$abs_ladir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" @@ -5440,20 +6546,46 @@ func_mode_link () if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac fi # $pass = dlpreopen if test -z "$libdir"; then @@ -5471,7 +6603,7 @@ func_mode_link () if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" + func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no @@ -5484,7 +6616,8 @@ func_mode_link () for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? @@ -5495,12 +6628,12 @@ func_mode_link () # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... @@ -5515,7 +6648,7 @@ func_mode_link () # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; - *) temp_rpath="$temp_rpath$absdir:" ;; + *) func_append temp_rpath "$absdir:" ;; esac fi @@ -5527,7 +6660,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5536,7 +6669,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5561,12 +6694,12 @@ func_mode_link () case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=yes fi ;; @@ -5583,7 +6716,7 @@ func_mode_link () fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO + echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else @@ -5601,7 +6734,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5610,7 +6743,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5664,7 +6797,7 @@ func_mode_link () linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$mode" != relink; then + if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= @@ -5686,9 +6819,9 @@ func_mode_link () if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then - $ECHO - $ECHO "*** And there doesn't seem to be a static archive available" - $ECHO "*** The link will probably fail, sorry" + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi @@ -5715,12 +6848,12 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5742,7 +6875,7 @@ func_mode_link () if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then @@ -5756,13 +6889,13 @@ func_mode_link () test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi - if test "$linkmode" = prog || test "$mode" = relink; then + if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= @@ -5776,7 +6909,7 @@ func_mode_link () elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then @@ -5793,7 +6926,7 @@ func_mode_link () if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5828,21 +6961,21 @@ func_mode_link () # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - $ECHO + echo $ECHO "*** Warning: This system can not link to static lib archive $lib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - $ECHO "*** But as you try to build a module library, libtool will still create " - $ECHO "*** a static module, that should work as long as the dlopening application" - $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module @@ -5870,27 +7003,33 @@ func_mode_link () temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; + *) func_append xrpath " $temp_xrpath";; esac;; - *) temp_deplibs="$temp_deplibs $libdir";; + *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi - newlib_search_path="$newlib_search_path $absdir" + func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" - if $opt_duplicate_deps ; then + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then @@ -5900,8 +7039,10 @@ func_mode_link () case $deplib in -L*) path="$deplib" ;; *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; @@ -5928,8 +7069,8 @@ func_mode_link () if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi @@ -5962,7 +7103,7 @@ func_mode_link () compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else - compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" @@ -5979,7 +7120,7 @@ func_mode_link () for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; + *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= @@ -6037,10 +7178,10 @@ func_mode_link () -L*) case " $tmp_libs " in *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" @@ -6056,7 +7197,7 @@ func_mode_link () ;; esac if test -n "$i" ; then - tmp_libs="$tmp_libs $i" + func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs @@ -6097,7 +7238,7 @@ func_mode_link () # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" - objs="$objs$old_deplibs" + func_append objs "$old_deplibs" ;; lib) @@ -6130,10 +7271,10 @@ func_mode_link () if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" - libobjs="$libobjs $objs" + func_append libobjs " $objs" fi fi @@ -6192,13 +7333,14 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; - freebsd-aout|freebsd-elf|sunos) + freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" @@ -6311,7 +7453,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -6334,7 +7476,7 @@ func_mode_link () done # Make executables depend on our current version. - verstring="$verstring:${current}.0" + func_append verstring ":${current}.0" ;; qnx) @@ -6402,10 +7544,10 @@ func_mode_link () fi func_generate_dlsyms "$libname" "$libname" "yes" - libobjs="$libobjs $symfileobj" + func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= - if test "$mode" != relink; then + if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -6421,7 +7563,7 @@ func_mode_link () continue fi fi - removelist="$removelist $p" + func_append removelist " $p" ;; *) ;; esac @@ -6432,27 +7574,28 @@ func_mode_link () # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" + func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do - # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` - # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` - # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then @@ -6466,7 +7609,7 @@ func_mode_link () for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; + *) func_append dlfiles " $lib" ;; esac done @@ -6476,19 +7619,19 @@ func_mode_link () for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; + *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. @@ -6505,7 +7648,7 @@ func_mode_link () *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" + func_append deplibs " -lc" fi ;; esac @@ -6554,7 +7697,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6565,21 +7708,21 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which I believe you do not have" - $ECHO "*** because a test_compile did reveal that the linker did not use it for" - $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6597,7 +7740,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6608,29 +7751,29 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because a test_compile did reveal that the linker did not use this one" - $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - $ECHO "*** make it link in! You will probably need to install it or some" - $ECHO "*** library that it depends on before this library will be fully" - $ECHO "*** functional. Installing it before continuing would be even better." + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6647,15 +7790,27 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + if test "$want_nocaseglob" = yes; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | @@ -6672,13 +7827,13 @@ EOF potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6687,12 +7842,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else @@ -6703,7 +7858,7 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. @@ -6719,7 +7874,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac @@ -6730,9 +7885,9 @@ EOF potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6741,12 +7896,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else @@ -6757,32 +7912,32 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" - tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ - -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO + case $tmp_deplibs in + *[!\ \ ]*) + echo if test "X$deplibs_check_method" = "Xnone"; then - $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + echo "*** Warning: inter-library dependencies are not supported in this platform." else - $ECHO "*** Warning: inter-library dependencies are not known to be supported." + echo "*** Warning: inter-library dependencies are not known to be supported." fi - $ECHO "*** All declared inter-library dependencies are being dropped." + echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes - fi + ;; + esac ;; esac versuffix=$versuffix_save @@ -6794,23 +7949,23 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - $ECHO - $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - $ECHO "*** a static module, that should work as long as the dlopening" - $ECHO "*** application is linked with the -dlopen flag." + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -6820,16 +7975,16 @@ EOF build_libtool_libs=no fi else - $ECHO "*** The inter-library dependencies that have been dropped here will be" - $ECHO "*** automatically added whenever a program is linked with this library" - $ECHO "*** or is declared to -dlopen it." + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then - $ECHO - $ECHO "*** Since this library must not contain undefined symbols," - $ECHO "*** because either the platform does not support them or" - $ECHO "*** it was explicitly requested with -no-undefined," - $ECHO "*** libtool will only create a static version of it." + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -6846,9 +8001,9 @@ EOF # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -6861,7 +8016,7 @@ EOF *) case " $deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -6871,10 +8026,10 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" @@ -6886,15 +8041,22 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else @@ -6903,18 +8065,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" + func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -6922,17 +8084,13 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi @@ -6940,7 +8098,7 @@ EOF fi shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -6966,18 +8124,18 @@ EOF linknames= for link do - linknames="$linknames $link" + func_append linknames " $link" done # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" - delfiles="$delfiles $export_symbols" + func_append delfiles " $export_symbols" fi orig_export_symbols= @@ -7008,13 +8166,45 @@ EOF $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do + for cmd1 in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" - func_len " $cmd" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. @@ -7036,7 +8226,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then @@ -7048,7 +8238,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7058,7 +8248,7 @@ EOF case " $convenience " in *" $test_deplib "*) ;; *) - tmp_deplibs="$tmp_deplibs $test_deplib" + func_append tmp_deplibs " $test_deplib" ;; esac done @@ -7078,21 +8268,21 @@ EOF test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" + func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi @@ -7137,7 +8327,8 @@ EOF save_libobjs=$libobjs fi save_output=$output - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + func_basename "$output" + output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. @@ -7150,13 +8341,16 @@ EOF if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" - $ECHO 'INPUT (' > $output + echo 'INPUT (' > $output for obj in $save_libobjs do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - $ECHO ')' >> $output - delfiles="$delfiles $output" + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" @@ -7170,10 +8364,12 @@ EOF fi for obj do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - delfiles="$delfiles $output" - output=$firstobj\"$file_list_spec$output\" + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." @@ -7197,17 +8393,19 @@ EOF # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext - objlist=$obj + objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result @@ -7217,11 +8415,12 @@ EOF # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi - delfiles="$delfiles $output" + func_append delfiles " $output" else output= @@ -7255,7 +8454,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7276,7 +8475,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then @@ -7288,7 +8487,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7329,10 +8528,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi @@ -7348,7 +8547,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7360,7 +8559,7 @@ EOF IFS="$save_ifs" # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -7441,18 +8640,21 @@ EOF if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' @@ -7512,8 +8714,8 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac @@ -7524,14 +8726,14 @@ EOF if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7545,7 +8747,7 @@ EOF *) case " $compile_deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -7555,17 +8757,17 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. @@ -7573,7 +8775,7 @@ EOF # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done fi @@ -7592,18 +8794,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi case $host in @@ -7612,12 +8814,12 @@ EOF case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; - *) dllsearchpath="$dllsearchpath:$libdir";; + *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -7643,18 +8845,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + *) func_append finalize_perm_rpath " $libdir" ;; esac fi done @@ -7668,8 +8870,8 @@ EOF if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" @@ -7681,15 +8883,15 @@ EOF wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; - *cegcc) - # Disable wrappers for cegcc, we are cross compiling anyway. - wrappers_required=no - ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no @@ -7698,13 +8900,19 @@ EOF esac if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' @@ -7727,7 +8935,7 @@ EOF # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7735,7 +8943,7 @@ EOF # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7745,11 +8953,18 @@ EOF # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + exit $EXIT_SUCCESS fi @@ -7764,7 +8979,7 @@ EOF if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -7776,13 +8991,19 @@ EOF fi # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Now create the wrapper script. func_verbose "creating $output" @@ -7800,18 +9021,7 @@ EOF fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $ECHO for shipping. - if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. @@ -7891,7 +9101,7 @@ EOF else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then - oldobjs="$oldobjs $symfileobj" + func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" @@ -7899,10 +9109,10 @@ EOF if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. @@ -7913,10 +9123,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have @@ -7932,9 +9142,9 @@ EOF done | sort | sort -uc >/dev/null 2>&1); then : else - $ECHO "copying selected object files to avoid basename conflicts..." + echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= @@ -7958,18 +9168,30 @@ EOF esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" ;; - *) oldobjs="$oldobjs $obj" ;; + *) func_append oldobjs " $obj" ;; esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." @@ -8043,7 +9265,7 @@ EOF done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -8063,12 +9285,23 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" - newdependency_libs="$newdependency_libs $libdir/$name" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" @@ -8082,9 +9315,9 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlfiles="$newdlfiles $libdir/$name" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; - *) newdlfiles="$newdlfiles $lib" ;; + *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" @@ -8101,7 +9334,7 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlprefiles="$newdlprefiles $libdir/$name" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done @@ -8113,7 +9346,7 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlfiles="$newdlfiles $abs" + func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= @@ -8122,15 +9355,33 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlprefiles="$newdlprefiles $abs" + func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; esac $ECHO > $output "\ # $outputname - a libtool library file @@ -8189,7 +9440,7 @@ relink_command=\"$relink_command\"" exit $EXIT_SUCCESS } -{ test "$mode" = link || test "$mode" = relink; } && +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} @@ -8209,9 +9460,9 @@ func_mode_uninstall () for arg do case $arg in - -f) RM="$RM $arg"; rmforce=yes ;; - -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; esac done @@ -8220,24 +9471,23 @@ func_mode_uninstall () rmdirs= - origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then - objdir="$origobjdir" + odir="$objdir" else - objdir="$dir/$origobjdir" + odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" + test "$opt_mode" = uninstall && odir="$dir" - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; esac fi @@ -8263,18 +9513,17 @@ func_mode_uninstall () # Delete the libtool libraries and symlinks. for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" + func_append rmfiles " $odir/$n" done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$mode" in + case "$opt_mode" in clean) - case " $library_names " in - # " " in the beginning catches empty $dlname + case " $library_names " in *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then @@ -8302,19 +9551,19 @@ func_mode_uninstall () # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" + func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" + func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$mode" = clean ; then + if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) @@ -8324,7 +9573,7 @@ func_mode_uninstall () noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe - rmfiles="$rmfiles $file" + func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. @@ -8333,7 +9582,7 @@ func_mode_uninstall () func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result - rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename @@ -8341,12 +9590,12 @@ func_mode_uninstall () # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" + func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi @@ -8354,7 +9603,6 @@ func_mode_uninstall () esac func_show_eval "$RM $rmfiles" 'exit_status=1' done - objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do @@ -8366,16 +9614,16 @@ func_mode_uninstall () exit $exit_status } -{ test "$mode" = uninstall || test "$mode" = clean; } && +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} -test -z "$mode" && { +test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" diff --git a/m4/Makefile.in b/m4/Makefile.in index 4fe00a3..b206372 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -64,8 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -79,11 +78,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -163,7 +162,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,7 +240,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -262,6 +263,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -296,18 +298,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -360,6 +354,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -394,7 +389,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -545,10 +539,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/m4/glibc2.m4 b/m4/glibc2.m4 deleted file mode 100644 index e8f5bfe..0000000 --- a/m4/glibc2.m4 +++ /dev/null @@ -1,30 +0,0 @@ -# glibc2.m4 serial 1 -dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# Test for the GNU C Library, version 2.0 or newer. -# From Bruno Haible. - -AC_DEFUN([gt_GLIBC2], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, - ac_cv_gnu_library_2, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ >= 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2=yes, - ac_cv_gnu_library_2=no) - ] - ) - AC_SUBST(GLIBC2) - GLIBC2="$ac_cv_gnu_library_2" - ] -) diff --git a/m4/intl.m4 b/m4/intl.m4 deleted file mode 100644 index 934408b..0000000 --- a/m4/intl.m4 +++ /dev/null @@ -1,285 +0,0 @@ -# intl.m4 serial 8 (gettext-0.17) -dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006. - -AC_PREREQ(2.52) - -dnl Checks for all prerequisites of the intl subdirectory, -dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, -dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. -AC_DEFUN([AM_INTL_SUBDIR], -[ - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([gt_GLIBC2])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([gl_VISIBILITY])dnl - AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl - AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl - AC_REQUIRE([gt_TYPE_WCHAR_T])dnl - AC_REQUIRE([gt_TYPE_WINT_T])dnl - AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gt_TYPE_INTMAX_T]) - AC_REQUIRE([gt_PRINTF_POSIX]) - AC_REQUIRE([gl_GLIBC21])dnl - AC_REQUIRE([gl_XSIZE])dnl - AC_REQUIRE([gt_INTL_MACOSX])dnl - - AC_CHECK_TYPE([ptrdiff_t], , - [AC_DEFINE([ptrdiff_t], [long], - [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) - ]) - AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) - AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) - - dnl Use the _snprintf function only if it is declared (because on NetBSD it - dnl is defined as a weak alias of snprintf; we prefer to use the latter). - gt_CHECK_DECL(_snprintf, [#include ]) - gt_CHECK_DECL(_snwprintf, [#include ]) - - dnl Use the *_unlocked functions only if they are declared. - dnl (because some of them were defined without being declared in Solaris - dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built - dnl on Solaris 2.5.1 to run on Solaris 2.6). - dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. - gt_CHECK_DECL(getc_unlocked, [#include ]) - - case $gt_cv_func_printf_posix in - *yes) HAVE_POSIX_PRINTF=1 ;; - *) HAVE_POSIX_PRINTF=0 ;; - esac - AC_SUBST([HAVE_POSIX_PRINTF]) - if test "$ac_cv_func_asprintf" = yes; then - HAVE_ASPRINTF=1 - else - HAVE_ASPRINTF=0 - fi - AC_SUBST([HAVE_ASPRINTF]) - if test "$ac_cv_func_snprintf" = yes; then - HAVE_SNPRINTF=1 - else - HAVE_SNPRINTF=0 - fi - AC_SUBST([HAVE_SNPRINTF]) - if test "$ac_cv_func_wprintf" = yes; then - HAVE_WPRINTF=1 - else - HAVE_WPRINTF=0 - fi - AC_SUBST([HAVE_WPRINTF]) - - AM_LANGINFO_CODESET - gt_LC_MESSAGES - - dnl Compilation on mingw and Cygwin needs special Makefile rules, because - dnl 1. when we install a shared library, we must arrange to export - dnl auxiliary pointer variables for every exported variable, - dnl 2. when we install a shared library and a static library simultaneously, - dnl the include file specifies __declspec(dllimport) and therefore we - dnl must arrange to define the auxiliary pointer variables for the - dnl exported variables _also_ in the static library. - if test "$enable_shared" = yes; then - case "$host_os" in - mingw* | cygwin*) is_woe32dll=yes ;; - *) is_woe32dll=no ;; - esac - else - is_woe32dll=no - fi - WOE32DLL=$is_woe32dll - AC_SUBST([WOE32DLL]) - - dnl On mingw and Cygwin, we can activate special Makefile rules which add - dnl version information to the shared libraries and executables. - case "$host_os" in - mingw* | cygwin*) is_woe32=yes ;; - *) is_woe32=no ;; - esac - WOE32=$is_woe32 - AC_SUBST([WOE32]) - if test $WOE32 = yes; then - dnl Check for a program that compiles Windows resource files. - AC_CHECK_TOOL([WINDRES], [windres]) - fi - - dnl Determine whether when creating a library, "-lc" should be passed to - dnl libtool or not. On many platforms, it is required for the libtool option - dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool - dnl in the *.la files - makes it impossible to create multithreaded programs, - dnl because libtool also reorders the -lc to come before the -pthread, and - dnl this disables pthread_create() . - case "$host_os" in - hpux*) LTLIBC="" ;; - *) LTLIBC="-lc" ;; - esac - AC_SUBST([LTLIBC]) - - dnl Rename some macros and functions used for locking. - AH_BOTTOM([ -#define __libc_lock_t gl_lock_t -#define __libc_lock_define gl_lock_define -#define __libc_lock_define_initialized gl_lock_define_initialized -#define __libc_lock_init gl_lock_init -#define __libc_lock_lock gl_lock_lock -#define __libc_lock_unlock gl_lock_unlock -#define __libc_lock_recursive_t gl_recursive_lock_t -#define __libc_lock_define_recursive gl_recursive_lock_define -#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized -#define __libc_lock_init_recursive gl_recursive_lock_init -#define __libc_lock_lock_recursive gl_recursive_lock_lock -#define __libc_lock_unlock_recursive gl_recursive_lock_unlock -#define glthread_in_use libintl_thread_in_use -#define glthread_lock_init libintl_lock_init -#define glthread_lock_lock libintl_lock_lock -#define glthread_lock_unlock libintl_lock_unlock -#define glthread_lock_destroy libintl_lock_destroy -#define glthread_rwlock_init libintl_rwlock_init -#define glthread_rwlock_rdlock libintl_rwlock_rdlock -#define glthread_rwlock_wrlock libintl_rwlock_wrlock -#define glthread_rwlock_unlock libintl_rwlock_unlock -#define glthread_rwlock_destroy libintl_rwlock_destroy -#define glthread_recursive_lock_init libintl_recursive_lock_init -#define glthread_recursive_lock_lock libintl_recursive_lock_lock -#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock -#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy -#define glthread_once libintl_once -#define glthread_once_call libintl_once_call -#define glthread_once_singlethreaded libintl_once_singlethreaded -]) -]) - - -dnl Checks for the core files of the intl subdirectory: -dnl dcigettext.c -dnl eval-plural.h -dnl explodename.c -dnl finddomain.c -dnl gettextP.h -dnl gmo.h -dnl hash-string.h hash-string.c -dnl l10nflist.c -dnl libgnuintl.h.in (except the *printf stuff) -dnl loadinfo.h -dnl loadmsgcat.c -dnl localealias.c -dnl log.c -dnl plural-exp.h plural-exp.c -dnl plural.y -dnl Used by libglocale. -AC_DEFUN([gt_INTL_SUBDIR_CORE], -[ - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([gl_AC_HEADER_STDINT_H]) - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([gt_INTDIV0])dnl - AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl - AC_REQUIRE([gt_INTTYPES_PRI])dnl - AC_REQUIRE([gl_LOCK])dnl - - AC_TRY_LINK( - [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], - [], - [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, - [Define to 1 if the compiler understands __builtin_expect.])]) - - AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ - stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ - argz_next __fsetlocking]) - - dnl Use the *_unlocked functions only if they are declared. - dnl (because some of them were defined without being declared in Solaris - dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built - dnl on Solaris 2.5.1 to run on Solaris 2.6). - dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. - gt_CHECK_DECL(feof_unlocked, [#include ]) - gt_CHECK_DECL(fgets_unlocked, [#include ]) - - AM_ICONV - - dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, - dnl and a _NL_LOCALE_NAME macro always. - AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, - [AC_TRY_LINK([#include -#include ], - [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES)); - return !cs; - ], - gt_cv_nl_locale_name=yes, - gt_cv_nl_locale_name=no) - ]) - if test $gt_cv_nl_locale_name = yes; then - AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, - [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi -]) - - -dnl gt_CHECK_DECL(FUNC, INCLUDES) -dnl Check whether a function is declared. -AC_DEFUN([gt_CHECK_DECL], -[ - AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, - [AC_TRY_COMPILE([$2], [ -#ifndef $1 - char *p = (char *) $1; -#endif -], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) - if test $ac_cv_have_decl_$1 = yes; then - gt_value=1 - else - gt_value=0 - fi - AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], - [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) -]) diff --git a/m4/intldir.m4 b/m4/intldir.m4 deleted file mode 100644 index 7a28843..0000000 --- a/m4/intldir.m4 +++ /dev/null @@ -1,19 +0,0 @@ -# intldir.m4 serial 1 (gettext-0.16) -dnl Copyright (C) 2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -AC_PREREQ(2.52) - -dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. -AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) diff --git a/m4/intmax.m4 b/m4/intmax.m4 deleted file mode 100644 index ce7a8a4..0000000 --- a/m4/intmax.m4 +++ /dev/null @@ -1,33 +0,0 @@ -# intmax.m4 serial 3 (gettext-0.16) -dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether the system has the 'intmax_t' type, but don't attempt to -dnl find a replacement if it is lacking. - -AC_DEFUN([gt_TYPE_INTMAX_T], -[ - AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gl_AC_HEADER_STDINT_H]) - AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, - [AC_TRY_COMPILE([ -#include -#include -#if HAVE_STDINT_H_WITH_UINTMAX -#include -#endif -#if HAVE_INTTYPES_H_WITH_UINTMAX -#include -#endif -], [intmax_t x = -1; - return !x;], - gt_cv_c_intmax_t=yes, - gt_cv_c_intmax_t=no)]) - if test $gt_cv_c_intmax_t = yes; then - AC_DEFINE(HAVE_INTMAX_T, 1, - [Define if you have the 'intmax_t' type in or .]) - fi -]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 index a3fee53..828104c 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,7 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -10,7 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 56 LT_INIT +# serial 57 LT_INIT # LT_PREREQ(VERSION) @@ -66,6 +68,7 @@ esac # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl @@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) @@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME], *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) @@ -138,6 +143,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS], m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -160,10 +170,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our @@ -179,7 +192,6 @@ fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl -_LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) @@ -193,23 +205,6 @@ aix3*) ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes @@ -250,6 +245,28 @@ _LT_CONFIG_COMMANDS ])# _LT_SETUP +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' @@ -408,7 +425,7 @@ m4_define([_lt_decl_all_varnames], # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS @@ -418,7 +435,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE], # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # -# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) @@ -517,12 +534,20 @@ LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -533,9 +558,9 @@ done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -543,16 +568,38 @@ for var in lt_decl_all_varnames([[ \ esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - _LT_OUTPUT_LIBTOOL_INIT ]) +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- @@ -562,20 +609,11 @@ _LT_OUTPUT_LIBTOOL_INIT AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) -cat >"$CONFIG_LT" <<_LTEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. - -lt_cl_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_LTEOF +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 +lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo @@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -646,15 +684,13 @@ chmod +x "$CONFIG_LT" # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. -if test "$no_create" != yes; then - lt_cl_success=: - test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" - exec AS_MESSAGE_LOG_FD>/dev/null - $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false - exec AS_MESSAGE_LOG_FD>>config.log - $lt_cl_success || AS_EXIT(1) -fi +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT @@ -717,15 +753,12 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_XSI_SHELLFNS + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) + _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], @@ -770,6 +803,7 @@ AC_DEFUN([LT_LANG], m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -791,6 +825,31 @@ m4_defun([_LT_LANG], ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -821,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ], m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER @@ -921,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -929,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -940,6 +1012,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -967,7 +1067,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -977,8 +1077,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -987,7 +1087,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(whole_archive_flag_spec, $1)='' + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in @@ -995,7 +1101,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -1011,203 +1117,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], fi ]) -# _LT_SYS_MODULE_PATH_AIX -# ----------------------- +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + # _LT_PROG_ECHO_BACKSLASH # ----------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_LT_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -[$]* -_LT_EOF - exit 0 + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' fi -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -AC_SUBST(lt_ECHO) -]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], - [An echo program that does not interpret backslashes]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], @@ -1236,7 +1281,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -1329,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1354,14 +1412,47 @@ need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) +[_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: @@ -1380,18 +1471,27 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE @@ -1416,15 +1516,15 @@ AC_CACHE_CHECK([$1], [$2], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1464,7 +1564,7 @@ AC_CACHE_CHECK([$1], [$2], if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1527,6 +1627,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -1552,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1591,8 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -1643,7 +1753,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" +[#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -1684,7 +1794,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -1693,7 +1809,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -1869,16 +1989,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes @@ -2037,6 +2157,7 @@ m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2045,16 +2166,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -2067,7 +2195,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -2087,7 +2215,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) @@ -2113,7 +2247,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2122,7 +2256,7 @@ aix3*) ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2175,7 +2309,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -2187,7 +2321,7 @@ beos*) ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2206,8 +2340,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2228,36 +2363,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -2278,7 +2460,7 @@ m4_if([$1], [],[ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2286,10 +2468,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -2297,7 +2475,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2315,7 +2493,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2335,12 +2513,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -2386,12 +2578,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2407,7 +2601,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2444,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2454,16 +2648,21 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -2472,7 +2671,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -2516,7 +2715,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2585,7 +2784,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2610,7 +2809,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2634,7 +2833,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2665,7 +2864,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2675,7 +2874,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2717,6 +2916,8 @@ _LT_DECL([], [library_names_spec], [1], The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], @@ -2829,6 +3030,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], @@ -2950,6 +3152,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -2958,8 +3165,8 @@ case $host_os in fi ;; esac -_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_DECL([], [reload_cmds], [2])dnl +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD @@ -3011,16 +3218,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -3050,6 +3259,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3058,11 +3271,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -3083,7 +3296,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3162,6 +3375,21 @@ tpf*) ;; esac ]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -3169,7 +3397,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method == "file_magic"]) + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD @@ -3226,8 +3458,20 @@ if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) - AC_SUBST([DUMPBIN]) + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi @@ -3239,13 +3483,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -3260,6 +3504,67 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + # LT_LIB_M # -------- @@ -3268,7 +3573,7 @@ AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3296,7 +3601,12 @@ m4_defun([_LT_COMPILER_NO_RTTI], _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, @@ -3313,6 +3623,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl @@ -3380,8 +3691,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -3405,6 +3716,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -3417,6 +3729,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -3438,7 +3751,7 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -3450,6 +3763,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -3461,7 +3786,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT@&t@_DLSYM_CONST struct { const char *name; void *address; } @@ -3487,15 +3812,15 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi @@ -3528,6 +3853,13 @@ else AC_MSG_RESULT(ok) fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], @@ -3538,6 +3870,8 @@ _LT_DECL([global_symbol_to_c_name_address], _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -3549,7 +3883,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= -AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -3600,6 +3933,11 @@ m4_if([$1], [CXX], [ # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -3649,6 +3987,12 @@ m4_if([$1], [CXX], [ ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) @@ -3738,8 +4082,8 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' @@ -3801,7 +4145,7 @@ m4_if([$1], [CXX], [ ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3905,6 +4249,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -3947,6 +4297,15 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -4010,7 +4369,13 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -4022,25 +4387,40 @@ m4_if([$1], [CXX], [ # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; @@ -4072,7 +4452,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; @@ -4129,9 +4509,11 @@ case $host_os in _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac -AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. @@ -4150,6 +4532,8 @@ fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # @@ -4170,6 +4554,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl @@ -4178,30 +4563,40 @@ m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no - ;; + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -4216,7 +4611,6 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4261,13 +4655,39 @@ dnl Note also adjust exclude_expsyms for C++ above. openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -4301,11 +4721,12 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -4341,10 +4762,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -4362,6 +4785,11 @@ _LT_EOF fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4387,15 +4815,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -4406,13 +4835,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; - xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -4428,17 +4861,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -4452,8 +4884,8 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -4471,8 +4903,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4518,8 +4950,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4559,8 +4991,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -4648,9 +5082,9 @@ _LT_EOF _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -4659,14 +5093,19 @@ _LT_EOF else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -4698,20 +5137,64 @@ _LT_EOF # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac ;; darwin* | rhapsody*) @@ -4724,10 +5207,6 @@ _LT_EOF _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -4740,7 +5219,7 @@ _LT_EOF ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -4749,7 +5228,7 @@ _LT_EOF # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4757,7 +5236,7 @@ _LT_EOF hpux9*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -4772,14 +5251,13 @@ _LT_EOF ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -4791,16 +5269,16 @@ _LT_EOF ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -4812,7 +5290,14 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi @@ -4840,19 +5325,34 @@ _LT_EOF irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE(int foo(void) {}, - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - ) - LDFLAGS="$save_LDFLAGS" + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4914,17 +5414,17 @@ _LT_EOF _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4934,13 +5434,13 @@ _LT_EOF osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -4953,9 +5453,9 @@ _LT_EOF _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -5131,36 +5631,38 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi @@ -5197,9 +5699,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1], _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5225,8 +5724,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], @@ -5237,6 +5734,8 @@ _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented @@ -5330,37 +5829,22 @@ CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG -# _LT_PROG_CXX -# ------------ -# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -# compiler, we have our own version here. -m4_defun([_LT_PROG_CXX], -[ -pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -AC_PROG_CXX -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_CXX - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_CXX], []) - - # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], -[AC_REQUIRE([_LT_PROG_CXX])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no @@ -5372,7 +5856,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -5382,6 +5865,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -5413,6 +5898,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -5430,6 +5916,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -5451,8 +5938,8 @@ if test "$_lt_caught_CXX_error" != yes; then # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5484,7 +5971,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -5593,10 +6080,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -5605,14 +6092,19 @@ if test "$_lt_caught_CXX_error" != yes; then else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -5642,28 +6134,75 @@ if test "$_lt_caught_CXX_error" != yes; then ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; @@ -5686,7 +6225,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -5705,6 +6244,11 @@ if test "$_lt_caught_CXX_error" != yes; then gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: @@ -5729,11 +6273,11 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no @@ -5794,7 +6338,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -5804,10 +6348,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -5837,7 +6381,7 @@ if test "$_lt_caught_CXX_error" != yes; then case $cc_basename in CC*) # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -5848,9 +6392,9 @@ if test "$_lt_caught_CXX_error" != yes; then *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -5879,7 +6423,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5916,26 +6460,26 @@ if test "$_lt_caught_CXX_error" != yes; then pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -5943,7 +6487,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -5962,9 +6506,9 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5984,13 +6528,13 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6059,7 +6603,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6094,15 +6638,15 @@ if test "$_lt_caught_CXX_error" != yes; then case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; @@ -6118,17 +6662,17 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -6138,7 +6682,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -6174,7 +6718,7 @@ if test "$_lt_caught_CXX_error" != yes; then solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -6195,7 +6739,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac _LT_TAGVAR(link_all_deplibs, $1)=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6215,14 +6759,14 @@ if test "$_lt_caught_CXX_error" != yes; then if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -6233,7 +6777,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' @@ -6287,6 +6831,10 @@ if test "$_lt_caught_CXX_error" != yes; then CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -6342,6 +6890,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -6356,6 +6905,29 @@ AC_LANG_POP ])# _LT_LANG_CXX_CONFIG +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -6364,6 +6936,7 @@ AC_LANG_POP # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= @@ -6413,7 +6986,20 @@ public class foo { } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then @@ -6425,7 +7011,7 @@ if AC_TRY_EVAL(ac_compile); then pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -6434,13 +7020,22 @@ if AC_TRY_EVAL(ac_compile); then test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -6460,8 +7055,10 @@ if AC_TRY_EVAL(ac_compile); then _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -6497,6 +7094,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], @@ -6533,7 +7131,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -6577,32 +7175,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1], ])# _LT_SYS_HIDDEN_LIBDEPS -# _LT_PROG_F77 -# ------------ -# Since AC_PROG_F77 is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_F77], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -AC_PROG_F77 -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_F77 - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_F77], []) - - # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], -[AC_REQUIRE([_LT_PROG_F77])dnl -AC_LANG_PUSH(Fortran 77) +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6612,7 +7194,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6621,6 +7202,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6660,7 +7243,9 @@ if test "$_lt_disable_F77" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6714,38 +7299,24 @@ if test "$_lt_disable_F77" != yes; then GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG -# _LT_PROG_FC -# ----------- -# Since AC_PROG_FC is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_FC], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -AC_PROG_FC -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_FC - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_FC], []) - - # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], -[AC_REQUIRE([_LT_PROG_FC])dnl -AC_LANG_PUSH(Fortran) +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6755,7 +7326,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6764,6 +7334,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6803,7 +7375,9 @@ if test "$_lt_disable_FC" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu @@ -6859,7 +7433,8 @@ if test "$_lt_disable_FC" != yes; then fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP @@ -6896,10 +7471,12 @@ _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" @@ -6909,6 +7486,8 @@ _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -6928,10 +7507,82 @@ fi AC_LANG_RESTORE GCC=$lt_save_GCC -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -6963,9 +7614,11 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} +CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6978,7 +7631,8 @@ fi GCC=$lt_save_GCC AC_LANG_RESTORE -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG @@ -6998,6 +7652,13 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], @@ -7037,6 +7698,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) # _LT_DECL_SED # ------------ @@ -7130,8 +7800,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -7170,208 +7840,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES -# _LT_PROG_XSI_SHELLFNS -# --------------------- -# Bourne and XSI compatible variants of some useful shell functions. -m4_defun([_LT_PROG_XSI_SHELLFNS], -[case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $[*] )) -} -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -dnl func_dirname_and_basename -dnl A portable version of this function is already defined in general.m4sh -dnl so there is no need for it here. + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -} + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -} + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -_LT_EOF -esac + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]+=\$[2]" -} -_LT_EOF +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]=\$$[1]\$[2]" -} - -_LT_EOF + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac ]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/lock.m4 b/m4/lock.m4 deleted file mode 100644 index 9111933..0000000 --- a/m4/lock.m4 +++ /dev/null @@ -1,316 +0,0 @@ -# lock.m4 serial 7 (gettext-0.17) -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests for a multithreading library to be used. -dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, -dnl USE_PTH_THREADS, USE_WIN32_THREADS -dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use -dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with -dnl libtool). -dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for -dnl programs that really need multithread functionality. The difference -dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak -dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". -dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for -dnl multithread-safe programs. - -AC_DEFUN([gl_LOCK_EARLY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) -]) - -dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_EARLY_BODY], -[ - dnl Ordering constraints: This macro modifies CPPFLAGS in a way that - dnl influences the result of the autoconf tests that test for *_unlocked - dnl declarations, on AIX 5 at least. Therefore it must come early. - AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl - AC_BEFORE([$0], [gl_ARGP])dnl - - AC_REQUIRE([AC_CANONICAL_HOST]) - dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. - dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes - dnl AC_GNU_SOURCE. - m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], - [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], - [AC_REQUIRE([AC_GNU_SOURCE])]) - dnl Check for multithreading. - AC_ARG_ENABLE(threads, -AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) -AC_HELP_STRING([--disable-threads], [build without multithread safety]), - [gl_use_threads=$enableval], - [case "$host_os" in - dnl Disable multithreading by default on OSF/1, because it interferes - dnl with fork()/exec(): When msgexec is linked with -lpthread, its child - dnl process gets an endless segmentation fault inside execvp(). - osf*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac - ]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # For using : - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_TRY_LINK test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - fi -]) - -dnl The guts of gl_LOCK. Needs to be expanded only once. - -AC_DEFUN([gl_LOCK_BODY], -[ - AC_REQUIRE([gl_LOCK_EARLY_BODY]) - gl_threads_api=none - LIBTHREAD= - LTLIBTHREAD= - LIBMULTITHREAD= - LTLIBMULTITHREAD= - if test "$gl_use_threads" != no; then - dnl Check whether the compiler and linker support weak declarations. - AC_MSG_CHECKING([whether imported symbols can be declared weak]) - gl_have_weak=no - AC_TRY_LINK([extern void xyzzy (); -#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) - AC_MSG_RESULT([$gl_have_weak]) - if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then - # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . It's added above, in gl_LOCK_EARLY_BODY. - AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) - if test "$gl_have_pthread_h" = yes; then - # Other possible tests: - # -lpthreads (FSU threads, PCthreads) - # -lgthreads - gl_have_pthread= - # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist - # in libc. IRIX 6.5 has the first one in both libc and libpthread, but - # the second one only in libpthread, and lock.c needs it. - AC_TRY_LINK([#include ], - [pthread_mutex_lock((pthread_mutex_t*)0); - pthread_mutexattr_init((pthread_mutexattr_t*)0);], - [gl_have_pthread=yes]) - # Test for libpthread by looking for pthread_kill. (Not pthread_self, - # since it is defined as a macro on OSF/1.) - if test -n "$gl_have_pthread"; then - # The program links fine without libpthread. But it may actually - # need to link with libpthread in order to create multiple threads. - AC_CHECK_LIB(pthread, pthread_kill, - [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread - # On Solaris and HP-UX, most pthread functions exist also in libc. - # Therefore pthread_in_use() needs to actually try to create a - # thread: pthread_create from libc will fail, whereas - # pthread_create will actually create a thread. - case "$host_os" in - solaris* | hpux*) - AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, - [Define if the pthread_in_use() detection is hard.]) - esac - ]) - else - # Some library is needed. Try libpthread and libc_r. - AC_CHECK_LIB(pthread, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread - LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) - if test -z "$gl_have_pthread"; then - # For FreeBSD 4. - AC_CHECK_LIB(c_r, pthread_kill, - [gl_have_pthread=yes - LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r - LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) - fi - fi - if test -n "$gl_have_pthread"; then - gl_threads_api=posix - AC_DEFINE([USE_POSIX_THREADS], 1, - [Define if the POSIX multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, - [Define if references to the POSIX multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the - # pthread_rwlock_* functions. - AC_CHECK_TYPE([pthread_rwlock_t], - [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, - [Define if the POSIX multithreading library has read/write locks.])], - [], - [#include ]) - # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. - AC_TRY_COMPILE([#include ], - [#if __FreeBSD__ == 4 -error "No, in FreeBSD 4.0 recursive mutexes actually don't work." -#else -int x = (int)PTHREAD_MUTEX_RECURSIVE; -return !x; -#endif], - [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, - [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) - fi - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then - gl_have_solaristhread= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lthread" - AC_TRY_LINK([#include -#include ], - [thr_self();], - [gl_have_solaristhread=yes]) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_solaristhread"; then - gl_threads_api=solaris - LIBTHREAD=-lthread - LTLIBTHREAD=-lthread - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_SOLARIS_THREADS], 1, - [Define if the old Solaris multithreading library can be used.]) - if test $gl_have_weak = yes; then - AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, - [Define if references to the old Solaris multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - fi - fi - if test "$gl_use_threads" = pth; then - gl_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_LINKFLAGS(pth) - gl_have_pth= - gl_save_LIBS="$LIBS" - LIBS="$LIBS -lpth" - AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) - LIBS="$gl_save_LIBS" - if test -n "$gl_have_pth"; then - gl_threads_api=pth - LIBTHREAD="$LIBPTH" - LTLIBTHREAD="$LTLIBPTH" - LIBMULTITHREAD="$LIBTHREAD" - LTLIBMULTITHREAD="$LTLIBTHREAD" - AC_DEFINE([USE_PTH_THREADS], 1, - [Define if the GNU Pth multithreading library can be used.]) - if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then - if test $gl_have_weak = yes; then - AC_DEFINE([USE_PTH_THREADS_WEAK], 1, - [Define if references to the GNU Pth multithreading library should be made weak.]) - LIBTHREAD= - LTLIBTHREAD= - fi - fi - else - CPPFLAGS="$gl_save_CPPFLAGS" - fi - fi - if test -z "$gl_have_pthread"; then - if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then - if { case "$host_os" in - mingw*) true;; - *) false;; - esac - }; then - gl_threads_api=win32 - AC_DEFINE([USE_WIN32_THREADS], 1, - [Define if the Win32 multithreading API can be used.]) - fi - fi - fi - fi - AC_MSG_CHECKING([for multithread API to use]) - AC_MSG_RESULT([$gl_threads_api]) - AC_SUBST(LIBTHREAD) - AC_SUBST(LTLIBTHREAD) - AC_SUBST(LIBMULTITHREAD) - AC_SUBST(LTLIBMULTITHREAD) -]) - -AC_DEFUN([gl_LOCK], -[ - AC_REQUIRE([gl_LOCK_EARLY]) - AC_REQUIRE([gl_LOCK_BODY]) - gl_PREREQ_LOCK -]) - -# Prerequisites of lib/lock.c. -AC_DEFUN([gl_PREREQ_LOCK], [ - AC_REQUIRE([AC_C_INLINE]) -]) - -dnl Survey of platforms: -dnl -dnl Platform Available Compiler Supports test-lock -dnl flavours option weak result -dnl --------------- --------- --------- -------- --------- -dnl Linux 2.4/glibc posix -lpthread Y OK -dnl -dnl GNU Hurd/glibc posix -dnl -dnl FreeBSD 5.3 posix -lc_r Y -dnl posix -lkse ? Y -dnl posix -lpthread ? Y -dnl posix -lthr Y -dnl -dnl FreeBSD 5.2 posix -lc_r Y -dnl posix -lkse Y -dnl posix -lthr Y -dnl -dnl FreeBSD 4.0,4.10 posix -lc_r Y OK -dnl -dnl NetBSD 1.6 -- -dnl -dnl OpenBSD 3.4 posix -lpthread Y OK -dnl -dnl MacOS X 10.[123] posix -lpthread Y OK -dnl -dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK -dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK -dnl -dnl HP-UX 11 posix -lpthread N (cc) OK -dnl Y (gcc) -dnl -dnl IRIX 6.5 posix -lpthread Y 0.5 -dnl -dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK -dnl -dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK -dnl -lpthread (gcc) Y -dnl -dnl Cygwin posix -lpthread Y OK -dnl -dnl Any of the above pth -lpth 0.0 -dnl -dnl Mingw win32 N OK -dnl -dnl BeOS 5 -- -dnl -dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is -dnl turned off: -dnl OK if all three tests terminate OK, -dnl 0.5 if the first test terminates OK but the second one loops endlessly, -dnl 0.0 if the first test already loops endlessly. diff --git a/m4/longlong.m4 b/m4/longlong.m4 deleted file mode 100644 index a72e53b..0000000 --- a/m4/longlong.m4 +++ /dev/null @@ -1,109 +0,0 @@ -# longlong.m4 serial 13 -dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Paul Eggert. - -# Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'long long int' exists but is only 32 bits large -# (as on some very old compilers), HAVE_LONG_LONG_INT will not be -# defined. In this case you can treat 'long long int' like 'long int'. - -AC_DEFUN([AC_TYPE_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. - dnl If cross compiling, assume the bug isn't important, since - dnl nobody cross compiles for this platform as far as we know. - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[@%:@include - @%:@ifndef LLONG_MAX - @%:@ define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - @%:@ define LLONG_MAX (HALF - 1 + HALF) - @%:@endif]], - [[long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0;]])], - [ac_cv_type_long_long_int=yes], - [ac_cv_type_long_long_int=no], - [ac_cv_type_long_long_int=yes])], - [ac_cv_type_long_long_int=no])]) - if test $ac_cv_type_long_long_int = yes; then - AC_DEFINE([HAVE_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `long long int'.]) - fi -]) - -# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.61, but can be removed once we -# assume 2.62 everywhere. - -# Note: If the type 'unsigned long long int' exists but is only 32 bits -# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT -# will not be defined. In this case you can treat 'unsigned long long int' -# like 'unsigned long int'. - -AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], -[ - AC_CACHE_CHECK([for unsigned long long int], - [ac_cv_type_unsigned_long_long_int], - [AC_LINK_IFELSE( - [_AC_TYPE_LONG_LONG_SNIPPET], - [ac_cv_type_unsigned_long_long_int=yes], - [ac_cv_type_unsigned_long_long_int=no])]) - if test $ac_cv_type_unsigned_long_long_int = yes; then - AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, - [Define to 1 if the system has the type `unsigned long long int'.]) - fi -]) - -# Expands to a C program that can be used to test for simultaneous support -# of 'long long' and 'unsigned long long'. We don't want to say that -# 'long long' is available if 'unsigned long long' is not, or vice versa, -# because too many programs rely on the symmetry between signed and unsigned -# integer types (excluding 'bool'). -AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], -[ - AC_LANG_PROGRAM( - [[/* Test preprocessor. */ - #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - error in preprocessor; - #endif - #if ! (18446744073709551615ULL <= -1ull) - error in preprocessor; - #endif - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63;]], - [[/* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull));]]) -]) diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 34151a3..5d9acd8 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -1,13 +1,14 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 6 ltoptions.m4 +# serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -133,13 +134,13 @@ case $host in esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], @@ -325,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index f3c5309..07a8602 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -7,17 +7,17 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# Generated from ltversion.in. +# @configure_input@ -# serial 3017 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6b]) -m4_define([LT_PACKAGE_REVISION], [1.3017]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6b' -macro_revision='1.3017' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 index 637bb20..c573da9 100644 --- a/m4/lt~obsolete.m4 +++ b/m4/lt~obsolete.m4 @@ -1,13 +1,13 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 4 lt~obsolete.m4 +# serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # @@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) @@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/printf-posix.m4 b/m4/printf-posix.m4 deleted file mode 100644 index 14ba612..0000000 --- a/m4/printf-posix.m4 +++ /dev/null @@ -1,44 +0,0 @@ -# printf-posix.m4 serial 3 (gettext-0.17) -dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether the printf() function supports POSIX/XSI format strings with -dnl positions. - -AC_DEFUN([gt_PRINTF_POSIX], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], - gt_cv_func_printf_posix, - [ - AC_TRY_RUN([ -#include -#include -/* The string "%2$d %1$d", with dollar characters protected from the shell's - dollar expansion (possibly an autoconf bug). */ -static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; -static char buf[100]; -int main () -{ - sprintf (buf, format, 33, 55); - return (strcmp (buf, "55 33") != 0); -}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, - [ - AC_EGREP_CPP(notposix, [ -#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ - notposix -#endif - ], gt_cv_func_printf_posix="guessing no", - gt_cv_func_printf_posix="guessing yes") - ]) - ]) - case $gt_cv_func_printf_posix in - *yes) - AC_DEFINE(HAVE_POSIX_PRINTF, 1, - [Define if your printf() function supports format strings with positions.]) - ;; - esac -]) diff --git a/m4/size_max.m4 b/m4/size_max.m4 deleted file mode 100644 index 6cb4868..0000000 --- a/m4/size_max.m4 +++ /dev/null @@ -1,68 +0,0 @@ -# size_max.m4 serial 6 -dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([gl_SIZE_MAX], -[ - AC_CHECK_HEADERS(stdint.h) - dnl First test whether the system already has SIZE_MAX. - AC_MSG_CHECKING([for SIZE_MAX]) - AC_CACHE_VAL([gl_cv_size_max], [ - gl_cv_size_max= - AC_EGREP_CPP([Found it], [ -#include -#if HAVE_STDINT_H -#include -#endif -#ifdef SIZE_MAX -Found it -#endif -], gl_cv_size_max=yes) - if test -z "$gl_cv_size_max"; then - dnl Define it ourselves. Here we assume that the type 'size_t' is not wider - dnl than the type 'unsigned long'. Try hard to find a definition that can - dnl be used in a preprocessor #if, i.e. doesn't contain a cast. - AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], - [#include -#include ], size_t_bits_minus_1=) - AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], - [#include ], fits_in_uint=) - if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then - if test $fits_in_uint = 1; then - dnl Even though SIZE_MAX fits in an unsigned int, it must be of type - dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. - AC_TRY_COMPILE([#include - extern size_t foo; - extern unsigned long foo; - ], [], fits_in_uint=0) - fi - dnl We cannot use 'expr' to simplify this expression, because 'expr' - dnl works only with 'long' integers in the host environment, while we - dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. - if test $fits_in_uint = 1; then - gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" - else - gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" - fi - else - dnl Shouldn't happen, but who knows... - gl_cv_size_max='((size_t)~(size_t)0)' - fi - fi - ]) - AC_MSG_RESULT([$gl_cv_size_max]) - if test "$gl_cv_size_max" != yes; then - AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], - [Define as the maximum value of type 'size_t', if the system doesn't define it.]) - fi -]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/visibility.m4 b/m4/visibility.m4 deleted file mode 100644 index 2ff6330..0000000 --- a/m4/visibility.m4 +++ /dev/null @@ -1,52 +0,0 @@ -# visibility.m4 serial 1 (gettext-0.15) -dnl Copyright (C) 2005 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl Tests whether the compiler supports the command-line option -dnl -fvisibility=hidden and the function and variable attributes -dnl __attribute__((__visibility__("hidden"))) and -dnl __attribute__((__visibility__("default"))). -dnl Does *not* test for __visibility__("protected") - which has tricky -dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on -dnl MacOS X. -dnl Does *not* test for __visibility__("internal") - which has processor -dnl dependent semantics. -dnl Does *not* test for #pragma GCC visibility push(hidden) - which is -dnl "really only recommended for legacy code". -dnl Set the variable CFLAG_VISIBILITY. -dnl Defines and sets the variable HAVE_VISIBILITY. - -AC_DEFUN([gl_VISIBILITY], -[ - AC_REQUIRE([AC_PROG_CC]) - CFLAG_VISIBILITY= - HAVE_VISIBILITY=0 - if test -n "$GCC"; then - AC_MSG_CHECKING([for simple visibility declarations]) - AC_CACHE_VAL(gl_cv_cc_visibility, [ - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" - AC_TRY_COMPILE( - [extern __attribute__((__visibility__("hidden"))) int hiddenvar; - extern __attribute__((__visibility__("default"))) int exportedvar; - extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); - extern __attribute__((__visibility__("default"))) int exportedfunc (void);], - [], - gl_cv_cc_visibility=yes, - gl_cv_cc_visibility=no) - CFLAGS="$gl_save_CFLAGS"]) - AC_MSG_RESULT([$gl_cv_cc_visibility]) - if test $gl_cv_cc_visibility = yes; then - CFLAG_VISIBILITY="-fvisibility=hidden" - HAVE_VISIBILITY=1 - fi - fi - AC_SUBST([CFLAG_VISIBILITY]) - AC_SUBST([HAVE_VISIBILITY]) - AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], - [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) -]) diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 deleted file mode 100644 index cde2129..0000000 --- a/m4/wchar_t.m4 +++ /dev/null @@ -1,20 +0,0 @@ -# wchar_t.m4 serial 1 (gettext-0.12) -dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether has the 'wchar_t' type. -dnl Prerequisite: AC_PROG_CC - -AC_DEFUN([gt_TYPE_WCHAR_T], -[ - AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, - [AC_TRY_COMPILE([#include - wchar_t foo = (wchar_t)'\0';], , - gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) - if test $gt_cv_c_wchar_t = yes; then - AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) - fi -]) diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 deleted file mode 100644 index af5ed93..0000000 --- a/m4/wint_t.m4 +++ /dev/null @@ -1,28 +0,0 @@ -# wint_t.m4 serial 2 (gettext-0.17) -dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. -dnl Test whether has the 'wint_t' type. -dnl Prerequisite: AC_PROG_CC - -AC_DEFUN([gt_TYPE_WINT_T], -[ - AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, - [AC_TRY_COMPILE([ -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be included - before . */ -#include -#include -#include -#include - wint_t foo = (wchar_t)'\0';], , - gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) - if test $gt_cv_c_wint_t = yes; then - AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) - fi -]) diff --git a/m4/xsize.m4 b/m4/xsize.m4 deleted file mode 100644 index 85bb721..0000000 --- a/m4/xsize.m4 +++ /dev/null @@ -1,13 +0,0 @@ -# xsize.m4 serial 3 -dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_XSIZE], -[ - dnl Prerequisites of lib/xsize.h. - AC_REQUIRE([gl_SIZE_MAX]) - AC_REQUIRE([AC_C_INLINE]) - AC_CHECK_HEADERS(stdint.h) -]) diff --git a/missing b/missing index 28055d2..86a8fc3 100755 --- a/missing +++ b/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ case $1 in # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/packaging/gst-plugins-good.spec b/packaging/gst-plugins-good.spec index c61e00d..d5362a6 100644 --- a/packaging/gst-plugins-good.spec +++ b/packaging/gst-plugins-good.spec @@ -1,12 +1,19 @@ +#sbs-git:slp/pkgs/g/gst-plugins-good0.10 gst-plugins-good 0.10.31 6e8625ba6fe94fb9d09e6c3be220b54ffaa01273 Name: gst-plugins-good Summary: GStreamer plugins from the "good" set -Version: 0.10.29 -Release: 1 -Group: TO_BE/FILLED_IN +Version: 0.10.31 +Release: 3 +Group: Applications/Multimedia License: LGPLv2+ Source0: %{name}-%{version}.tar.gz -Patch0 : gst-plugins-good-disable-gtk-doc.patch -BuildRequires: gettext-tools +#Patch0 : gst-plugins-good-divx-drm.patch +#Patch1 : gst-plugins-good-ebml-read.patch +#Patch2 : gst-plugins-good-gstrtph264pay.patch +#Patch3 : gst-plugins-good-mkv-demux.patch +#Patch4 : gst-plugins-good-parse-frame.patch +#Patch5 : gst-plugins-good-qtdemux.patch +Patch6 : gst-plugins-good-disable-gtk-doc.patch +BuildRequires: gettext BuildRequires: which BuildRequires: gst-plugins-base-devel BuildRequires: libjpeg-devel @@ -35,63 +42,72 @@ of good-quality plug-ins under the LGPL license. %prep %setup -q -%patch0 -p1 +#%patch0 -p1 +#%patch1 -p1 +#%patch2 -p1 +#%patch3 -p1 +#%patch4 -p1 +#%patch5 -p1 +%patch6 -p1 + %build -./autogen.sh -%configure --disable-static \ - --prefix=%{_prefix} \ +./autogen.sh + +export CFLAGS+=" -Wall -g -fPIC\ + -DGST_EXT_SOUP_MODIFICATION" + +%configure --prefix=%{_prefix}\ + --disable-static\ %ifarch %{arm} - --enable-divx-drm \ + --enable-divx-drm\ %endif - --disable-nls \ - --with-html-dir=/tmp/dump \ - --disable-examples \ - --disable-gconftool \ - --disable-alpha \ - --disable-apetag \ - --disable-audiofx \ - --disable-auparse \ - --disable-cutter \ - --disable-debugutils \ - --disable-deinterlace \ - --disable-effectv \ - --disable-equalizer \ - --disable-icydemux \ - --disable-interleave \ - --disable-flx \ - --disable-goom \ - --disable-goom2k1 \ - --disable-level \ - --disable-monoscope \ - --disable-multipart \ - --disable-replaygain \ - --disable-smpte \ - --disable-spectrum \ - --disable-videobox \ - --disable-videomixer \ - --disable-y4m \ - --disable-directsound \ - --disable-oss \ - --disable-sunaudio \ - --disable-osx_aidio \ - --disable-osx_video \ - --disable-aalib \ - --disable-aalibtest \ - --disable-annodex \ - --disable-cairo \ - --disable-esd \ - --disable-esdtest \ - --disable-flac \ - --disable-gconf \ - --disable-hal \ - --disable-libcaca \ - --disable-libdv \ - --disable-dv1394 \ - --disable-shout2 \ - --disable-shout2test \ - --disable-speex \ - --disable-taglib + --disable-nls\ + --with-html-dir=/tmp/dump\ + --disable-examples\ + --disable-gconftool\ + --disable-alpha\ + --disable-apetag\ + --disable-audiofx\ + --disable-auparse\ + --disable-cutter\ + --disable-debugutils\ + --disable-deinterlace\ + --disable-effectv\ + --disable-equalizer\ + --disable-icydemux\ + --disable-flx\ + --disable-goom\ + --disable-goom2k1\ + --disable-level\ + --disable-monoscope\ + --disable-replaygain\ + --disable-smpte\ + --disable-spectrum\ + --disable-videobox\ + --disable-videomixer\ + --disable-y4m\ + --disable-directsound\ + --disable-oss\ + --disable-sunaudio\ + --disable-osx_aidio\ + --disable-osx_video\ + --disable-aalib\ + --disable-aalibtest\ + --disable-annodex\ + --disable-cairo\ + --disable-esd\ + --disable-esdtest\ + --disable-flac\ + --disable-gconf\ + --disable-hal\ + --disable-libcaca\ + --disable-libdv\ + --disable-dv1394\ + --disable-shout2\ + --disable-shout2test\ + --disable-speex\ + --disable-taglib make %{?jobs:-j%jobs} diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in index 627dada..7a5838e 100644 --- a/pkgconfig/Makefile.in +++ b/pkgconfig/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -65,8 +65,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -80,11 +79,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = gstreamer-plugins-good-uninstalled.pc CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -164,7 +163,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -239,7 +241,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -263,6 +264,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -297,18 +299,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -361,6 +355,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -395,7 +390,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -531,10 +525,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/po/LINGUAS b/po/LINGUAS index 44f55d9..73d8b85 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1 @@ -af az bg ca cs da de el en_GB es eu fi fr gl hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW +af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv mt nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN zh_HK zh_TW diff --git a/po/Makevars.template b/po/Makevars.template deleted file mode 100644 index 32692ab..0000000 --- a/po/Makevars.template +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po/af.gmo b/po/af.gmo index bcb8106..dcbdd60 100644 Binary files a/po/af.gmo and b/po/af.gmo differ diff --git a/po/af.po b/po/af.po index ced1f84..091d1da 100644 --- a/po/af.po +++ b/po/af.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.7.6\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2004-03-18 14:16+0200\n" "Last-Translator: Petri Jooste \n" "Language-Team: Afrikaans \n" diff --git a/po/az.gmo b/po/az.gmo index 37fabf5..10d856a 100644 Binary files a/po/az.gmo and b/po/az.gmo differ diff --git a/po/az.po b/po/az.po index 26f77d9..a061a71 100644 --- a/po/az.po +++ b/po/az.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2004-03-19 18:29+0200\n" "Last-Translator: Metin Amiroff \n" "Language-Team: Azerbaijani \n" diff --git a/po/bg.gmo b/po/bg.gmo index c6d872a..668edc5 100644 Binary files a/po/bg.gmo and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po index 59b85c9..8d97a10 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-04-26 22:35+0300\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" diff --git a/po/ca.gmo b/po/ca.gmo index c20773a..b1228dd 100644 Binary files a/po/ca.gmo and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po index 4cb58a9..be989e2 100644 --- a/po/ca.po +++ b/po/ca.po @@ -2,664 +2,799 @@ # Copyright © 2005 Free Software Foundation, Inc. # This file is put in the public domain. # Jordi Mallach , 2005. +# Jordi Estrada , 2011. +# Gil Forcada , 2012. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 0.9.7\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" -"PO-Revision-Date: 2005-12-04 21:54+0100\n" -"Last-Translator: Jordi Mallach \n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" +"PO-Revision-Date: 2012-01-01 14:19+0100\n" +"Last-Translator: Gil Forcada \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" msgid "Could not establish connection to sound server" -msgstr "" +msgstr "No s'ha pogut establir la connexió al servidor de so" msgid "Failed to query sound server capabilities" -msgstr "" +msgstr "Ha fallat en consultar les capacitats del servidor de so" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" -msgstr "" +msgstr "«%s» per «%s»" msgid "Internal data stream error." msgstr "S'ha produït un error intern de flux de dades." msgid "Failed to decode JPEG image" -msgstr "" +msgstr "Ha fallat en descodificar la imatge JPEG" msgid "Could not connect to server" -msgstr "" +msgstr "No s'ha pogut connectar al servidor" msgid "Server does not support seeking." -msgstr "" +msgstr "El servidor no ademet les cerques." msgid "Could not resolve server name." -msgstr "" +msgstr "No s'ha pogut resoldre el nom del servidor." msgid "Could not establish connection to server." -msgstr "" +msgstr "No s'ha pogut establir la connexió al servidor." msgid "Secure connection setup failed." -msgstr "" +msgstr "Ha fallat la configuració de connexió segura." msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "" +"S'ha produït un error de xarxa, o el servidor ha tancat la connexió " +"inesperadament." msgid "Server sent bad data." -msgstr "" +msgstr "El servidor ha enviat dades errònies." msgid "No URL set." -msgstr "" +msgstr "No s'ha indicat cap URL." msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "L'entrada d'àudio manca o és invàlida, el flux AVI serà corrupte." +msgstr "Manca o no és vàlida l'entrada d'àudio, el flux AVI estarà malmès." msgid "This file contains no playable streams." -msgstr "" +msgstr "Aquest fitxer no conté cap flux reproduïble." msgid "This file is invalid and cannot be played." -msgstr "" +msgstr "Aquest fitxer no és vàlid i no es pot reproduir." msgid "This file is corrupt and cannot be played." -msgstr "" +msgstr "Aquest fitxer està malmès i no es pot reproduir." msgid "Invalid atom size." -msgstr "" +msgstr "La mida de l'àtom no és vàlida." msgid "This file is incomplete and cannot be played." -msgstr "" +msgstr "Aquest fitxer no està complet i no es pot reproduir." msgid "The video in this file might not play correctly." -msgstr "" +msgstr "El vídeo en aquest fitxer podria no reproduir-se correctament." #, c-format msgid "This file contains too many streams. Only playing first %d" msgstr "" +"Aquest fitxer conté massa fluxos. Només s'estan reproduint els primers %d" msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" +"No s'ha trobat cap flux compatible. Podríeu necessitar instal·lar un " +"connector d'extensió RTSP del GStreamer per a fluxos de multimèdia Real." msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" +"No s'ha trobat cap flux compatible. Podríeu necessitar permetre més " +"protocols de transport o bé potser manca el connector d'extensió RTSP del " +"GStreamer correcte." -#, fuzzy msgid "Internal data flow error." msgstr "S'ha produït un error intern de flux de dades." msgid "Volume" -msgstr "" +msgstr "Volum" msgid "Bass" -msgstr "" +msgstr "Baixos" msgid "Treble" -msgstr "" +msgstr "Aguts" msgid "Synth" -msgstr "" +msgstr "Sintetitzador" msgid "PCM" -msgstr "" +msgstr "PCM" msgid "Speaker" -msgstr "" +msgstr "Altaveu" msgid "Line-in" -msgstr "" +msgstr "Línia d'entrada" msgid "Microphone" -msgstr "" +msgstr "Micròfon" msgid "CD" -msgstr "" +msgstr "CD" msgid "Mixer" -msgstr "" +msgstr "Mesclador" msgid "PCM-2" -msgstr "" +msgstr "PCM-2" msgid "Record" -msgstr "" +msgstr "Enregistrament" msgid "In-gain" -msgstr "" +msgstr "Guany d'entrada" msgid "Out-gain" -msgstr "" +msgstr "Guany de sortida" msgid "Line-1" -msgstr "" +msgstr "Línia-1" msgid "Line-2" -msgstr "" +msgstr "Línia-2" msgid "Line-3" -msgstr "" +msgstr "Línia-3" msgid "Digital-1" -msgstr "" +msgstr "Digital-1" msgid "Digital-2" -msgstr "" +msgstr "Digital-2" msgid "Digital-3" -msgstr "" +msgstr "Digital-3" msgid "Phone-in" -msgstr "" +msgstr "Entrada del telèfon" msgid "Phone-out" -msgstr "" +msgstr "Sortida del telèfon" msgid "Video" -msgstr "" +msgstr "Vídeo" msgid "Radio" -msgstr "" +msgstr "Ràdio" msgid "Monitor" -msgstr "" +msgstr "Monitor" msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a la reproducció. Una altra " +"aplicació està utilitzant el dispositiu." msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a la reproducció. No teniu " +"permís per obrir el dispositiu." msgid "Could not open audio device for playback." -msgstr "" +msgstr "No s'ha pogut obrir el dispositiu d'àudio per a la reproducció." msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament. No teniu " +"permís per obrir el dispositiu." msgid "Could not open audio device for recording." -msgstr "" +msgstr "No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament." -#, fuzzy msgid "Could not open audio device for mixer control handling." -msgstr "No s'ha pogut el dispositiu d'àudio «%s» per a l'escriptura." +msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a la gestió del control del " +"mesclador." -#, fuzzy msgid "" "Could not open audio device for mixer control handling. This version of the " "Open Sound System is not supported by this element." -msgstr "No s'ha pogut el dispositiu d'àudio «%s» per a l'escriptura." +msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a la gestió del control del " +"mesclador. Aquesta versió de l'Open Sound System no és compatible amb aquest " +"element." msgid "Master" -msgstr "" +msgstr "Mestre" msgid "Front" -msgstr "" +msgstr "Frontal" -#, fuzzy msgid "Rear" -msgstr "Enregistrament" +msgstr "Posterior" msgid "Headphones" -msgstr "" +msgstr "Auriculars" msgid "Center" -msgstr "" +msgstr "Central" msgid "LFE" -msgstr "" +msgstr "LFE (efectes de baixa freqüència)" msgid "Surround" -msgstr "" +msgstr "So envoltant" -#, fuzzy msgid "Side" -msgstr "Vídeo" +msgstr "Lateral" msgid "Built-in Speaker" -msgstr "" +msgstr "Altaveu incorporat" msgid "AUX 1 Out" -msgstr "" +msgstr "Sortida AUX 1" msgid "AUX 2 Out" -msgstr "" +msgstr "Sortida AUX 2" msgid "AUX Out" -msgstr "" +msgstr "Sortida AUX" msgid "3D Depth" -msgstr "" +msgstr "Profunditat 3D" msgid "3D Center" -msgstr "" +msgstr "Centre 3D" msgid "3D Enhance" -msgstr "" +msgstr "Millora 3D" msgid "Telephone" -msgstr "" +msgstr "Telèfon" msgid "Line Out" -msgstr "" +msgstr "Línia de sortida" -#, fuzzy msgid "Line In" -msgstr "Línia-entrada" +msgstr "Línia d'entrada" msgid "Internal CD" -msgstr "" +msgstr "CD intern" msgid "Video In" -msgstr "" +msgstr "Entrada de vídeo" msgid "AUX 1 In" -msgstr "" +msgstr "Entrada AUX 1" msgid "AUX 2 In" -msgstr "" +msgstr "Entrada AUX 2" msgid "AUX In" -msgstr "" +msgstr "Entrada AUX" msgid "Record Gain" -msgstr "" +msgstr "Guany d'enregistrament" -#, fuzzy msgid "Output Gain" -msgstr "Ganància-sortida" +msgstr "Guany de sortida" -#, fuzzy msgid "Microphone Boost" -msgstr "Micròfon" +msgstr "Amplificació del micròfon" msgid "Loopback" -msgstr "" +msgstr "Bucle local" msgid "Diagnostic" -msgstr "" +msgstr "Diagnòstic" msgid "Bass Boost" -msgstr "" +msgstr "Amplificació dels baixos" msgid "Playback Ports" -msgstr "" +msgstr "Ports de reproducció" msgid "Input" -msgstr "" +msgstr "Entrada" msgid "Record Source" -msgstr "" +msgstr "Font d'enregistrament" -#, fuzzy msgid "Monitor Source" -msgstr "Monitor" +msgstr "Font del monitor" msgid "Keyboard Beep" -msgstr "" +msgstr "So del teclat" msgid "Simulate Stereo" -msgstr "" +msgstr "Estèreo simulat" msgid "Stereo" -msgstr "" +msgstr "Estèreo" msgid "Surround Sound" -msgstr "" +msgstr "So envoltant" -#, fuzzy msgid "Microphone Gain" -msgstr "Micròfon" +msgstr "Guany del micròfon" -#, fuzzy msgid "Speaker Source" -msgstr "Altaveu" +msgstr "Font de l'altaveu" -#, fuzzy msgid "Microphone Source" -msgstr "Micròfon" +msgstr "Font del micròfon" msgid "Jack" -msgstr "" +msgstr "Jack" msgid "Center / LFE" -msgstr "" +msgstr "Centre / LFE (efectes de baixa freqüència)" msgid "Stereo Mix" -msgstr "" +msgstr "Mescla estèreo" msgid "Mono Mix" -msgstr "" +msgstr "Mescla mono" msgid "Input Mix" -msgstr "" +msgstr "Mescla d'entrada" msgid "SPDIF In" -msgstr "" +msgstr "Entrada SPDIF" msgid "SPDIF Out" -msgstr "" +msgstr "Sortida SPDIF" -#, fuzzy msgid "Microphone 1" -msgstr "Micròfon" +msgstr "Micròfon 1" -#, fuzzy msgid "Microphone 2" -msgstr "Micròfon" +msgstr "Micròfon 2" -#, fuzzy msgid "Digital Out" -msgstr "Digital-1" +msgstr "Sortida digital" -#, fuzzy msgid "Digital In" -msgstr "Digital-1" +msgstr "Entrada digital" msgid "HDMI" -msgstr "" +msgstr "HDMI" msgid "Modem" -msgstr "" +msgstr "Mòdem" msgid "Handset" -msgstr "" +msgstr "Comandament a distància" msgid "Other" -msgstr "" +msgstr "Altres" msgid "None" -msgstr "" +msgstr "Cap" msgid "On" -msgstr "" +msgstr "Encès" msgid "Off" -msgstr "" +msgstr "Apagat" msgid "Mute" -msgstr "" +msgstr "Silenci" msgid "Fast" -msgstr "" +msgstr "Ràpid" #. TRANSLATORS: "Very Low" is a quality setting here msgid "Very Low" -msgstr "" +msgstr "Molt baixa" #. TRANSLATORS: "Low" is a quality setting here msgid "Low" -msgstr "" +msgstr "Baixa" #. TRANSLATORS: "Medium" is a quality setting here msgid "Medium" -msgstr "" +msgstr "Mitjana" #. TRANSLATORS: "High" is a quality setting here msgid "High" -msgstr "" +msgstr "Alta" #. TRANSLATORS: "Very High" is a quality setting here msgid "Very High" -msgstr "" +msgstr "Molt alta" #. TRANSLATORS: "Production" is a quality setting here msgid "Production" -msgstr "" +msgstr "Producció" -#, fuzzy msgid "Front Panel Microphone" -msgstr "Micròfon" +msgstr "Micròfon del quadre frontal" msgid "Front Panel Line In" -msgstr "" +msgstr "Línia d'entrada del quadre frontal" msgid "Front Panel Headphones" -msgstr "" +msgstr "Auriculars del quadre frontal" msgid "Front Panel Line Out" -msgstr "" +msgstr "Línia de sortida del quadre frontal" msgid "Green Connector" -msgstr "" +msgstr "Connector verd" msgid "Pink Connector" -msgstr "" +msgstr "Connector rosa" msgid "Blue Connector" -msgstr "" +msgstr "Connector blau" msgid "White Connector" -msgstr "" +msgstr "Connector blanc" msgid "Black Connector" -msgstr "" +msgstr "Connector negre" msgid "Gray Connector" -msgstr "" +msgstr "Connector gris" msgid "Orange Connector" -msgstr "" +msgstr "Connector taronja" msgid "Red Connector" -msgstr "" +msgstr "Connector vermell" msgid "Yellow Connector" -msgstr "" +msgstr "Connector groc" msgid "Green Front Panel Connector" -msgstr "" +msgstr "Connector verd del quadre frontal" msgid "Pink Front Panel Connector" -msgstr "" +msgstr "Connector rosa del quadre frontal" msgid "Blue Front Panel Connector" -msgstr "" +msgstr "Connector blau del quadre frontal" msgid "White Front Panel Connector" -msgstr "" +msgstr "Connector blanc del quadre frontal" msgid "Black Front Panel Connector" -msgstr "" +msgstr "Connector negre del quadre frontal" msgid "Gray Front Panel Connector" -msgstr "" +msgstr "Connector gris del quadre frontal" msgid "Orange Front Panel Connector" -msgstr "" +msgstr "Connector taronja del quadre frontal" msgid "Red Front Panel Connector" -msgstr "" +msgstr "Connector vermell del quadre frontal" msgid "Yellow Front Panel Connector" -msgstr "" +msgstr "Connector groc del quadre frontal" msgid "Spread Output" -msgstr "" +msgstr "Sortida de propagació" msgid "Downmix" -msgstr "" +msgstr "Downmix" msgid "Virtual Mixer Input" -msgstr "" +msgstr "Entrada del mesclador virtual" msgid "Virtual Mixer Output" -msgstr "" +msgstr "Sortida del mesclador virtual" msgid "Virtual Mixer Channels" -msgstr "" +msgstr "Canals del mesclador virtual" #. TRANSLATORS: name + number of a volume mixer control #, c-format msgid "%s %d Function" -msgstr "" +msgstr "Funció %s %d" #. TRANSLATORS: name of a volume mixer control #, c-format msgid "%s Function" -msgstr "" +msgstr "Funció %s" msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" +"No s'ha pogut obrir el dispositiu d'àudio per a la reproducció. Aquesta " +"versió de l'Open Sound System no és compatible amb aquest element." msgid "Playback is not supported by this audio device." -msgstr "" +msgstr "Aquest dispositiu d'àudio no permet la reproducció." msgid "Audio playback error." -msgstr "" +msgstr "S'ha produït un error al reproduir l'àudio." msgid "Recording is not supported by this audio device." -msgstr "" +msgstr "Aquest dispositiu d'àudio no permet l'enregistrament." msgid "Error recording from audio device." -msgstr "" +msgstr "S'ha produït un error a l'enregistrar des del dispositiu d'àudio." msgid "Gain" -msgstr "" +msgstr "Guany" msgid "Headphone" -msgstr "" +msgstr "Auriculars" #, c-format msgid "Error reading %d bytes from device '%s'." -msgstr "" +msgstr "S'ha produït un error al llegir %d bytes des del dispositiu «%s»." #, c-format msgid "Got unexpected frame size of %u instead of %u." -msgstr "" +msgstr "S'ha obtingut una mida de fotograma inesperada de %u en lloc de %u." #, c-format msgid "Error reading %d bytes on device '%s'." -msgstr "" +msgstr "S'ha produït un error al llegir %d bytes en el dispositiu «%s»." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" +"S'ha produït un error en obtenir les capacitats del dispositiu «%s»: no és " +"un controlador v4l2. Comproveu si és un controlador v4l1." #, c-format msgid "Failed to query attributes of input %d in device %s" msgstr "" +"S'ha produït un error en consultar els atributs de l'entrada %d en el " +"dispositiu %s" #, c-format msgid "Failed to get setting of tuner %d on device '%s'." msgstr "" +"No s'han pogut obtenir els paràmetres del sintonitzador %d en el dispositiu " +"«%s»." #, c-format msgid "Failed to query norm on device '%s'." -msgstr "" +msgstr "S'ha produït un error en consultar la norma en el dispositiu «%s»." #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "" +"No s'ha pogut obtenir els atributs dels controls en el dispositiu «%s»." #, c-format msgid "Cannot identify device '%s'." -msgstr "" +msgstr "No es pot identificar el dispositiu «%s»." #, c-format msgid "This isn't a device '%s'." -msgstr "" +msgstr "Això no és un dispositiu «%s»." #, c-format msgid "Could not open device '%s' for reading and writing." -msgstr "" +msgstr "No s'ha pogut obrir el dispositiu «%s» per a lectura i l'escriptura." #, c-format msgid "Device '%s' is not a capture device." -msgstr "" +msgstr "El dispositiu «%s» no és un dispositiu de captura." #, c-format msgid "Device '%s' is not a output device." -msgstr "" +msgstr "El dispositiu «%s» no és un dispositiu de sortida." #, c-format msgid "Failed to set norm for device '%s'." -msgstr "" +msgstr "No s'ha pogut establir la norma per al dispositiu «%s»." #, c-format msgid "Failed to get current tuner frequency for device '%s'." msgstr "" +"No s'ha pogut obtenir la freqüència actual del sintonitzador per al " +"dispositiu «%s»." #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" +"No s'ha pogut establir la freqüència actual del sintonitzador per al " +"dispositiu «%s» a %lu Hz." #, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "" +msgstr "No s'ha pogut obtenir la intensitat del senyal per al dispositiu «%s»." #, c-format msgid "Failed to get value for control %d on device '%s'." msgstr "" +"No s'ha pogut obtenir el valor per al control %d en el dispositiu «%s»." #, c-format msgid "Failed to set value %d for control %d on device '%s'." msgstr "" +"No s'ha pogut establir el valor %d per al control %d en el dispositiu «%s»." #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" +"No s'ha pogut obtenir l'entrada actual en el dispositiu «%s». Potser és un " +"dispositiu de ràdio" #, c-format msgid "Failed to set input %d on device %s." -msgstr "" +msgstr "No s'ha pogut establir l'entrada %d en el dispositiu %s." #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" +"No s'ha pogut obtenir la sortida actual en el dispositiu «%s». Potser és un " +"dispositiu de ràdio" #, c-format msgid "Failed to set output %d on device %s." -msgstr "" +msgstr "No s'ha pogut establir la sortida %d en el dispositiu %s." #, c-format msgid "Could not enqueue buffers in device '%s'." msgstr "" +"No s'han pogut enviar a la cua les memòries intermèdies en el dispositiu " +"«%s»." #, c-format msgid "Failed trying to get video frames from device '%s'." msgstr "" +"S'ha produït un error en provar d'obtenir fotogrames de vídeo des del " +"dispositiu «%s»." #, c-format msgid "Failed after %d tries. device %s. system error: %s" -msgstr "" +msgstr "Ha fallat després de %d intents. Dispositiu %s. Error de sistema: %s" #, c-format msgid "Could not get parameters on device '%s'" -msgstr "" +msgstr "No s'han pogut obtenir els paràmetres del dispositiu «%s»" msgid "Video input device did not accept new frame rate setting." msgstr "" +"El dispositiu d'entrada de vídeo no ha acceptat el paràmetre nou de " +"fotogrames per segon." #, c-format msgid "Could not map buffers from device '%s'" -msgstr "" +msgstr "No s'han pogut mapejar les memòries intermèdies del dispositiu «%s»" #, c-format msgid "The driver of device '%s' does not support any known capture method." msgstr "" +"El controlador del dispositiu «%s» no és compatible amb cap mètode de " +"captura conegut." msgid "Changing resolution at runtime is not yet supported." -msgstr "" +msgstr "Encara no es permet el canvi de la resolució en temps d'execució." msgid "Cannot operate without a clock" -msgstr "" +msgstr "No es pot operar sense un rellotge" + +#~ msgid "Describes the selected input element." +#~ msgstr "Descriu l'element d'entrada seleccionat." + +#~ msgid "Describes the selected output element for Audio/Video Conferencing." +#~ msgstr "" +#~ "Descriu l'element de sortida seleccionat per a les conferències d'àudio/" +#~ "vídeo." + +#~ msgid "Describes the selected output element for Music and Movies." +#~ msgstr "" +#~ "Descriu l'element de sortida seleccionat per a la música i les " +#~ "pel·lícules." + +#~ msgid "Describes the selected output element." +#~ msgstr "Descriu l'element de sortida seleccionat." + +#~ msgid "GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "L'audiosink del GStreamer per a les conferències d'àudio/vídeo" + +#~ msgid "GStreamer audiosink for Music and Movies" +#~ msgstr "L'audiosink del GStreamer per a la música i les pel·lícules" + +#~ msgid "" +#~ "GStreamer can play audio using any number of output elements. Some " +#~ "possible choices are osssink, esdsink and alsasink. The audiosink can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "El GStreamer pot reproduir l'àudio utilitzant qualsevol nombre d'elements " +#~ "de sortida. Algunes opcions possibles són l'osssink, l'esdsink i " +#~ "l'alsasink. L'audiosink pot ser un conducte parcial en lloc d'un sol " +#~ "element." + +#~ msgid "" +#~ "GStreamer can play video using any number of output elements. Some " +#~ "possible choices are xvimagesink, ximagesink, sdlvideosink and aasink. " +#~ "The videosink can be a partial pipeline instead of just one element." +#~ msgstr "" +#~ "El GStreamer pot reproduir el vídeo utilitzant qualsevol nombre " +#~ "d'elements de sortida. Algunes opcions possibles són el xvimagesink, el " +#~ "ximagesink, el sdlvideosink i l'aasink. El videosink pot ser un conducte " +#~ "parcial en lloc d'un sol element." + +#~ msgid "" +#~ "GStreamer can put visualization plugins in a pipeline to transform audio " +#~ "stream in video frames. Default is goom but more visualization plugins " +#~ "will be ported soon. The visualization plugin can be a partial pipeline " +#~ "instead of just one element." +#~ msgstr "" +#~ "El GStreamer pot posar els connectors de visualització en un conducte per " +#~ "transformar el flux d'àudio en els fotogrames del vídeo. Per defecte és " +#~ "el goom però aviat s'importaran més connectors de visualització. El " +#~ "connector de visualització pot ser un conducte parcial en lloc d'un sol " +#~ "element." + +#~ msgid "" +#~ "GStreamer can record audio using any number of input elements. Some " +#~ "possible choices are osssrc, esdsrc and alsasrc. The audio source can be " +#~ "a partial pipeline instead of just one element." +#~ msgstr "" +#~ "El GStreamer pot enregistrar l'àudio utilitzant qualsevol nombre " +#~ "d'elements d'entrada. Algunes opcions possibles són l'osssrc, l'esdsrc i " +#~ "l'alsasrc. La font d'àudio pot ser un conducte parcial en lloc d'un sol " +#~ "element." + +#~ msgid "" +#~ "GStreamer can record video from any number of input elements. Some " +#~ "possible choices are v4lsrc and videotestsrc. The video source can be a " +#~ "partial pipeline instead of just one element." +#~ msgstr "" +#~ "El GStreamer pot enregistrar el vídeo de qualsevol nombre d'elements " +#~ "d'entrada. Algunes opcions possibles són el v4lsrc i el videotestsrc. La " +#~ "font del vídeo pot ser un conducte parcial en lloc d'un sol element." + +#~ msgid "default GStreamer audio source" +#~ msgstr "font d'àudio del GStreamer per defecte" + +#~ msgid "default GStreamer audiosink" +#~ msgstr "audiosink del GStreamer per defecte" + +#~ msgid "default GStreamer video source" +#~ msgstr "font de vídeo del GStreamer per defecte" + +#~ msgid "default GStreamer videosink" +#~ msgstr "videosink del GStreamer per defecte" + +#~ msgid "default GStreamer visualization plugin" +#~ msgstr "connector de visualització del GStreamer per defecte" + +#~ msgid "description for GStreamer audiosink for Audio/Video Conferencing" +#~ msgstr "" +#~ "descripció de l'audiosink del GStreamer per a les conferències d'àudio/" +#~ "vídeo" + +#~ msgid "description for GStreamer audiosink for Music and Movies" +#~ msgstr "" +#~ "descripció de l'audiosink del GStreamer per a la música i les pel·lícules" + +#~ msgid "description for default GStreamer audiosink" +#~ msgstr "descripció de l'audiosink del GStreamer per defecte" + +#~ msgid "description for default GStreamer audiosrc" +#~ msgstr "descripció de l'audiosrc del GStreamer per defecte" diff --git a/po/cs.gmo b/po/cs.gmo index 08cee8b..128ade3 100644 Binary files a/po/cs.gmo and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po index 9a92b87..ab849d2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-12 23:07+0100\n" "Last-Translator: Petr Kovar \n" "Language-Team: Czech \n" diff --git a/po/da.gmo b/po/da.gmo index 9172df3..9a5c6ea 100644 Binary files a/po/da.gmo and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index 1ee58b3..2cfb6df 100644 --- a/po/da.po +++ b/po/da.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-07 23:54+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" diff --git a/po/de.gmo b/po/de.gmo index 878c3bc..7dfb404 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index d02c6d9..3281ae5 100644 --- a/po/de.po +++ b/po/de.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-21 22:36+0100\n" "Last-Translator: Christian Kirbach \n" "Language-Team: German \n" diff --git a/po/el.gmo b/po/el.gmo index edc0193..9d51ab2 100644 Binary files a/po/el.gmo and b/po/el.gmo differ diff --git a/po/el.po b/po/el.po index 666c90b..08b2099 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-10-27 12:16+0200\n" "Last-Translator: Michael Kotsarinis \n" "Language-Team: Greek \n" diff --git a/po/en_GB.gmo b/po/en_GB.gmo index 129bffc..404c65e 100644 Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po index 2568d35..e3eae96 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.8.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2004-04-26 10:41-0400\n" "Last-Translator: Gareth Owen \n" "Language-Team: English (British) \n" diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 0000000..ecb4ae2 Binary files /dev/null and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..4813b1a --- /dev/null +++ b/po/eo.po @@ -0,0 +1,651 @@ +# Esperanto translation for gst-plugins-good. +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the gst-plugins-good package. +# Kristjan SCHMIDT , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" +"PO-Revision-Date: 2011-06-04 21:48+0100\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Could not establish connection to sound server" +msgstr "" + +msgid "Failed to query sound server capabilities" +msgstr "" + +#. TRANSLATORS: 'song title' by 'artist name' +#, c-format +msgid "'%s' by '%s'" +msgstr "'%s' de '%s'" + +msgid "Internal data stream error." +msgstr "Interna datumflu-eraro." + +msgid "Failed to decode JPEG image" +msgstr "" + +msgid "Could not connect to server" +msgstr "Ne eblis konekti al servilo" + +msgid "Server does not support seeking." +msgstr "" + +msgid "Could not resolve server name." +msgstr "" + +msgid "Could not establish connection to server." +msgstr "" + +msgid "Secure connection setup failed." +msgstr "" + +msgid "" +"A network error occured, or the server closed the connection unexpectedly." +msgstr "" + +msgid "Server sent bad data." +msgstr "" + +msgid "No URL set." +msgstr "" + +msgid "No or invalid input audio, AVI stream will be corrupt." +msgstr "" + +msgid "This file contains no playable streams." +msgstr "" + +msgid "This file is invalid and cannot be played." +msgstr "" + +msgid "This file is corrupt and cannot be played." +msgstr "" + +msgid "Invalid atom size." +msgstr "" + +msgid "This file is incomplete and cannot be played." +msgstr "" + +msgid "The video in this file might not play correctly." +msgstr "" + +#, c-format +msgid "This file contains too many streams. Only playing first %d" +msgstr "" + +msgid "" +"No supported stream was found. You might need to install a GStreamer RTSP " +"extension plugin for Real media streams." +msgstr "" + +msgid "" +"No supported stream was found. You might need to allow more transport " +"protocols or may otherwise be missing the right GStreamer RTSP extension " +"plugin." +msgstr "" + +msgid "Internal data flow error." +msgstr "" + +msgid "Volume" +msgstr "Laŭteco" + +msgid "Bass" +msgstr "Baso" + +msgid "Treble" +msgstr "" + +msgid "Synth" +msgstr "Sintezilo" + +msgid "PCM" +msgstr "" + +msgid "Speaker" +msgstr "Parolilo" + +msgid "Line-in" +msgstr "" + +msgid "Microphone" +msgstr "Mikrofono" + +msgid "CD" +msgstr "KD" + +msgid "Mixer" +msgstr "Miksilo" + +msgid "PCM-2" +msgstr "" + +msgid "Record" +msgstr "Registri" + +msgid "In-gain" +msgstr "" + +msgid "Out-gain" +msgstr "" + +msgid "Line-1" +msgstr "" + +msgid "Line-2" +msgstr "" + +msgid "Line-3" +msgstr "" + +msgid "Digital-1" +msgstr "" + +msgid "Digital-2" +msgstr "" + +msgid "Digital-3" +msgstr "" + +msgid "Phone-in" +msgstr "" + +msgid "Phone-out" +msgstr "" + +msgid "Video" +msgstr "Video" + +msgid "Radio" +msgstr "Radio" + +msgid "Monitor" +msgstr "Ekrano" + +msgid "" +"Could not open audio device for playback. Device is being used by another " +"application." +msgstr "" +"Ne eblis malfermi la sonaparaton por reproduktado. Ĝi estas uzate de alia " +"aplikaĵo." + +msgid "" +"Could not open audio device for playback. You don't have permission to open " +"the device." +msgstr "" + +msgid "Could not open audio device for playback." +msgstr "Ne eblis malfermi la sonaparaton por reproduktado." + +msgid "" +"Could not open audio device for recording. You don't have permission to open " +"the device." +msgstr "" + +msgid "Could not open audio device for recording." +msgstr "Ne eblis malfermi sonaparaton por registrado." + +msgid "Could not open audio device for mixer control handling." +msgstr "" + +msgid "" +"Could not open audio device for mixer control handling. This version of the " +"Open Sound System is not supported by this element." +msgstr "" + +msgid "Master" +msgstr "Ĉefe" + +msgid "Front" +msgstr "Antaŭe" + +msgid "Rear" +msgstr "Malantaŭe" + +msgid "Headphones" +msgstr "Kaptelefono" + +msgid "Center" +msgstr "Centre" + +msgid "LFE" +msgstr "" + +msgid "Surround" +msgstr "Ĉirkaŭe" + +msgid "Side" +msgstr "Flanke" + +msgid "Built-in Speaker" +msgstr "" + +msgid "AUX 1 Out" +msgstr "" + +msgid "AUX 2 Out" +msgstr "" + +msgid "AUX Out" +msgstr "" + +msgid "3D Depth" +msgstr "" + +msgid "3D Center" +msgstr "" + +msgid "3D Enhance" +msgstr "" + +msgid "Telephone" +msgstr "" + +msgid "Line Out" +msgstr "" + +msgid "Line In" +msgstr "" + +msgid "Internal CD" +msgstr "" + +msgid "Video In" +msgstr "" + +msgid "AUX 1 In" +msgstr "" + +msgid "AUX 2 In" +msgstr "" + +msgid "AUX In" +msgstr "" + +msgid "Record Gain" +msgstr "" + +msgid "Output Gain" +msgstr "" + +msgid "Microphone Boost" +msgstr "" + +msgid "Loopback" +msgstr "" + +msgid "Diagnostic" +msgstr "" + +msgid "Bass Boost" +msgstr "" + +msgid "Playback Ports" +msgstr "" + +msgid "Input" +msgstr "Enigo" + +msgid "Record Source" +msgstr "" + +msgid "Monitor Source" +msgstr "" + +msgid "Keyboard Beep" +msgstr "" + +msgid "Simulate Stereo" +msgstr "" + +msgid "Stereo" +msgstr "Dukanale" + +msgid "Surround Sound" +msgstr "Ĉirkaŭa sono" + +msgid "Microphone Gain" +msgstr "" + +msgid "Speaker Source" +msgstr "" + +msgid "Microphone Source" +msgstr "" + +msgid "Jack" +msgstr "" + +msgid "Center / LFE" +msgstr "" + +msgid "Stereo Mix" +msgstr "" + +msgid "Mono Mix" +msgstr "" + +msgid "Input Mix" +msgstr "" + +msgid "SPDIF In" +msgstr "" + +msgid "SPDIF Out" +msgstr "" + +msgid "Microphone 1" +msgstr "Mikrofono 1" + +msgid "Microphone 2" +msgstr "Mikrofono 2" + +msgid "Digital Out" +msgstr "" + +msgid "Digital In" +msgstr "" + +msgid "HDMI" +msgstr "" + +msgid "Modem" +msgstr "Modemo" + +msgid "Handset" +msgstr "" + +msgid "Other" +msgstr "Alia" + +msgid "None" +msgstr "Neniu" + +msgid "On" +msgstr "Enŝaltite" + +msgid "Off" +msgstr "Elŝaltite" + +msgid "Mute" +msgstr "Silentigi" + +msgid "Fast" +msgstr "Rapide" + +#. TRANSLATORS: "Very Low" is a quality setting here +msgid "Very Low" +msgstr "Tre malalte" + +#. TRANSLATORS: "Low" is a quality setting here +msgid "Low" +msgstr "Malalte" + +#. TRANSLATORS: "Medium" is a quality setting here +msgid "Medium" +msgstr "Meze" + +#. TRANSLATORS: "High" is a quality setting here +msgid "High" +msgstr "Alte" + +#. TRANSLATORS: "Very High" is a quality setting here +msgid "Very High" +msgstr "Tre alte" + +#. TRANSLATORS: "Production" is a quality setting here +msgid "Production" +msgstr "" + +msgid "Front Panel Microphone" +msgstr "" + +msgid "Front Panel Line In" +msgstr "" + +msgid "Front Panel Headphones" +msgstr "" + +msgid "Front Panel Line Out" +msgstr "" + +msgid "Green Connector" +msgstr "" + +msgid "Pink Connector" +msgstr "" + +msgid "Blue Connector" +msgstr "" + +msgid "White Connector" +msgstr "" + +msgid "Black Connector" +msgstr "" + +msgid "Gray Connector" +msgstr "" + +msgid "Orange Connector" +msgstr "" + +msgid "Red Connector" +msgstr "" + +msgid "Yellow Connector" +msgstr "" + +msgid "Green Front Panel Connector" +msgstr "" + +msgid "Pink Front Panel Connector" +msgstr "" + +msgid "Blue Front Panel Connector" +msgstr "" + +msgid "White Front Panel Connector" +msgstr "" + +msgid "Black Front Panel Connector" +msgstr "" + +msgid "Gray Front Panel Connector" +msgstr "" + +msgid "Orange Front Panel Connector" +msgstr "" + +msgid "Red Front Panel Connector" +msgstr "" + +msgid "Yellow Front Panel Connector" +msgstr "" + +msgid "Spread Output" +msgstr "" + +msgid "Downmix" +msgstr "" + +msgid "Virtual Mixer Input" +msgstr "" + +msgid "Virtual Mixer Output" +msgstr "" + +msgid "Virtual Mixer Channels" +msgstr "" + +#. TRANSLATORS: name + number of a volume mixer control +#, c-format +msgid "%s %d Function" +msgstr "%s %d funkcio" + +#. TRANSLATORS: name of a volume mixer control +#, c-format +msgid "%s Function" +msgstr "%s funcio" + +msgid "" +"Could not open audio device for playback. This version of the Open Sound " +"System is not supported by this element." +msgstr "" + +msgid "Playback is not supported by this audio device." +msgstr "" + +msgid "Audio playback error." +msgstr "" + +msgid "Recording is not supported by this audio device." +msgstr "" + +msgid "Error recording from audio device." +msgstr "" + +msgid "Gain" +msgstr "" + +msgid "Headphone" +msgstr "" + +#, c-format +msgid "Error reading %d bytes from device '%s'." +msgstr "" + +#, c-format +msgid "Got unexpected frame size of %u instead of %u." +msgstr "" + +#, c-format +msgid "Error reading %d bytes on device '%s'." +msgstr "" + +#, c-format +msgid "" +"Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " +"it is a v4l1 driver." +msgstr "" + +#, c-format +msgid "Failed to query attributes of input %d in device %s" +msgstr "" + +#, c-format +msgid "Failed to get setting of tuner %d on device '%s'." +msgstr "" + +#, c-format +msgid "Failed to query norm on device '%s'." +msgstr "" + +#, c-format +msgid "Failed getting controls attributes on device '%s'." +msgstr "" + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + +#, c-format +msgid "This isn't a device '%s'." +msgstr "Tio ne estas '%s'-aparato." + +#, c-format +msgid "Could not open device '%s' for reading and writing." +msgstr "" + +#, c-format +msgid "Device '%s' is not a capture device." +msgstr "" + +#, c-format +msgid "Device '%s' is not a output device." +msgstr "" + +#, c-format +msgid "Failed to set norm for device '%s'." +msgstr "" + +#, c-format +msgid "Failed to get current tuner frequency for device '%s'." +msgstr "" + +#, c-format +msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." +msgstr "" + +#, c-format +msgid "Failed to get signal strength for device '%s'." +msgstr "" + +#, c-format +msgid "Failed to get value for control %d on device '%s'." +msgstr "" + +#, c-format +msgid "Failed to set value %d for control %d on device '%s'." +msgstr "" + +#, c-format +msgid "Failed to get current input on device '%s'. May be it is a radio device" +msgstr "" + +#, c-format +msgid "Failed to set input %d on device %s." +msgstr "" + +#, c-format +msgid "" +"Failed to get current output on device '%s'. May be it is a radio device" +msgstr "" + +#, c-format +msgid "Failed to set output %d on device %s." +msgstr "" + +#, c-format +msgid "Could not enqueue buffers in device '%s'." +msgstr "" + +#, c-format +msgid "Failed trying to get video frames from device '%s'." +msgstr "" + +#, c-format +msgid "Failed after %d tries. device %s. system error: %s" +msgstr "" + +#, c-format +msgid "Could not get parameters on device '%s'" +msgstr "" + +msgid "Video input device did not accept new frame rate setting." +msgstr "" + +#, c-format +msgid "Could not map buffers from device '%s'" +msgstr "" + +#, c-format +msgid "The driver of device '%s' does not support any known capture method." +msgstr "" + +msgid "Changing resolution at runtime is not yet supported." +msgstr "" + +msgid "Cannot operate without a clock" +msgstr "" diff --git a/po/es.gmo b/po/es.gmo index 096f45d..b0ff14a 100644 Binary files a/po/es.gmo and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po index 2a66fc9..487fd7f 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-02-12 18:30+0100\n" "Last-Translator: Jorge González González \n" "Language-Team: Spanish \n" diff --git a/po/eu.gmo b/po/eu.gmo index 39c97da..778aa0e 100644 Binary files a/po/eu.gmo and b/po/eu.gmo differ diff --git a/po/eu.po b/po/eu.po index 710d817..61db9d0 100644 --- a/po/eu.po +++ b/po/eu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.18.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-03-25 12:37+0100\n" "Last-Translator: Mikel Olasagasti Uranga \n" "Language-Team: Basque \n" diff --git a/po/fi.gmo b/po/fi.gmo index 5e251e1..d22480c 100644 Binary files a/po/fi.gmo and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index ff809c5..7363d97 100644 --- a/po/fi.po +++ b/po/fi.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-11-17 23:03+0200\n" "Last-Translator: Tommi Vainikainen \n" "Language-Team: Finnish \n" diff --git a/po/fr.gmo b/po/fr.gmo index defc2b4..c61c1ad 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index c3a6013..945e1e5 100644 --- a/po/fr.po +++ b/po/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-04-28 09:22+0200\n" "Last-Translator: Claude Paroz \n" "Language-Team: French \n" diff --git a/po/gl.gmo b/po/gl.gmo index 205961c..027c028 100644 Binary files a/po/gl.gmo and b/po/gl.gmo differ diff --git a/po/gl.po b/po/gl.po index c8f52a6..b0b12f2 100644 --- a/po/gl.po +++ b/po/gl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-09 21:20+0100\n" "Last-Translator: Fran Diéguez \n" "Language-Team: Galician \n" diff --git a/po/gst-plugins-good-0.10.pot b/po/gst-plugins-good-0.10.pot index 23595aa..c9aee42 100644 --- a/po/gst-plugins-good-0.10.pot +++ b/po/gst-plugins-good-0.10.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 0.10.29\n" +"Project-Id-Version: gst-plugins-good 0.10.31\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,128 +16,128 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ext/esd/esdsink.c:253 ext/esd/esdsink.c:358 +#: ext/esd/esdsink.c:252 ext/esd/esdsink.c:357 msgid "Could not establish connection to sound server" msgstr "" -#: ext/esd/esdsink.c:260 +#: ext/esd/esdsink.c:259 msgid "Failed to query sound server capabilities" msgstr "" #. TRANSLATORS: 'song title' by 'artist name' -#: ext/pulse/pulsesink.c:2686 +#: ext/pulse/pulsesink.c:2889 #, c-format msgid "'%s' by '%s'" msgstr "" -#: ext/flac/gstflacdec.c:1117 ext/libpng/gstpngdec.c:343 +#: ext/flac/gstflacdec.c:1150 ext/libpng/gstpngdec.c:343 #: ext/libpng/gstpngdec.c:354 ext/libpng/gstpngdec.c:553 -#: ext/wavpack/gstwavpackparse.c:1170 gst/avi/gstavidemux.c:5203 +#: ext/wavpack/gstwavpackparse.c:1173 gst/avi/gstavidemux.c:5211 msgid "Internal data stream error." msgstr "" -#: ext/jpeg/gstjpegdec.c:286 +#: ext/jpeg/gstjpegdec.c:289 msgid "Failed to decode JPEG image" msgstr "" -#: ext/shout2/gstshout2.c:578 +#: ext/shout2/gstshout2.c:588 msgid "Could not connect to server" msgstr "" -#: ext/soup/gstsouphttpsrc.c:871 +#: ext/soup/gstsouphttpsrc.c:873 msgid "Server does not support seeking." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1078 +#: ext/soup/gstsouphttpsrc.c:1080 msgid "Could not resolve server name." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1084 +#: ext/soup/gstsouphttpsrc.c:1086 msgid "Could not establish connection to server." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1089 +#: ext/soup/gstsouphttpsrc.c:1091 msgid "Secure connection setup failed." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1094 +#: ext/soup/gstsouphttpsrc.c:1096 msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1100 +#: ext/soup/gstsouphttpsrc.c:1102 msgid "Server sent bad data." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1249 +#: ext/soup/gstsouphttpsrc.c:1251 msgid "No URL set." msgstr "" -#: gst/avi/gstavimux.c:1812 +#: gst/avi/gstavimux.c:1806 msgid "No or invalid input audio, AVI stream will be corrupt." msgstr "" -#: gst/isomp4/qtdemux.c:519 gst/isomp4/qtdemux.c:523 +#: gst/isomp4/qtdemux.c:522 gst/isomp4/qtdemux.c:526 msgid "This file contains no playable streams." msgstr "" -#: gst/isomp4/qtdemux.c:558 gst/isomp4/qtdemux.c:4009 -#: gst/isomp4/qtdemux.c:4071 gst/isomp4/qtdemux.c:4219 +#: gst/isomp4/qtdemux.c:561 gst/isomp4/qtdemux.c:4080 +#: gst/isomp4/qtdemux.c:4150 gst/isomp4/qtdemux.c:4299 msgid "This file is invalid and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:2439 gst/isomp4/qtdemux.c:2515 -#: gst/isomp4/qtdemux.c:2558 gst/isomp4/qtdemux.c:4798 -#: gst/isomp4/qtdemux.c:4805 gst/isomp4/qtdemux.c:5391 -#: gst/isomp4/qtdemux.c:5817 gst/isomp4/qtdemux.c:5824 -#: gst/isomp4/qtdemux.c:7305 +#: gst/isomp4/qtdemux.c:2464 gst/isomp4/qtdemux.c:2540 +#: gst/isomp4/qtdemux.c:2583 gst/isomp4/qtdemux.c:4881 +#: gst/isomp4/qtdemux.c:4888 gst/isomp4/qtdemux.c:5479 +#: gst/isomp4/qtdemux.c:5907 gst/isomp4/qtdemux.c:5914 +#: gst/isomp4/qtdemux.c:7477 msgid "This file is corrupt and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:2647 +#: gst/isomp4/qtdemux.c:2672 msgid "Invalid atom size." msgstr "" -#: gst/isomp4/qtdemux.c:2716 +#: gst/isomp4/qtdemux.c:2741 msgid "This file is incomplete and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:4994 +#: gst/isomp4/qtdemux.c:5077 msgid "The video in this file might not play correctly." msgstr "" -#: gst/isomp4/qtdemux.c:7334 +#: gst/isomp4/qtdemux.c:7506 #, c-format msgid "This file contains too many streams. Only playing first %d" msgstr "" -#: gst/rtsp/gstrtspsrc.c:5187 +#: gst/rtsp/gstrtspsrc.c:5380 msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" -#: gst/rtsp/gstrtspsrc.c:5192 +#: gst/rtsp/gstrtspsrc.c:5385 msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -#: gst/wavparse/gstwavparse.c:2103 +#: gst/wavparse/gstwavparse.c:2109 msgid "Internal data flow error." msgstr "" -#: sys/oss/gstossmixertrack.c:98 sys/oss4/oss4-mixer.c:722 +#: sys/oss/gstossmixertrack.c:98 sys/oss4/oss4-mixer.c:728 #: sys/sunaudio/gstsunaudiomixertrack.c:69 msgid "Volume" msgstr "" -#: sys/oss/gstossmixertrack.c:99 sys/oss4/oss4-mixer.c:735 +#: sys/oss/gstossmixertrack.c:99 sys/oss4/oss4-mixer.c:741 msgid "Bass" msgstr "" -#: sys/oss/gstossmixertrack.c:100 sys/oss4/oss4-mixer.c:736 +#: sys/oss/gstossmixertrack.c:100 sys/oss4/oss4-mixer.c:742 msgid "Treble" msgstr "" @@ -145,7 +145,7 @@ msgstr "" msgid "Synth" msgstr "" -#: sys/oss/gstossmixertrack.c:102 sys/oss4/oss4-mixer.c:750 +#: sys/oss/gstossmixertrack.c:102 sys/oss4/oss4-mixer.c:756 msgid "PCM" msgstr "" @@ -157,7 +157,7 @@ msgstr "" msgid "Line-in" msgstr "" -#: sys/oss/gstossmixertrack.c:105 sys/oss4/oss4-mixer.c:741 +#: sys/oss/gstossmixertrack.c:105 sys/oss4/oss4-mixer.c:747 msgid "Microphone" msgstr "" @@ -225,27 +225,27 @@ msgstr "" msgid "Radio" msgstr "" -#: sys/oss/gstossmixertrack.c:122 sys/oss4/oss4-mixer.c:764 +#: sys/oss/gstossmixertrack.c:122 sys/oss4/oss4-mixer.c:770 #: sys/sunaudio/gstsunaudiomixertrack.c:71 msgid "Monitor" msgstr "" -#: sys/oss/gstosssink.c:399 sys/oss4/oss4-sink.c:494 -#: sys/oss4/oss4-source.c:361 +#: sys/oss/gstosssink.c:399 sys/oss4/oss4-sink.c:495 +#: sys/oss4/oss4-source.c:362 msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -#: sys/oss/gstosssink.c:406 sys/oss4/oss4-sink.c:504 -#: sys/oss4/oss4-source.c:371 +#: sys/oss/gstosssink.c:406 sys/oss4/oss4-sink.c:505 +#: sys/oss4/oss4-source.c:372 msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -#: sys/oss/gstosssink.c:414 sys/oss4/oss4-sink.c:515 -#: sys/oss4/oss4-source.c:382 +#: sys/oss/gstosssink.c:414 sys/oss4/oss4-sink.c:516 +#: sys/oss4/oss4-source.c:383 msgid "Could not open audio device for playback." msgstr "" @@ -259,425 +259,425 @@ msgstr "" msgid "Could not open audio device for recording." msgstr "" -#: sys/oss4/oss4-mixer.c:302 +#: sys/oss4/oss4-mixer.c:303 msgid "Could not open audio device for mixer control handling." msgstr "" -#: sys/oss4/oss4-mixer.c:316 +#: sys/oss4/oss4-mixer.c:317 msgid "" "Could not open audio device for mixer control handling. This version of the " "Open Sound System is not supported by this element." msgstr "" -#: sys/oss4/oss4-mixer.c:723 +#: sys/oss4/oss4-mixer.c:729 msgid "Master" msgstr "" -#: sys/oss4/oss4-mixer.c:724 +#: sys/oss4/oss4-mixer.c:730 msgid "Front" msgstr "" -#: sys/oss4/oss4-mixer.c:725 +#: sys/oss4/oss4-mixer.c:731 msgid "Rear" msgstr "" -#: sys/oss4/oss4-mixer.c:726 +#: sys/oss4/oss4-mixer.c:732 msgid "Headphones" msgstr "" -#: sys/oss4/oss4-mixer.c:727 +#: sys/oss4/oss4-mixer.c:733 msgid "Center" msgstr "" -#: sys/oss4/oss4-mixer.c:728 +#: sys/oss4/oss4-mixer.c:734 msgid "LFE" msgstr "" -#: sys/oss4/oss4-mixer.c:729 +#: sys/oss4/oss4-mixer.c:735 msgid "Surround" msgstr "" -#: sys/oss4/oss4-mixer.c:730 +#: sys/oss4/oss4-mixer.c:736 msgid "Side" msgstr "" -#: sys/oss4/oss4-mixer.c:731 sys/sunaudio/gstsunaudiomixertrack.c:72 +#: sys/oss4/oss4-mixer.c:737 sys/sunaudio/gstsunaudiomixertrack.c:72 msgid "Built-in Speaker" msgstr "" -#: sys/oss4/oss4-mixer.c:732 sys/sunaudio/gstsunaudiomixertrack.c:76 +#: sys/oss4/oss4-mixer.c:738 sys/sunaudio/gstsunaudiomixertrack.c:76 msgid "AUX 1 Out" msgstr "" -#: sys/oss4/oss4-mixer.c:733 sys/sunaudio/gstsunaudiomixertrack.c:77 +#: sys/oss4/oss4-mixer.c:739 sys/sunaudio/gstsunaudiomixertrack.c:77 msgid "AUX 2 Out" msgstr "" -#: sys/oss4/oss4-mixer.c:734 +#: sys/oss4/oss4-mixer.c:740 msgid "AUX Out" msgstr "" -#: sys/oss4/oss4-mixer.c:737 +#: sys/oss4/oss4-mixer.c:743 msgid "3D Depth" msgstr "" -#: sys/oss4/oss4-mixer.c:738 +#: sys/oss4/oss4-mixer.c:744 msgid "3D Center" msgstr "" -#: sys/oss4/oss4-mixer.c:739 +#: sys/oss4/oss4-mixer.c:745 msgid "3D Enhance" msgstr "" -#: sys/oss4/oss4-mixer.c:740 +#: sys/oss4/oss4-mixer.c:746 msgid "Telephone" msgstr "" -#: sys/oss4/oss4-mixer.c:742 sys/sunaudio/gstsunaudiomixertrack.c:74 +#: sys/oss4/oss4-mixer.c:748 sys/sunaudio/gstsunaudiomixertrack.c:74 msgid "Line Out" msgstr "" -#: sys/oss4/oss4-mixer.c:743 sys/oss4/oss4-mixer.c:744 +#: sys/oss4/oss4-mixer.c:749 sys/oss4/oss4-mixer.c:750 msgid "Line In" msgstr "" -#: sys/oss4/oss4-mixer.c:745 +#: sys/oss4/oss4-mixer.c:751 msgid "Internal CD" msgstr "" -#: sys/oss4/oss4-mixer.c:746 +#: sys/oss4/oss4-mixer.c:752 msgid "Video In" msgstr "" -#: sys/oss4/oss4-mixer.c:747 +#: sys/oss4/oss4-mixer.c:753 msgid "AUX 1 In" msgstr "" -#: sys/oss4/oss4-mixer.c:748 +#: sys/oss4/oss4-mixer.c:754 msgid "AUX 2 In" msgstr "" -#: sys/oss4/oss4-mixer.c:749 +#: sys/oss4/oss4-mixer.c:755 msgid "AUX In" msgstr "" -#: sys/oss4/oss4-mixer.c:751 sys/oss4/oss4-mixer.c:752 +#: sys/oss4/oss4-mixer.c:757 sys/oss4/oss4-mixer.c:758 msgid "Record Gain" msgstr "" -#: sys/oss4/oss4-mixer.c:753 +#: sys/oss4/oss4-mixer.c:759 msgid "Output Gain" msgstr "" -#: sys/oss4/oss4-mixer.c:754 +#: sys/oss4/oss4-mixer.c:760 msgid "Microphone Boost" msgstr "" -#: sys/oss4/oss4-mixer.c:755 +#: sys/oss4/oss4-mixer.c:761 msgid "Loopback" msgstr "" -#: sys/oss4/oss4-mixer.c:756 +#: sys/oss4/oss4-mixer.c:762 msgid "Diagnostic" msgstr "" -#: sys/oss4/oss4-mixer.c:757 +#: sys/oss4/oss4-mixer.c:763 msgid "Bass Boost" msgstr "" -#: sys/oss4/oss4-mixer.c:758 +#: sys/oss4/oss4-mixer.c:764 msgid "Playback Ports" msgstr "" -#: sys/oss4/oss4-mixer.c:759 +#: sys/oss4/oss4-mixer.c:765 msgid "Input" msgstr "" -#: sys/oss4/oss4-mixer.c:760 sys/oss4/oss4-mixer.c:761 +#: sys/oss4/oss4-mixer.c:766 sys/oss4/oss4-mixer.c:767 msgid "Record Source" msgstr "" -#: sys/oss4/oss4-mixer.c:762 +#: sys/oss4/oss4-mixer.c:768 msgid "Monitor Source" msgstr "" -#: sys/oss4/oss4-mixer.c:763 +#: sys/oss4/oss4-mixer.c:769 msgid "Keyboard Beep" msgstr "" -#: sys/oss4/oss4-mixer.c:765 +#: sys/oss4/oss4-mixer.c:771 msgid "Simulate Stereo" msgstr "" -#: sys/oss4/oss4-mixer.c:766 sys/oss4/oss4-mixer.c:786 +#: sys/oss4/oss4-mixer.c:772 sys/oss4/oss4-mixer.c:792 msgid "Stereo" msgstr "" -#: sys/oss4/oss4-mixer.c:767 +#: sys/oss4/oss4-mixer.c:773 msgid "Surround Sound" msgstr "" -#: sys/oss4/oss4-mixer.c:768 +#: sys/oss4/oss4-mixer.c:774 msgid "Microphone Gain" msgstr "" -#: sys/oss4/oss4-mixer.c:769 +#: sys/oss4/oss4-mixer.c:775 msgid "Speaker Source" msgstr "" -#: sys/oss4/oss4-mixer.c:770 +#: sys/oss4/oss4-mixer.c:776 msgid "Microphone Source" msgstr "" -#: sys/oss4/oss4-mixer.c:771 +#: sys/oss4/oss4-mixer.c:777 msgid "Jack" msgstr "" -#: sys/oss4/oss4-mixer.c:772 +#: sys/oss4/oss4-mixer.c:778 msgid "Center / LFE" msgstr "" -#: sys/oss4/oss4-mixer.c:773 +#: sys/oss4/oss4-mixer.c:779 msgid "Stereo Mix" msgstr "" -#: sys/oss4/oss4-mixer.c:774 +#: sys/oss4/oss4-mixer.c:780 msgid "Mono Mix" msgstr "" -#: sys/oss4/oss4-mixer.c:775 +#: sys/oss4/oss4-mixer.c:781 msgid "Input Mix" msgstr "" -#: sys/oss4/oss4-mixer.c:776 +#: sys/oss4/oss4-mixer.c:782 msgid "SPDIF In" msgstr "" -#: sys/oss4/oss4-mixer.c:777 sys/sunaudio/gstsunaudiomixertrack.c:75 +#: sys/oss4/oss4-mixer.c:783 sys/sunaudio/gstsunaudiomixertrack.c:75 msgid "SPDIF Out" msgstr "" -#: sys/oss4/oss4-mixer.c:778 +#: sys/oss4/oss4-mixer.c:784 msgid "Microphone 1" msgstr "" -#: sys/oss4/oss4-mixer.c:779 +#: sys/oss4/oss4-mixer.c:785 msgid "Microphone 2" msgstr "" -#: sys/oss4/oss4-mixer.c:780 +#: sys/oss4/oss4-mixer.c:786 msgid "Digital Out" msgstr "" -#: sys/oss4/oss4-mixer.c:781 +#: sys/oss4/oss4-mixer.c:787 msgid "Digital In" msgstr "" -#: sys/oss4/oss4-mixer.c:782 +#: sys/oss4/oss4-mixer.c:788 msgid "HDMI" msgstr "" -#: sys/oss4/oss4-mixer.c:783 +#: sys/oss4/oss4-mixer.c:789 msgid "Modem" msgstr "" -#: sys/oss4/oss4-mixer.c:784 +#: sys/oss4/oss4-mixer.c:790 msgid "Handset" msgstr "" -#: sys/oss4/oss4-mixer.c:785 +#: sys/oss4/oss4-mixer.c:791 msgid "Other" msgstr "" -#: sys/oss4/oss4-mixer.c:787 +#: sys/oss4/oss4-mixer.c:793 msgid "None" msgstr "" -#: sys/oss4/oss4-mixer.c:788 +#: sys/oss4/oss4-mixer.c:794 msgid "On" msgstr "" -#: sys/oss4/oss4-mixer.c:789 +#: sys/oss4/oss4-mixer.c:795 msgid "Off" msgstr "" -#: sys/oss4/oss4-mixer.c:790 +#: sys/oss4/oss4-mixer.c:796 msgid "Mute" msgstr "" -#: sys/oss4/oss4-mixer.c:791 +#: sys/oss4/oss4-mixer.c:797 msgid "Fast" msgstr "" #. TRANSLATORS: "Very Low" is a quality setting here -#: sys/oss4/oss4-mixer.c:793 +#: sys/oss4/oss4-mixer.c:799 msgid "Very Low" msgstr "" #. TRANSLATORS: "Low" is a quality setting here -#: sys/oss4/oss4-mixer.c:795 +#: sys/oss4/oss4-mixer.c:801 msgid "Low" msgstr "" #. TRANSLATORS: "Medium" is a quality setting here -#: sys/oss4/oss4-mixer.c:797 +#: sys/oss4/oss4-mixer.c:803 msgid "Medium" msgstr "" #. TRANSLATORS: "High" is a quality setting here -#: sys/oss4/oss4-mixer.c:799 +#: sys/oss4/oss4-mixer.c:805 msgid "High" msgstr "" #. TRANSLATORS: "Very High" is a quality setting here -#: sys/oss4/oss4-mixer.c:801 sys/oss4/oss4-mixer.c:802 +#: sys/oss4/oss4-mixer.c:807 sys/oss4/oss4-mixer.c:808 msgid "Very High" msgstr "" #. TRANSLATORS: "Production" is a quality setting here -#: sys/oss4/oss4-mixer.c:804 +#: sys/oss4/oss4-mixer.c:810 msgid "Production" msgstr "" -#: sys/oss4/oss4-mixer.c:805 +#: sys/oss4/oss4-mixer.c:811 msgid "Front Panel Microphone" msgstr "" -#: sys/oss4/oss4-mixer.c:806 +#: sys/oss4/oss4-mixer.c:812 msgid "Front Panel Line In" msgstr "" -#: sys/oss4/oss4-mixer.c:807 +#: sys/oss4/oss4-mixer.c:813 msgid "Front Panel Headphones" msgstr "" -#: sys/oss4/oss4-mixer.c:808 +#: sys/oss4/oss4-mixer.c:814 msgid "Front Panel Line Out" msgstr "" -#: sys/oss4/oss4-mixer.c:809 +#: sys/oss4/oss4-mixer.c:815 msgid "Green Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:810 +#: sys/oss4/oss4-mixer.c:816 msgid "Pink Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:811 +#: sys/oss4/oss4-mixer.c:817 msgid "Blue Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:812 +#: sys/oss4/oss4-mixer.c:818 msgid "White Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:813 +#: sys/oss4/oss4-mixer.c:819 msgid "Black Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:814 +#: sys/oss4/oss4-mixer.c:820 msgid "Gray Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:815 +#: sys/oss4/oss4-mixer.c:821 msgid "Orange Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:816 +#: sys/oss4/oss4-mixer.c:822 msgid "Red Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:817 +#: sys/oss4/oss4-mixer.c:823 msgid "Yellow Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:818 +#: sys/oss4/oss4-mixer.c:824 msgid "Green Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:819 +#: sys/oss4/oss4-mixer.c:825 msgid "Pink Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:820 +#: sys/oss4/oss4-mixer.c:826 msgid "Blue Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:821 +#: sys/oss4/oss4-mixer.c:827 msgid "White Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:822 +#: sys/oss4/oss4-mixer.c:828 msgid "Black Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:823 +#: sys/oss4/oss4-mixer.c:829 msgid "Gray Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:824 +#: sys/oss4/oss4-mixer.c:830 msgid "Orange Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:825 +#: sys/oss4/oss4-mixer.c:831 msgid "Red Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:826 +#: sys/oss4/oss4-mixer.c:832 msgid "Yellow Front Panel Connector" msgstr "" -#: sys/oss4/oss4-mixer.c:827 +#: sys/oss4/oss4-mixer.c:833 msgid "Spread Output" msgstr "" -#: sys/oss4/oss4-mixer.c:828 +#: sys/oss4/oss4-mixer.c:834 msgid "Downmix" msgstr "" -#: sys/oss4/oss4-mixer.c:872 +#: sys/oss4/oss4-mixer.c:878 msgid "Virtual Mixer Input" msgstr "" -#: sys/oss4/oss4-mixer.c:874 +#: sys/oss4/oss4-mixer.c:880 msgid "Virtual Mixer Output" msgstr "" -#: sys/oss4/oss4-mixer.c:876 +#: sys/oss4/oss4-mixer.c:882 msgid "Virtual Mixer Channels" msgstr "" #. TRANSLATORS: name + number of a volume mixer control -#: sys/oss4/oss4-mixer.c:927 +#: sys/oss4/oss4-mixer.c:933 #, c-format msgid "%s %d Function" msgstr "" #. TRANSLATORS: name of a volume mixer control -#: sys/oss4/oss4-mixer.c:934 +#: sys/oss4/oss4-mixer.c:940 #, c-format msgid "%s Function" msgstr "" -#: sys/oss4/oss4-sink.c:524 sys/oss4/oss4-source.c:392 +#: sys/oss4/oss4-sink.c:525 sys/oss4/oss4-source.c:393 msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -#: sys/oss4/oss4-sink.c:640 +#: sys/oss4/oss4-sink.c:641 msgid "Playback is not supported by this audio device." msgstr "" -#: sys/oss4/oss4-sink.c:647 +#: sys/oss4/oss4-sink.c:648 msgid "Audio playback error." msgstr "" -#: sys/oss4/oss4-source.c:514 +#: sys/oss4/oss4-source.c:515 msgid "Recording is not supported by this audio device." msgstr "" -#: sys/oss4/oss4-source.c:521 +#: sys/oss4/oss4-source.c:522 msgid "Error recording from audio device." msgstr "" @@ -689,17 +689,17 @@ msgstr "" msgid "Headphone" msgstr "" -#: sys/v4l2/gstv4l2src.c:887 +#: sys/v4l2/gstv4l2src.c:892 #, c-format msgid "Error reading %d bytes from device '%s'." msgstr "" -#: sys/v4l2/gstv4l2src.c:913 +#: sys/v4l2/gstv4l2src.c:918 #, c-format msgid "Got unexpected frame size of %u instead of %u." msgstr "" -#: sys/v4l2/gstv4l2src.c:931 +#: sys/v4l2/gstv4l2src.c:936 #, c-format msgid "Error reading %d bytes on device '%s'." msgstr "" @@ -726,7 +726,7 @@ msgstr "" msgid "Failed to query norm on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:264 sys/v4l2/v4l2_calls.c:347 +#: sys/v4l2/v4l2_calls.c:347 #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "" @@ -822,29 +822,29 @@ msgstr "" msgid "Failed after %d tries. device %s. system error: %s" msgstr "" -#: sys/v4l2/v4l2src_calls.c:239 +#: sys/v4l2/v4l2src_calls.c:234 #, c-format msgid "Could not get parameters on device '%s'" msgstr "" -#: sys/v4l2/v4l2src_calls.c:267 +#: sys/v4l2/v4l2src_calls.c:261 msgid "Video input device did not accept new frame rate setting." msgstr "" -#: sys/v4l2/v4l2src_calls.c:339 +#: sys/v4l2/v4l2src_calls.c:331 #, c-format msgid "Could not map buffers from device '%s'" msgstr "" -#: sys/v4l2/v4l2src_calls.c:347 +#: sys/v4l2/v4l2src_calls.c:339 #, c-format msgid "The driver of device '%s' does not support any known capture method." msgstr "" -#: sys/ximage/gstximagesrc.c:719 +#: sys/ximage/gstximagesrc.c:796 msgid "Changing resolution at runtime is not yet supported." msgstr "" -#: sys/ximage/gstximagesrc.c:733 +#: sys/ximage/gstximagesrc.c:810 msgid "Cannot operate without a clock" msgstr "" diff --git a/po/hu.gmo b/po/hu.gmo index 4c0ae19..11bfbb0 100644 Binary files a/po/hu.gmo and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index 10ca581..9c0b115 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-11-04 01:21+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" diff --git a/po/id.gmo b/po/id.gmo index 797f152..451ab4f 100644 Binary files a/po/id.gmo and b/po/id.gmo differ diff --git a/po/id.po b/po/id.po index 194804b..14130d9 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-02-26 18:09+0700\n" "Last-Translator: Andhika Padmawan \n" "Language-Team: Indonesian \n" diff --git a/po/it.gmo b/po/it.gmo index 8e77250..23802b5 100644 Binary files a/po/it.gmo and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po index 7b5c907..f4e2f5d 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-10-25 10:11+0200\n" "Last-Translator: Luca Ferretti \n" "Language-Team: Italian \n" diff --git a/po/ja.gmo b/po/ja.gmo index 0bed3d9..e4cdf39 100644 Binary files a/po/ja.gmo and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po index 18c09ad..58df5a4 100644 --- a/po/ja.po +++ b/po/ja.po @@ -3,13 +3,14 @@ # # Takao Fujiwara , 2006. # Makoto Kato , 2009-2011. +# Takeshi Hamasaki , 2011 msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" -"PO-Revision-Date: 2011-04-26 20:15+0900\n" -"Last-Translator: Makoto Kato \n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" +"PO-Revision-Date: 2011-08-28 23:59+0900\n" +"Last-Translator: Takeshi Hamasaki \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" @@ -25,9 +26,9 @@ msgid "Failed to query sound server capabilities" msgstr "サウンドサーバーのケイパビリティのクエリーに失敗しました" #. TRANSLATORS: 'song title' by 'artist name' -#, c-format +#, fuzzy, c-format msgid "'%s' by '%s'" -msgstr "" +msgstr "対" msgid "Internal data stream error." msgstr "内部データストリームエラー" @@ -54,8 +55,9 @@ msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "ネットワークエラーが発生したか、サーバーが予期せず接続を閉じました。" +#, fuzzy msgid "Server sent bad data." -msgstr "" +msgstr "データストリーム (サーバープッシュ型)" msgid "No URL set." msgstr "URLが指定されていません。" @@ -95,14 +97,14 @@ msgstr "" "サポートしているストリームが見つかりません。Real メディアストリームのための" "GStreamer RTSP 拡張プラグインをインストールする必要があるかもしれません。" -#, fuzzy msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -"サポートしているストリームが見つかりません。正しい GStreamer RTSP 拡張プラグ" -"インをインストールする必要があるかもしれません。" +"サポートしているストリームが見つかりません。別の転送プロトコルをインストール" +"する必要があるかもしれません。または、正しい GStreamer RTSP 拡張プラグインが" +"ないのかもしれません。" msgid "Internal data flow error." msgstr "内部データフローエラー。" @@ -282,14 +284,16 @@ msgstr "AUX 2出力" msgid "AUX Out" msgstr "AUX出力" +#, fuzzy msgid "3D Depth" -msgstr "" +msgstr "最大深度: " msgid "3D Center" msgstr "3Dセンター" +#, fuzzy msgid "3D Enhance" -msgstr "" +msgstr "色を強調しています" msgid "Telephone" msgstr "電話" @@ -328,7 +332,7 @@ msgid "Loopback" msgstr "ループバック" msgid "Diagnostic" -msgstr "" +msgstr "診断" msgid "Bass Boost" msgstr "低音ブースト" @@ -348,8 +352,9 @@ msgstr "モニターソース" msgid "Keyboard Beep" msgstr "キーボードビープ音" +#, fuzzy msgid "Simulate Stereo" -msgstr "" +msgstr "彫金を表現します" msgid "Stereo" msgstr "ステレオ" @@ -423,32 +428,39 @@ msgstr "オフ" msgid "Mute" msgstr "ミュート" +#, fuzzy msgid "Fast" -msgstr "" +msgstr "速い" #. TRANSLATORS: "Very Low" is a quality setting here +#, fuzzy msgid "Very Low" -msgstr "" +msgstr "低品位" #. TRANSLATORS: "Low" is a quality setting here +#, fuzzy msgid "Low" -msgstr "" +msgstr "低音" #. TRANSLATORS: "Medium" is a quality setting here +#, fuzzy msgid "Medium" -msgstr "" +msgstr "中音" #. TRANSLATORS: "High" is a quality setting here +#, fuzzy msgid "High" -msgstr "" +msgstr "高音" #. TRANSLATORS: "Very High" is a quality setting here +#, fuzzy msgid "Very High" -msgstr "" +msgstr "高品位" #. TRANSLATORS: "Production" is a quality setting here +#, fuzzy msgid "Production" -msgstr "" +msgstr "プロダクション" msgid "Front Panel Microphone" msgstr "フロントパネルのマイクロフォン" @@ -516,8 +528,9 @@ msgstr "" msgid "Yellow Front Panel Connector" msgstr "" +#, fuzzy msgid "Spread Output" -msgstr "" +msgstr "情報出力:\n" msgid "Downmix" msgstr "ダウンミックス" @@ -532,35 +545,33 @@ msgid "Virtual Mixer Channels" msgstr "仮想ミキサーチャンネル" #. TRANSLATORS: name + number of a volume mixer control -#, c-format +#, fuzzy, c-format msgid "%s %d Function" -msgstr "" +msgstr "機能" #. TRANSLATORS: name of a volume mixer control -#, c-format +#, fuzzy, c-format msgid "%s Function" -msgstr "" +msgstr "機能" -#, fuzzy msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -"再生用にオーディオデバイスを開くことができませんでした。デバイスを開くための" -"権限がありません。" +"再生用にオーディオデバイスを開くことができませんでした。このバージョンの " +"Open Sound System は、このエレメントによってサポートされていません。" msgid "Playback is not supported by this audio device." -msgstr "" +msgstr "再生はこのオーディオデバイスではサポートされていません。" msgid "Audio playback error." -msgstr "" +msgstr "オーディオ再生エラーです。" msgid "Recording is not supported by this audio device." msgstr "このオーディオデバイスによって録音はサポートされていません。" -#, fuzzy msgid "Error recording from audio device." -msgstr "デバイス %2$s から %1$d バイト読み込み時にエラーが発生しました。" +msgstr "オーディオデバイスからの録音時にエラーが発生しました。" # SUN REVIEWED msgid "Gain" @@ -579,15 +590,15 @@ msgstr "予期しないフレームサイズ (%2$u ではなく %1$u) を取得 #, c-format msgid "Error reading %d bytes on device '%s'." -msgstr "デバイス '%2$s' 上で %1$d バイトの読み込み時ににエラーが発生しました。" +msgstr "デバイス '%2$s' 上で %1$d バイトの読み込み時にエラーが発生しました。" #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"デバイス '%s' ケイパビリティの取得時にエラーが発生しました: v412 ドライバでは" -"ありません。もし v411 ドライバであれば、チェックしてください。" +"デバイス '%s' ケイパビリティの取得時にエラーが発生しました: v4l2 ドライバでは" +"ありません。v4l1 ドライバでないか、チェックしてください。" #, c-format msgid "Failed to query attributes of input %d in device %s" @@ -597,17 +608,17 @@ msgstr "デバイス %2$s 内の入力 %1$d の属性のクエリーに失敗し msgid "Failed to get setting of tuner %d on device '%s'." msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。" -#, c-format +#, fuzzy, c-format msgid "Failed to query norm on device '%s'." -msgstr "" +msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。" #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "デバイス '%s' のコントロール属性の取得に失敗しました" -#, c-format +#, fuzzy, c-format msgid "Cannot identify device '%s'." -msgstr "" +msgstr "ミキサーデバイス'%s'を開けません" #, c-format msgid "This isn't a device '%s'." @@ -626,9 +637,11 @@ msgstr "デバイス '%s' はキャプチャデバイスではありません" msgid "Device '%s' is not a output device." msgstr "デバイス '%s' は出力デバイスではありません" -#, c-format +#, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "" +"デバイス '%3$s' 上のコントロール %2$d の値を %1$d へ設定することに失敗しまし" +"た。" #, c-format msgid "Failed to get current tuner frequency for device '%s'." @@ -638,9 +651,9 @@ msgstr "デバイス '%s' の現在のチューナーの周波数の取得に失 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "デバイス '%s' のチューナーの周波数の %lu Hz への設定に失敗しました" -#, c-format +#, fuzzy, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "" +msgstr "デバイス '%s' の現在のチューナーの周波数の取得に失敗しました" #, c-format msgid "Failed to get value for control %d on device '%s'." @@ -658,24 +671,26 @@ msgstr "" "デバイス '%s' 上の現在の入力の取得に失敗しました。ラジオデバイスかもしれませ" "ん" -#, c-format +#, fuzzy, c-format msgid "Failed to set input %d on device %s." msgstr "" +"デバイス '%3$s' 上のコントロール %2$d の値を %1$d へ設定することに失敗しまし" +"た。" -#, fuzzy, c-format +#, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"デバイス '%s' 上の現在の入力の取得に失敗しました。ラジオデバイスかもしれませ" +"デバイス '%s' 上の現在の出力の取得に失敗しました。ラジオデバイスかもしれませ" "ん" -#, fuzzy, c-format +#, c-format msgid "Failed to set output %d on device %s." -msgstr "デバイス '%2$s' 上のチューナー %1$d の設定の取得に失敗しました。" +msgstr "出力%dをデバイス %s に設定できませんでした。" -#, c-format +#, fuzzy, c-format msgid "Could not enqueue buffers in device '%s'." -msgstr "" +msgstr "デバイス '%s' からバッファをマップできません。" #, c-format msgid "Failed trying to get video frames from device '%s'." @@ -704,10 +719,10 @@ msgstr "" "ません" msgid "Changing resolution at runtime is not yet supported." -msgstr "" +msgstr "実行時の解像度変更はサポートされていません。" msgid "Cannot operate without a clock" -msgstr "" +msgstr "クロックなしでは動作できません。" #~ msgid "" #~ "Failed trying to get video frames from device '%s'. Not enough memory." diff --git a/po/lt.gmo b/po/lt.gmo index cae7113..95e3647 100644 Binary files a/po/lt.gmo and b/po/lt.gmo differ diff --git a/po/lt.po b/po/lt.po index 78e5013..aeae1c0 100644 --- a/po/lt.po +++ b/po/lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-07-16 19:34+0300\n" "Last-Translator: Žygimantas Beručka \n" "Language-Team: Lithuanian \n" diff --git a/po/lv.gmo b/po/lv.gmo index 0b18244..1dce489 100644 Binary files a/po/lv.gmo and b/po/lv.gmo differ diff --git a/po/lv.po b/po/lv.po index ef270e4..c17e0fb 100644 --- a/po/lv.po +++ b/po/lv.po @@ -3,12 +3,13 @@ # # Arvis Lācis , 2009. # Rihards Prieditis , 2010. +# Rihards Prieditis , 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 0.10.23.2\n" +"Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" -"PO-Revision-Date: 2010-07-07 11:53+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" +"PO-Revision-Date: 2011-09-02 11:23-0000\n" "Last-Translator: Rihards Priedītis \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -40,28 +41,26 @@ msgid "Could not connect to server" msgstr "Nevar savienoties ar serveri" msgid "Server does not support seeking." -msgstr "" +msgstr "Serveris neatbalsta meklēšanu." -#, fuzzy msgid "Could not resolve server name." -msgstr "Nevar savienoties ar serveri" +msgstr "Nevar atpazīt servera nosaukumu." -#, fuzzy msgid "Could not establish connection to server." -msgstr "Nevar izveidot savienojumu ar skaņas serveri" +msgstr "Nevar izveidot savienojumu ar serveri." msgid "Secure connection setup failed." -msgstr "" +msgstr "Drošā savienojuma izveidošana neizdevās." msgid "" "A network error occured, or the server closed the connection unexpectedly." -msgstr "" +msgstr "Notika tīkla kļūda, vai serveris negaidīti aizvēra savienojumu." msgid "Server sent bad data." -msgstr "" +msgstr "Serveris nosūtija sliktus datus." msgid "No URL set." -msgstr "" +msgstr "URL nav uzstādīts." msgid "No or invalid input audio, AVI stream will be corrupt." msgstr "Nav neviena vai nederīgs ievades audio, AVI straume tiks bojāta." @@ -76,7 +75,7 @@ msgid "This file is corrupt and cannot be played." msgstr "Šis fails ir bojāts un nevar tikt atskaņots." msgid "Invalid atom size." -msgstr "" +msgstr "Nederīgs atoma izmērs." msgid "This file is incomplete and cannot be played." msgstr "Šis pails ir nepabeigts un nevar tikt atskaņots." @@ -629,16 +628,16 @@ msgstr "" msgid "Failed to set input %d on device %s." msgstr "Neizdevās uzstādīt ievadi %d uz ierīces %s." -#, fuzzy, c-format +#, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"Neizdevās saņemt pašreizējo ievadi no ierīces \"%s\". Iespējams tā ir radio " +"Neizdevās saņemt pašreizējo izvadu no ierīces \"%s\". Iespējams tā ir radio " "ierīce" -#, fuzzy, c-format +#, c-format msgid "Failed to set output %d on device %s." -msgstr "Neizdevās uzstādīt ievadi %d uz ierīces %s." +msgstr "Neizdevās uzstādīt izvadu %d uz ierīces %s." #, c-format msgid "Could not enqueue buffers in device '%s'." diff --git a/po/mt.gmo b/po/mt.gmo index 8437a02..6e01553 100644 Binary files a/po/mt.gmo and b/po/mt.gmo differ diff --git a/po/mt.po b/po/mt.po index 96935f1..bcac65a 100644 --- a/po/mt.po +++ b/po/mt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.10.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2008-10-26 19:09+0100\n" "Last-Translator: Michel Bugeja \n" "Language-Team: Maltese \n" diff --git a/po/nb.gmo b/po/nb.gmo index 2ed1504..368885e 100644 Binary files a/po/nb.gmo and b/po/nb.gmo differ diff --git a/po/nb.po b/po/nb.po index 595d485..ebda484 100644 --- a/po/nb.po +++ b/po/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-10-24 21:53+0200\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian Bokmaal \n" diff --git a/po/nl.gmo b/po/nl.gmo index 1bf385c..20ca783 100644 Binary files a/po/nl.gmo and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po index 778380e..f768f9f 100644 --- a/po/nl.po +++ b/po/nl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-04-27 00:05+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" diff --git a/po/or.gmo b/po/or.gmo index f957883..95b0615 100644 Binary files a/po/or.gmo and b/po/or.gmo differ diff --git a/po/or.po b/po/or.po index 6528dea..f1a1aef 100644 --- a/po/or.po +++ b/po/or.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2004-09-27 13:32+0530\n" "Last-Translator: Gora Mohanty \n" "Language-Team: Oriya \n" diff --git a/po/pl.gmo b/po/pl.gmo index d3277f0..5f0f5c0 100644 Binary files a/po/pl.gmo and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index 64a7f36..c1c6ab8 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-07 21:53+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 313ecbd..057a223 100644 Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po index 534a4fb..77a15af 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-08 01:28-0300\n" "Last-Translator: Fabrício Godoy \n" "Language-Team: Brazilian Portuguese \n" diff --git a/po/ro.gmo b/po/ro.gmo index cabff55..a0f3634 100644 Binary files a/po/ro.gmo and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po index dc0db8c..3fff185 100644 --- a/po/ro.po +++ b/po/ro.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-08-16 03:22+0300\n" "Last-Translator: Lucian Adrian Grijincu \n" "Language-Team: Romanian \n" diff --git a/po/ru.gmo b/po/ru.gmo index 755c41b..57e2706 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 83f867a..636b4ed 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-04-26 21:13+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" diff --git a/po/sk.gmo b/po/sk.gmo index 289ded1..d6afaeb 100644 Binary files a/po/sk.gmo and b/po/sk.gmo differ diff --git a/po/sk.po b/po/sk.po index d04bc76..fc0e190 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.25.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-11-08 15:48+0100\n" "Last-Translator: Peter Tuhársky \n" "Language-Team: Slovak \n" diff --git a/po/sl.gmo b/po/sl.gmo index 217d22b..6c7e180 100644 Binary files a/po/sl.gmo and b/po/sl.gmo differ diff --git a/po/sl.po b/po/sl.po index 414796f..3de6781 100644 --- a/po/sl.po +++ b/po/sl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-03-12 18:35+0100\n" "Last-Translator: Klemen Košir \n" "Language-Team: Slovenian \n" diff --git a/po/sq.gmo b/po/sq.gmo index acab031..21e110b 100644 Binary files a/po/sq.gmo and b/po/sq.gmo differ diff --git a/po/sq.po b/po/sq.po index 309b072..6d593a0 100644 --- a/po/sq.po +++ b/po/sq.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins 0.8.3\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2004-08-07 20:29+0200\n" "Last-Translator: Laurent Dhima \n" "Language-Team: Albanian \n" diff --git a/po/sr.gmo b/po/sr.gmo index a389fc4..3f27d9a 100644 Binary files a/po/sr.gmo and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po index 2aec60b..c6a7c1f 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,105 +1,110 @@ # Serbian translation of gst-plugins # Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the gst-plugins-good package. # Danilo Segan , 2004. -# +# Мирослав Николић , 2011. msgid "" msgstr "" -"Project-Id-Version: gst-plugins 0.7.6\n" +"Project-Id-Version: gst-plugins-good-0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" -"PO-Revision-Date: 2004-03-13 00:18+0100\n" -"Last-Translator: Danilo Segan \n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" +"PO-Revision-Date: 2011-12-04 16:44+0200\n" +"Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : (n%10>=2 && n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" msgid "Could not establish connection to sound server" -msgstr "" +msgstr "Не могу да успоставим везу са сервером звука" msgid "Failed to query sound server capabilities" -msgstr "" +msgstr "Нисам успео да испитам могућности сервера звука" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" -msgstr "" +msgstr "„%s“ изводи „%s“" msgid "Internal data stream error." -msgstr "" +msgstr "Унутрашња грешка тока података." msgid "Failed to decode JPEG image" -msgstr "" +msgstr "Нисам успео да декодирам ЈПЕГ слику" -#, fuzzy msgid "Could not connect to server" -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Не могу да се повежем са сервером" msgid "Server does not support seeking." -msgstr "" +msgstr "Сервер не подржава позиционирање." -#, fuzzy msgid "Could not resolve server name." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Не могу да решим назив сервера." -#, fuzzy msgid "Could not establish connection to server." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Не могу да успоставим везу са сервером." msgid "Secure connection setup failed." -msgstr "" +msgstr "Подешавање безбедне везе није успело." msgid "" "A network error occured, or the server closed the connection unexpectedly." -msgstr "" +msgstr "Дошло је до грешке на мрежи, или је сервер неочекивано затворио везу." msgid "Server sent bad data." -msgstr "" +msgstr "Сервер је послао лоше податке." msgid "No URL set." -msgstr "" +msgstr "Није подешена адреса." msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "Улазног звука нема или је неисправан, АВИ ток ће бити искварен." +msgstr "Улазног звука нема или је неисправан, АВИ ток ће бити оштећен." msgid "This file contains no playable streams." -msgstr "" +msgstr "Ова датотека не садржи токове за пуштање." msgid "This file is invalid and cannot be played." -msgstr "" +msgstr "Ова датотека је неисправна и не може бити пуштена." msgid "This file is corrupt and cannot be played." -msgstr "" +msgstr "Ова датотека је оштећена и не може бити пуштена." msgid "Invalid atom size." -msgstr "" +msgstr "Неисправна величина атома." msgid "This file is incomplete and cannot be played." -msgstr "" +msgstr "Ова датотека је непотпуна и не може бити пуштена." msgid "The video in this file might not play correctly." -msgstr "" +msgstr "Видео у овој датотеци можда неће бити пуштен исправно." #, c-format msgid "This file contains too many streams. Only playing first %d" -msgstr "" +msgstr "Ова датотека садржи превише токова. Пуштам само први %d" msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" +"Није пронађен ниједан подржани ток. Можда ћете морати да инсталирате " +"прикључак РТСП проширења Гстримера за токове Стварног медија." msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" +"Није пронађен ниједан подржани ток. Можда ћете морати да омогућите више " +"протокола преноса или можда на неки други начин недостаје прави прикључак " +"РТСП проширења ГСтримера." msgid "Internal data flow error." -msgstr "" +msgstr "Унутрaшња грешка протока података." msgid "Volume" msgstr "Јачина звука" @@ -108,10 +113,10 @@ msgid "Bass" msgstr "Бас" msgid "Treble" -msgstr "Шум" +msgstr "Високотонац" msgid "Synth" -msgstr "Синт." +msgstr "Синтисајзер" msgid "PCM" msgstr "ПЦМ" @@ -120,7 +125,7 @@ msgid "Speaker" msgstr "Звучник" msgid "Line-in" -msgstr "Ул.лин." +msgstr "Линијски улаз" msgid "Microphone" msgstr "Микрофон" @@ -129,7 +134,7 @@ msgid "CD" msgstr "ЦД" msgid "Mixer" -msgstr "Миксер" +msgstr "Мешач" msgid "PCM-2" msgstr "ПЦМ-2" @@ -138,34 +143,34 @@ msgid "Record" msgstr "Снимање" msgid "In-gain" -msgstr "Ул. пој." +msgstr "Улазно појачање" msgid "Out-gain" -msgstr "Из. пој." +msgstr "Излазно појачање" msgid "Line-1" -msgstr "Лин. 1" +msgstr "Линија 1" msgid "Line-2" -msgstr "Лин. 2" +msgstr "Линија 2" msgid "Line-3" -msgstr "Лин. 3" +msgstr "Линија 3" msgid "Digital-1" -msgstr "Диг. 1" +msgstr "Дигитални 1" msgid "Digital-2" -msgstr "Диг. 2" +msgstr "Дигитални 2" msgid "Digital-3" -msgstr "Диг. 3" +msgstr "Дигитални 3" msgid "Phone-in" -msgstr "Тел. ул." +msgstr "Телефонски улаз" msgid "Phone-out" -msgstr "Тел. из." +msgstr "Телефонски излаз" msgid "Video" msgstr "Видео" @@ -180,497 +185,493 @@ msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" +"Не могу да покренем звучни уређај ради пуштања. Уређај користи нека друга " +"апликација." msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" +"Не могу да покренем аудио уређај ради пуштања. Немате овлашћење за покретање " +"уређаја." -#, fuzzy msgid "Could not open audio device for playback." -msgstr "Не могу да отворим звучни уређај „%s“ ради уписа." +msgstr "Не могу да покренем звучни уређај ради пуштања." msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." msgstr "" +"Не могу да покренем аудио уређај ради снимања. Немате овлашћење за покретање " +"уређаја." -#, fuzzy msgid "Could not open audio device for recording." -msgstr "Не могу да отворим ЦД уређај ради читања." +msgstr "Не могу да покренем звучни уређај ради снимања." -#, fuzzy msgid "Could not open audio device for mixer control handling." -msgstr "Не могу да отворим звучни уређај „%s“ ради уписа." +msgstr "Не могу да покренем звучни уређај за руковање управљањем мешача." msgid "" "Could not open audio device for mixer control handling. This version of the " "Open Sound System is not supported by this element." msgstr "" +"Не могу да покренем звучни уређај за руковање управљањем мешача. Ово издање " +"система отвореног звука није подржано овим елементом." msgid "Master" -msgstr "" +msgstr "Главни" msgid "Front" -msgstr "" +msgstr "Предњи" -#, fuzzy msgid "Rear" -msgstr "Снимање" +msgstr "Задњи" msgid "Headphones" -msgstr "" +msgstr "Слушалице" msgid "Center" -msgstr "" +msgstr "Средињи" msgid "LFE" -msgstr "" +msgstr "ЛФЕ" msgid "Surround" -msgstr "" +msgstr "Окружење" -#, fuzzy msgid "Side" -msgstr "Видео" +msgstr "Са стране" -#, fuzzy msgid "Built-in Speaker" -msgstr "Звучник" +msgstr "Уграђени звучник" msgid "AUX 1 Out" -msgstr "" +msgstr "АУХ 1 излаз" msgid "AUX 2 Out" -msgstr "" +msgstr "АУХ 2 излаз" msgid "AUX Out" -msgstr "" +msgstr "АУХ излаз" msgid "3D Depth" -msgstr "" +msgstr "3Д дубина" msgid "3D Center" -msgstr "" +msgstr "3Д средиште" msgid "3D Enhance" -msgstr "" +msgstr "3Д побољшање" msgid "Telephone" -msgstr "" +msgstr "Телефон" msgid "Line Out" -msgstr "" +msgstr "Линијски излаз" -#, fuzzy msgid "Line In" -msgstr "Ул.лин." +msgstr "Линијски улаз" msgid "Internal CD" -msgstr "" +msgstr "Унутрашњи ЦД" -#, fuzzy msgid "Video In" -msgstr "Видео" +msgstr "Видео улаз" msgid "AUX 1 In" -msgstr "" +msgstr "АУХ 1 улаз" msgid "AUX 2 In" -msgstr "" +msgstr "АУХ 2 улаз" msgid "AUX In" -msgstr "" +msgstr "АУХ улаз" -#, fuzzy msgid "Record Gain" -msgstr "Снимање" +msgstr "Појачање снимања" -#, fuzzy msgid "Output Gain" -msgstr "Из. пој." +msgstr "Појачање излаза" -#, fuzzy msgid "Microphone Boost" -msgstr "Микрофон" +msgstr "Појачање микрофона" msgid "Loopback" -msgstr "" +msgstr "Повратна петља" msgid "Diagnostic" -msgstr "" +msgstr "Дијагностика" msgid "Bass Boost" -msgstr "" +msgstr "Појачање баса" msgid "Playback Ports" -msgstr "" +msgstr "Портови пуштања" msgid "Input" -msgstr "" +msgstr "Улаз" -#, fuzzy msgid "Record Source" -msgstr "Снимање" +msgstr "Извор снимања" -#, fuzzy msgid "Monitor Source" -msgstr "Праћење" +msgstr "Извор праћења" msgid "Keyboard Beep" -msgstr "" +msgstr "Звук тастатуре" msgid "Simulate Stereo" -msgstr "" +msgstr "Лажни стерео" msgid "Stereo" -msgstr "" +msgstr "Стерео" msgid "Surround Sound" -msgstr "" +msgstr "Звук окружења" -#, fuzzy msgid "Microphone Gain" -msgstr "Микрофон" +msgstr "Појачање микрофона" -#, fuzzy msgid "Speaker Source" -msgstr "Звучник" +msgstr "Извор звучника" -#, fuzzy msgid "Microphone Source" -msgstr "Микрофон" +msgstr "Извор микрофона" msgid "Jack" -msgstr "" +msgstr "Утичница" msgid "Center / LFE" -msgstr "" +msgstr "Средиште / ЛФЕ" msgid "Stereo Mix" -msgstr "" +msgstr "Стерео микс" msgid "Mono Mix" -msgstr "" +msgstr "Моно микс" msgid "Input Mix" -msgstr "" +msgstr "Улазни микс" msgid "SPDIF In" -msgstr "" +msgstr "СПДИФ улаз" msgid "SPDIF Out" -msgstr "" +msgstr "СПДИФ излаз" -#, fuzzy msgid "Microphone 1" -msgstr "Микрофон" +msgstr "Микрофон 1" -#, fuzzy msgid "Microphone 2" -msgstr "Микрофон" +msgstr "Микрофон 2" -#, fuzzy msgid "Digital Out" -msgstr "Диг. 1" +msgstr "Дигитални излаз" -#, fuzzy msgid "Digital In" -msgstr "Диг. 1" +msgstr "Дигитални улаз" msgid "HDMI" -msgstr "" +msgstr "ХДМИ" msgid "Modem" -msgstr "" +msgstr "Модем" msgid "Handset" -msgstr "" +msgstr "Слушалица" msgid "Other" -msgstr "" +msgstr "Остало" msgid "None" -msgstr "" +msgstr "Ништа" msgid "On" -msgstr "" +msgstr "Укљ." msgid "Off" -msgstr "" +msgstr "Искљ." msgid "Mute" -msgstr "" +msgstr "Без звука" msgid "Fast" -msgstr "" +msgstr "Брзо" #. TRANSLATORS: "Very Low" is a quality setting here msgid "Very Low" -msgstr "" +msgstr "Врло низак" #. TRANSLATORS: "Low" is a quality setting here msgid "Low" -msgstr "" +msgstr "Низак" #. TRANSLATORS: "Medium" is a quality setting here msgid "Medium" -msgstr "" +msgstr "Средњи" #. TRANSLATORS: "High" is a quality setting here msgid "High" -msgstr "" +msgstr "Висок" #. TRANSLATORS: "Very High" is a quality setting here msgid "Very High" -msgstr "" +msgstr "Врло висок" #. TRANSLATORS: "Production" is a quality setting here msgid "Production" -msgstr "" +msgstr "Производни" -#, fuzzy msgid "Front Panel Microphone" -msgstr "Микрофон" +msgstr "Микрофон предње површи" msgid "Front Panel Line In" -msgstr "" +msgstr "Линијски улаз предње површи" msgid "Front Panel Headphones" -msgstr "" +msgstr "Слушалице предње површи" msgid "Front Panel Line Out" -msgstr "" +msgstr "Линијски излаз предње површи" msgid "Green Connector" -msgstr "" +msgstr "Зелени прикључак" msgid "Pink Connector" -msgstr "" +msgstr "Ружичаст прикључак" msgid "Blue Connector" -msgstr "" +msgstr "Плави прикључак" msgid "White Connector" -msgstr "" +msgstr "Бели прикључак" msgid "Black Connector" -msgstr "" +msgstr "Црни прикључак" msgid "Gray Connector" -msgstr "" +msgstr "Сиви прикључак" msgid "Orange Connector" -msgstr "" +msgstr "Наранџасти прикључак" msgid "Red Connector" -msgstr "" +msgstr "Црвени прикључак" msgid "Yellow Connector" -msgstr "" +msgstr "Жути прикључак" msgid "Green Front Panel Connector" -msgstr "" +msgstr "Зелени прикључак на предњој површи" msgid "Pink Front Panel Connector" -msgstr "" +msgstr "Ружичасти прикључак на предњој површи" msgid "Blue Front Panel Connector" -msgstr "" +msgstr "Плави прикључак на предњој површи" msgid "White Front Panel Connector" -msgstr "" +msgstr "Бели прикључак на предњој површи" msgid "Black Front Panel Connector" -msgstr "" +msgstr "Црни прикључак на предњој површи" msgid "Gray Front Panel Connector" -msgstr "" +msgstr "Сиви прикључак на предњој површи" msgid "Orange Front Panel Connector" -msgstr "" +msgstr "Наранџасти прикључак на предњој површи" msgid "Red Front Panel Connector" -msgstr "" +msgstr "Црвени прикључак на предњој површи" msgid "Yellow Front Panel Connector" -msgstr "" +msgstr "Жути прикључак на предњој површи" msgid "Spread Output" -msgstr "" +msgstr "Излаз ширења" msgid "Downmix" -msgstr "" +msgstr "Сабирни мешач" msgid "Virtual Mixer Input" -msgstr "" +msgstr "Улаз виртуелног мешача" msgid "Virtual Mixer Output" -msgstr "" +msgstr "Излаз виртуелног мешача" msgid "Virtual Mixer Channels" -msgstr "" +msgstr "Канали виртуелног мешача" #. TRANSLATORS: name + number of a volume mixer control #, c-format msgid "%s %d Function" -msgstr "" +msgstr "%s %d функција" #. TRANSLATORS: name of a volume mixer control #, c-format msgid "%s Function" -msgstr "" +msgstr "%s функција" msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" +"Не могу да покренем звучни уређај ради пуштања. Ово издање система отвореног " +"звука није подржано овим елементом." msgid "Playback is not supported by this audio device." -msgstr "" +msgstr "Пуштање није подржано од стране овог звучног уређаја." msgid "Audio playback error." -msgstr "" +msgstr "Грешка приликом пуштања звука." msgid "Recording is not supported by this audio device." -msgstr "" +msgstr "Снимање није подржано од стране овог звучног уређаја." msgid "Error recording from audio device." -msgstr "" +msgstr "Грешка приликом снимања са звучног уређаја." msgid "Gain" -msgstr "" +msgstr "Појачање" msgid "Headphone" -msgstr "" +msgstr "Слушалице" -#, fuzzy, c-format +#, c-format msgid "Error reading %d bytes from device '%s'." -msgstr "Не могу да примим бафере са уређаја „%s“." +msgstr "Грешка приликом читања %d бајтова са уређаја „%s“." #, c-format msgid "Got unexpected frame size of %u instead of %u." -msgstr "" +msgstr "Добих неочекивану величину кадра, %u уместо %u." #, c-format msgid "Error reading %d bytes on device '%s'." -msgstr "" +msgstr "Грешка приликом читања %d бајтова на уређају „%s“." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" +"Грешка приликом добављања могућности за уређај „%s“: Није в4л2 управљачки " +"програм. Проверите да ли је то в4л1 управљачки програм." #, c-format msgid "Failed to query attributes of input %d in device %s" -msgstr "" +msgstr "Нисам успео да пропитам својства уноса %d у уређају %s" -#, fuzzy, c-format +#, c-format msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "Не могу да примим довољно бафера са уређаја „%s“." +msgstr "Нисам успео да добавим подешавања тјунера %d на уређају „%s“." #, c-format msgid "Failed to query norm on device '%s'." -msgstr "" +msgstr "Нисам успео да пропитам норму на уређају „%s“." #, c-format msgid "Failed getting controls attributes on device '%s'." -msgstr "" +msgstr "Нисам успео да добавим својства контрола на уређају „%s“." -#, fuzzy, c-format +#, c-format msgid "Cannot identify device '%s'." -msgstr "Не могу да пишем на видео уређај „%s“." +msgstr "Не могу да распознам уређај „%s“." #, c-format msgid "This isn't a device '%s'." -msgstr "" +msgstr "Ово није уређај „%s“." -#, fuzzy, c-format +#, c-format msgid "Could not open device '%s' for reading and writing." -msgstr "Не могу да отворим уређај „%s“ ради читања и уписа." +msgstr "Не могу да покренем уређај „%s“ ради читања и уписа." -#, fuzzy, c-format +#, c-format msgid "Device '%s' is not a capture device." -msgstr "Уређај „%s“ не представља уређај за снимање." +msgstr "Уређај „%s“ није уређај за снимање." -#, fuzzy, c-format +#, c-format msgid "Device '%s' is not a output device." -msgstr "Уређај „%s“ не представља уређај за снимање." +msgstr "Уређај „%s“ није излазни уређај." -#, fuzzy, c-format +#, c-format msgid "Failed to set norm for device '%s'." -msgstr "Не могу да примим бафере са уређаја „%s“." +msgstr "Нисам успео да подесим норму за уређај „%s“." -#, fuzzy, c-format +#, c-format msgid "Failed to get current tuner frequency for device '%s'." -msgstr "Не могу да примим довољно бафера са уређаја „%s“." +msgstr "Нисам успео да добавим текућу учестаност тјунера за уређај „%s“." #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" +"Нисам успео да подесим текућу учестаност тјунера за уређај „%s“ на %lu Hz." #, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "" +msgstr "Нисам успео да добавим јачину сигнала за уређај „%s“." -#, fuzzy, c-format +#, c-format msgid "Failed to get value for control %d on device '%s'." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Нисам успео да добавим вредност за контролу %d на уређају „%s“." -#, fuzzy, c-format +#, c-format msgid "Failed to set value %d for control %d on device '%s'." -msgstr "Не могу да затворим управљачки уређај „%s“." +msgstr "Нисам успео да подесим вредност %d за контролу %d на уређају „%s“." #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" +"Нисам успео да добавим текући улаз на уређају „%s“. Можда је то радио уређај." -#, fuzzy, c-format +#, c-format msgid "Failed to set input %d on device %s." -msgstr "Не могу да отворим радио уређај '%s'" +msgstr "Нисам успео да подесим улаз %d на уређају %s." -#, fuzzy, c-format +#, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" -msgstr "Не могу да примим довољно бафера са уређаја „%s“." +msgstr "" +"Нисам успео да добавим текући излаз на уређају „%s“. Можда је то радио " +"уређај." -#, fuzzy, c-format +#, c-format msgid "Failed to set output %d on device %s." -msgstr "Не могу да отворим радио уређај '%s'" +msgstr "Нисам успео да подесим излаз %d на уређају %s." -#, fuzzy, c-format +#, c-format msgid "Could not enqueue buffers in device '%s'." -msgstr "Не могу да примим бафере са уређаја „%s“." +msgstr "Не могу да додам помоћне меморије у уређају „%s“." -#, fuzzy, c-format +#, c-format msgid "Failed trying to get video frames from device '%s'." -msgstr "Не могу да примим довољно бафера са уређаја „%s“." +msgstr "Нисам успео да добавим видео кадрове са уређаја „%s“." #, c-format msgid "Failed after %d tries. device %s. system error: %s" -msgstr "" +msgstr "Нисам успео након %d покушаја. уређај %s. системска грешка: %s" -#, fuzzy, c-format +#, c-format msgid "Could not get parameters on device '%s'" -msgstr "Не могу да примим бафере са уређаја „%s“." +msgstr "Не могу да добавим параметре на уређају „%s“" msgid "Video input device did not accept new frame rate setting." -msgstr "" +msgstr "Улазни видео уређај не прихвата нове поставке протока кадрова." -#, fuzzy, c-format +#, c-format msgid "Could not map buffers from device '%s'" -msgstr "Не могу да примим бафере са уређаја „%s“." +msgstr "Не могу да мапирам помоћне меморије са уређаја „%s“" #, c-format msgid "The driver of device '%s' does not support any known capture method." msgstr "" +"Управљачки програм уређаја „%s“ не подржава ниједан познати начин снимања." msgid "Changing resolution at runtime is not yet supported." -msgstr "" +msgstr "Промена резолуције приликом извршавања још увек није подржана." msgid "Cannot operate without a clock" -msgstr "" +msgstr "Не могу да радим без сата" #~ msgid "Could not open file \"%s\" for writing." #~ msgstr "Не могу да отворим датотеку „%s“ ради уписа." diff --git a/po/sv.gmo b/po/sv.gmo index e03afcf..a835ca9 100644 Binary files a/po/sv.gmo and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index 1eca391..23d28da 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-09 19:36+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" diff --git a/po/tr.gmo b/po/tr.gmo index e493df5..a063a8a 100644 Binary files a/po/tr.gmo and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po index 747b3e4..3df6bc2 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.26.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-01-08 00:03+0200\n" "Last-Translator: Server Acim \n" "Language-Team: Turkish \n" diff --git a/po/uk.gmo b/po/uk.gmo index cc053d6..4a4bc4e 100644 Binary files a/po/uk.gmo and b/po/uk.gmo differ diff --git a/po/uk.po b/po/uk.po index 3bc721d..b180f15 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.28.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2011-05-01 11:55+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" diff --git a/po/vi.gmo b/po/vi.gmo index 44b7d23..4bacc91 100644 Binary files a/po/vi.gmo and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po index 1bce35d..abc2ab8 100644 --- a/po/vi.po +++ b/po/vi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.23.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2010-10-03 18:48+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index da9c278..ed72383 100644 Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po index 4c053e9..88f1b37 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 0.10.16.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2009-11-13 22:20+0800\n" "Last-Translator: Ji ZhengYu \n" "Language-Team: Chinese (simplified) \n" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo index 1543501..0429737 100644 Binary files a/po/zh_HK.gmo and b/po/zh_HK.gmo differ diff --git a/po/zh_HK.po b/po/zh_HK.po index 78913ad..dbb2616 100644 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2006-08-29 01:08+0800\n" "Last-Translator: Abel Cheung \n" "Language-Team: Chinese (Hong Kong) \n" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index 47189c1..f133f4d 100644 Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po index f87df80..363a9d5 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-05-10 09:38+0100\n" +"POT-Creation-Date: 2012-02-21 00:10+0000\n" "PO-Revision-Date: 2006-08-29 01:08+0800\n" "Last-Translator: Abel Cheung \n" "Language-Team: Chinese (traditional) \n" diff --git a/stamp-h.in b/stamp-h.in deleted file mode 100644 index 9788f70..0000000 --- a/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/sys/Makefile.in b/sys/Makefile.in index b938e12..c37f1df 100644 --- a/sys/Makefile.in +++ b/sys/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -76,8 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -91,11 +90,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -214,7 +213,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -289,7 +291,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -313,6 +314,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -347,18 +349,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -411,6 +405,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -445,7 +440,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -532,6 +526,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -756,10 +751,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in index 952b5cf..94cbb01 100644 --- a/sys/directsound/Makefile.in +++ b/sys/directsound/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstdirectsoundsink_la_OBJECTS = \ libgstdirectsoundsink_la-gstdirectsoundplugin.lo libgstdirectsoundsink_la_OBJECTS = \ $(am_libgstdirectsoundsink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstdirectsoundsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstdirectsoundsink_la_SOURCES) DIST_SOURCES = $(libgstdirectsoundsink_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -563,7 +563,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstdirectsoundsink.la: $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_DEPENDENCIES) +libgstdirectsoundsink.la: $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_DEPENDENCIES) $(EXTRA_libgstdirectsoundsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstdirectsoundsink_la_LINK) -rpath $(plugindir) $(libgstdirectsoundsink_la_OBJECTS) $(libgstdirectsoundsink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -578,42 +578,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstdirectsoundsink_la-gstdirectsoundsink.lo: gstdirectsoundsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsink_la-gstdirectsoundsink.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Tpo -c -o libgstdirectsoundsink_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Tpo $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectsoundsink.c' object='libgstdirectsoundsink_la-gstdirectsoundsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectsoundsink.c' object='libgstdirectsoundsink_la-gstdirectsoundsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundsink.lo `test -f 'gstdirectsoundsink.c' || echo '$(srcdir)/'`gstdirectsoundsink.c libgstdirectsoundsink_la-gstdirectsoundplugin.lo: gstdirectsoundplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -MT libgstdirectsoundsink_la-gstdirectsoundplugin.lo -MD -MP -MF $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Tpo -c -o libgstdirectsoundsink_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Tpo $(DEPDIR)/libgstdirectsoundsink_la-gstdirectsoundplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdirectsoundplugin.c' object='libgstdirectsoundsink_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdirectsoundplugin.c' object='libgstdirectsoundsink_la-gstdirectsoundplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdirectsoundsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirectsoundsink_la_CFLAGS) $(CFLAGS) -c -o libgstdirectsoundsink_la-gstdirectsoundplugin.lo `test -f 'gstdirectsoundplugin.c' || echo '$(srcdir)/'`gstdirectsoundplugin.c mostlyclean-libtool: -rm -f *.lo @@ -720,10 +715,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c index 4eef182..2f9a04c 100644 --- a/sys/directsound/gstdirectsoundsink.c +++ b/sys/directsound/gstdirectsoundsink.c @@ -99,12 +99,12 @@ static GstStaticPadTemplate directsoundsink_sink_factory = GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw-int, " - "signed = (boolean) { TRUE, FALSE }, " + "signed = (boolean) TRUE, " "width = (int) 16, " "depth = (int) 16, " "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ]; " "audio/x-raw-int, " - "signed = (boolean) { TRUE, FALSE }, " + "signed = (boolean) FALSE, " "width = (int) 8, " "depth = (int) 8, " "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2 ];" @@ -260,8 +260,8 @@ gst_directsound_sink_base_init (gpointer g_class) "Direct Sound Audio Sink", "Sink/Audio", "Output to a sound card via Direct Sound", "Sebastien Moutte "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&directsoundsink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &directsoundsink_sink_factory); } static void diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in index 1b1a00e..ce15b09 100644 --- a/sys/oss/Makefile.in +++ b/sys/oss/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -115,8 +120,8 @@ am_libgstossaudio_la_OBJECTS = libgstossaudio_la-gstossaudio.lo \ libgstossaudio_la-gstossmixertrack.lo \ libgstossaudio_la-gstosssink.lo libgstossaudio_la-gstosssrc.lo libgstossaudio_la_OBJECTS = $(am_libgstossaudio_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstossaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -132,21 +137,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstossaudio_la_SOURCES) DIST_SOURCES = $(libgstossaudio_la_SOURCES) @@ -229,7 +234,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -304,7 +312,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -328,6 +335,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -362,18 +370,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -426,6 +426,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -460,7 +461,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -574,7 +574,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstossaudio.la: $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_DEPENDENCIES) +libgstossaudio.la: $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_DEPENDENCIES) $(EXTRA_libgstossaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstossaudio_la_LINK) -rpath $(plugindir) $(libgstossaudio_la_OBJECTS) $(libgstossaudio_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -594,82 +594,72 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstossaudio_la-gstossaudio.lo: gstossaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossaudio.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossaudio.Tpo -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstossaudio.Tpo $(DEPDIR)/libgstossaudio_la-gstossaudio.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstossaudio.c' object='libgstossaudio_la-gstossaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstossaudio.c' object='libgstossaudio_la-gstossaudio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossaudio.lo `test -f 'gstossaudio.c' || echo '$(srcdir)/'`gstossaudio.c libgstossaudio_la-gstosshelper.lo: gstosshelper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosshelper.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosshelper.Tpo -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosshelper.Tpo $(DEPDIR)/libgstossaudio_la-gstosshelper.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosshelper.c' object='libgstossaudio_la-gstosshelper.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosshelper.c' object='libgstossaudio_la-gstosshelper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosshelper.lo `test -f 'gstosshelper.c' || echo '$(srcdir)/'`gstosshelper.c libgstossaudio_la-gstossmixer.lo: gstossmixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossmixer.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossmixer.Tpo -c -o libgstossaudio_la-gstossmixer.lo `test -f 'gstossmixer.c' || echo '$(srcdir)/'`gstossmixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstossmixer.Tpo $(DEPDIR)/libgstossaudio_la-gstossmixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstossmixer.c' object='libgstossaudio_la-gstossmixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstossmixer.c' object='libgstossaudio_la-gstossmixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixer.lo `test -f 'gstossmixer.c' || echo '$(srcdir)/'`gstossmixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixer.lo `test -f 'gstossmixer.c' || echo '$(srcdir)/'`gstossmixer.c libgstossaudio_la-gstossmixerelement.lo: gstossmixerelement.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossmixerelement.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossmixerelement.Tpo -c -o libgstossaudio_la-gstossmixerelement.lo `test -f 'gstossmixerelement.c' || echo '$(srcdir)/'`gstossmixerelement.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstossmixerelement.Tpo $(DEPDIR)/libgstossaudio_la-gstossmixerelement.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstossmixerelement.c' object='libgstossaudio_la-gstossmixerelement.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstossmixerelement.c' object='libgstossaudio_la-gstossmixerelement.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixerelement.lo `test -f 'gstossmixerelement.c' || echo '$(srcdir)/'`gstossmixerelement.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixerelement.lo `test -f 'gstossmixerelement.c' || echo '$(srcdir)/'`gstossmixerelement.c libgstossaudio_la-gstossmixertrack.lo: gstossmixertrack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstossmixertrack.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstossmixertrack.Tpo -c -o libgstossaudio_la-gstossmixertrack.lo `test -f 'gstossmixertrack.c' || echo '$(srcdir)/'`gstossmixertrack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstossmixertrack.Tpo $(DEPDIR)/libgstossaudio_la-gstossmixertrack.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstossmixertrack.c' object='libgstossaudio_la-gstossmixertrack.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstossmixertrack.c' object='libgstossaudio_la-gstossmixertrack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixertrack.lo `test -f 'gstossmixertrack.c' || echo '$(srcdir)/'`gstossmixertrack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstossmixertrack.lo `test -f 'gstossmixertrack.c' || echo '$(srcdir)/'`gstossmixertrack.c libgstossaudio_la-gstosssink.lo: gstosssink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssink.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssink.Tpo -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosssink.Tpo $(DEPDIR)/libgstossaudio_la-gstosssink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosssink.c' object='libgstossaudio_la-gstosssink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosssink.c' object='libgstossaudio_la-gstosssink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssink.lo `test -f 'gstosssink.c' || echo '$(srcdir)/'`gstosssink.c libgstossaudio_la-gstosssrc.lo: gstosssrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -MT libgstossaudio_la-gstosssrc.lo -MD -MP -MF $(DEPDIR)/libgstossaudio_la-gstosssrc.Tpo -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstossaudio_la-gstosssrc.Tpo $(DEPDIR)/libgstossaudio_la-gstosssrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosssrc.c' object='libgstossaudio_la-gstosssrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosssrc.c' object='libgstossaudio_la-gstosssrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstossaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstossaudio_la_CFLAGS) $(CFLAGS) -c -o libgstossaudio_la-gstosssrc.lo `test -f 'gstosssrc.c' || echo '$(srcdir)/'`gstosssrc.c mostlyclean-libtool: -rm -f *.lo @@ -776,10 +766,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index 9f9b137..a604d9c 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -181,8 +181,8 @@ gst_oss_sink_base_init (gpointer g_class) "Erik Walthinsen , " "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&osssink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &osssink_sink_factory); } static void diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c index 33f585d..2bd931b 100644 --- a/sys/oss/gstosssrc.c +++ b/sys/oss/gstosssrc.c @@ -136,8 +136,8 @@ gst_oss_src_base_init (gpointer g_class) "Capture from a sound card via OSS", "Erik Walthinsen , " "Wim Taymans "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&osssrc_src_factory)); + gst_element_class_add_static_pad_template (element_class, + &osssrc_src_factory); } static void diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in index 043488e..3cda65b 100644 --- a/sys/oss4/Makefile.in +++ b/sys/oss4/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -117,8 +122,8 @@ am_libgstoss4audio_la_OBJECTS = libgstoss4audio_la-oss4-audio.lo \ libgstoss4audio_la-oss4-sink.lo \ libgstoss4audio_la-oss4-source.lo libgstoss4audio_la_OBJECTS = $(am_libgstoss4audio_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstoss4audio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -134,21 +139,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstoss4audio_la_SOURCES) DIST_SOURCES = $(libgstoss4audio_la_SOURCES) @@ -231,7 +236,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -306,7 +314,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -330,6 +337,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -364,18 +372,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -428,6 +428,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -462,7 +463,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -579,7 +579,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstoss4audio.la: $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_DEPENDENCIES) +libgstoss4audio.la: $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_DEPENDENCIES) $(EXTRA_libgstoss4audio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstoss4audio_la_LINK) -rpath $(plugindir) $(libgstoss4audio_la_OBJECTS) $(libgstoss4audio_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -600,90 +600,79 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstoss4audio_la-oss4-audio.lo: oss4-audio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-audio.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-audio.Tpo -c -o libgstoss4audio_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-audio.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-audio.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-audio.c' object='libgstoss4audio_la-oss4-audio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-audio.c' object='libgstoss4audio_la-oss4-audio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-audio.lo `test -f 'oss4-audio.c' || echo '$(srcdir)/'`oss4-audio.c libgstoss4audio_la-oss4-mixer.lo: oss4-mixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-mixer.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-mixer.Tpo -c -o libgstoss4audio_la-oss4-mixer.lo `test -f 'oss4-mixer.c' || echo '$(srcdir)/'`oss4-mixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-mixer.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-mixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-mixer.c' object='libgstoss4audio_la-oss4-mixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-mixer.c' object='libgstoss4audio_la-oss4-mixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer.lo `test -f 'oss4-mixer.c' || echo '$(srcdir)/'`oss4-mixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer.lo `test -f 'oss4-mixer.c' || echo '$(srcdir)/'`oss4-mixer.c libgstoss4audio_la-oss4-mixer-enum.lo: oss4-mixer-enum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-mixer-enum.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-mixer-enum.Tpo -c -o libgstoss4audio_la-oss4-mixer-enum.lo `test -f 'oss4-mixer-enum.c' || echo '$(srcdir)/'`oss4-mixer-enum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-mixer-enum.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-mixer-enum.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-mixer-enum.c' object='libgstoss4audio_la-oss4-mixer-enum.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-mixer-enum.c' object='libgstoss4audio_la-oss4-mixer-enum.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-enum.lo `test -f 'oss4-mixer-enum.c' || echo '$(srcdir)/'`oss4-mixer-enum.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-enum.lo `test -f 'oss4-mixer-enum.c' || echo '$(srcdir)/'`oss4-mixer-enum.c libgstoss4audio_la-oss4-mixer-slider.lo: oss4-mixer-slider.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-mixer-slider.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-mixer-slider.Tpo -c -o libgstoss4audio_la-oss4-mixer-slider.lo `test -f 'oss4-mixer-slider.c' || echo '$(srcdir)/'`oss4-mixer-slider.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-mixer-slider.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-mixer-slider.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-mixer-slider.c' object='libgstoss4audio_la-oss4-mixer-slider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-mixer-slider.c' object='libgstoss4audio_la-oss4-mixer-slider.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-slider.lo `test -f 'oss4-mixer-slider.c' || echo '$(srcdir)/'`oss4-mixer-slider.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-slider.lo `test -f 'oss4-mixer-slider.c' || echo '$(srcdir)/'`oss4-mixer-slider.c libgstoss4audio_la-oss4-mixer-switch.lo: oss4-mixer-switch.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-mixer-switch.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-mixer-switch.Tpo -c -o libgstoss4audio_la-oss4-mixer-switch.lo `test -f 'oss4-mixer-switch.c' || echo '$(srcdir)/'`oss4-mixer-switch.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-mixer-switch.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-mixer-switch.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-mixer-switch.c' object='libgstoss4audio_la-oss4-mixer-switch.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-mixer-switch.c' object='libgstoss4audio_la-oss4-mixer-switch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-switch.lo `test -f 'oss4-mixer-switch.c' || echo '$(srcdir)/'`oss4-mixer-switch.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-mixer-switch.lo `test -f 'oss4-mixer-switch.c' || echo '$(srcdir)/'`oss4-mixer-switch.c libgstoss4audio_la-oss4-property-probe.lo: oss4-property-probe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-property-probe.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-property-probe.Tpo -c -o libgstoss4audio_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-property-probe.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-property-probe.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-property-probe.c' object='libgstoss4audio_la-oss4-property-probe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-property-probe.c' object='libgstoss4audio_la-oss4-property-probe.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-property-probe.lo `test -f 'oss4-property-probe.c' || echo '$(srcdir)/'`oss4-property-probe.c libgstoss4audio_la-oss4-sink.lo: oss4-sink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-sink.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-sink.Tpo -c -o libgstoss4audio_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-sink.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-sink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-sink.c' object='libgstoss4audio_la-oss4-sink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-sink.c' object='libgstoss4audio_la-oss4-sink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-sink.lo `test -f 'oss4-sink.c' || echo '$(srcdir)/'`oss4-sink.c libgstoss4audio_la-oss4-source.lo: oss4-source.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -MT libgstoss4audio_la-oss4-source.lo -MD -MP -MF $(DEPDIR)/libgstoss4audio_la-oss4-source.Tpo -c -o libgstoss4audio_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstoss4audio_la-oss4-source.Tpo $(DEPDIR)/libgstoss4audio_la-oss4-source.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss4-source.c' object='libgstoss4audio_la-oss4-source.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='oss4-source.c' object='libgstoss4audio_la-oss4-source.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstoss4audio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstoss4audio_la_CFLAGS) $(CFLAGS) -c -o libgstoss4audio_la-oss4-source.lo `test -f 'oss4-source.c' || echo '$(srcdir)/'`oss4-source.c mostlyclean-libtool: -rm -f *.lo @@ -790,10 +779,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/oss4/oss4-mixer.c b/sys/oss4/oss4-mixer.c index fa81ecc..03e2d9d 100644 --- a/sys/oss4/oss4-mixer.c +++ b/sys/oss4/oss4-mixer.c @@ -54,6 +54,7 @@ #include #include +#include "gst/glib-compat-private.h" #include @@ -541,8 +542,13 @@ gst_oss4_mixer_start_watch_task (GstOss4Mixer * mixer) mixer->watch_cond = g_cond_new (); mixer->watch_shutdown = FALSE; +#if !GLIB_CHECK_VERSION (2, 31, 0) mixer->watch_thread = g_thread_create (gst_oss4_mixer_watch_thread, gst_object_ref (mixer), TRUE, &err); +#else + mixer->watch_thread = g_thread_try_new ("oss4-mixer-thread", + gst_oss4_mixer_watch_thread, gst_object_ref (mixer), &err); +#endif if (mixer->watch_thread == NULL) { GST_ERROR_OBJECT (mixer, "Could not create watch thread: %s", err->message); diff --git a/sys/oss4/oss4-sink.c b/sys/oss4/oss4-sink.c index 1d2220b..54e95b9 100644 --- a/sys/oss4/oss4-sink.c +++ b/sys/oss4/oss4-sink.c @@ -134,6 +134,7 @@ gst_oss4_sink_base_init (gpointer g_class) templ = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, gst_oss4_audio_get_template_caps ()); gst_element_class_add_pad_template (element_class, templ); + gst_object_unref (templ); } static void @@ -391,7 +392,7 @@ gst_oss4_sink_getcaps (GstBaseSink * bsink) oss = GST_OSS4_SINK (bsink); if (oss->fd == -1) { - caps = gst_caps_copy (gst_oss4_audio_get_template_caps ()); + caps = gst_oss4_audio_get_template_caps (); } else if (oss->probed_caps) { caps = gst_caps_copy (oss->probed_caps); } else { diff --git a/sys/oss4/oss4-source.c b/sys/oss4/oss4-source.c index 9331f80..eadb4c5 100644 --- a/sys/oss4/oss4-source.c +++ b/sys/oss4/oss4-source.c @@ -115,6 +115,7 @@ gst_oss4_source_base_init (gpointer g_class) templ = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, gst_oss4_audio_get_template_caps ()); gst_element_class_add_pad_template (element_class, templ); + gst_object_unref (templ); } static void @@ -273,7 +274,7 @@ gst_oss4_source_getcaps (GstBaseSrc * bsrc) oss = GST_OSS4_SOURCE (bsrc); if (oss->fd == -1) { - caps = gst_caps_copy (gst_oss4_audio_get_template_caps ()); + caps = gst_oss4_audio_get_template_caps (); } else if (oss->probed_caps) { caps = gst_caps_copy (oss->probed_caps); } else { diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in index 45b5048..9e8e186 100644 --- a/sys/osxaudio/Makefile.in +++ b/sys/osxaudio/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -114,8 +119,8 @@ am_libgstosxaudio_la_OBJECTS = libgstosxaudio_la-gstosxringbuffer.lo \ libgstosxaudio_la-gstosxaudiosrc.lo \ libgstosxaudio_la-gstosxaudio.lo libgstosxaudio_la_OBJECTS = $(am_libgstosxaudio_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstosxaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -131,21 +136,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstosxaudio_la_SOURCES) DIST_SOURCES = $(libgstosxaudio_la_SOURCES) @@ -228,7 +233,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -303,7 +311,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -327,6 +334,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -361,18 +369,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -425,6 +425,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -459,7 +460,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -569,7 +569,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstosxaudio.la: $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_DEPENDENCIES) +libgstosxaudio.la: $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_DEPENDENCIES) $(EXTRA_libgstosxaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstosxaudio_la_LINK) -rpath $(plugindir) $(libgstosxaudio_la_OBJECTS) $(libgstosxaudio_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -587,66 +587,58 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstosxaudio_la-gstosxringbuffer.lo: gstosxringbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxringbuffer.Tpo -c -o libgstosxaudio_la-gstosxringbuffer.lo `test -f 'gstosxringbuffer.c' || echo '$(srcdir)/'`gstosxringbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxringbuffer.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxringbuffer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosxringbuffer.c' object='libgstosxaudio_la-gstosxringbuffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosxringbuffer.c' object='libgstosxaudio_la-gstosxringbuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxringbuffer.lo `test -f 'gstosxringbuffer.c' || echo '$(srcdir)/'`gstosxringbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxringbuffer.lo `test -f 'gstosxringbuffer.c' || echo '$(srcdir)/'`gstosxringbuffer.c libgstosxaudio_la-gstosxaudioelement.lo: gstosxaudioelement.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudioelement.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Tpo -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosxaudioelement.c' object='libgstosxaudio_la-gstosxaudioelement.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosxaudioelement.c' object='libgstosxaudio_la-gstosxaudioelement.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudioelement.lo `test -f 'gstosxaudioelement.c' || echo '$(srcdir)/'`gstosxaudioelement.c libgstosxaudio_la-gstosxaudiosink.lo: gstosxaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Tpo -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosxaudiosink.c' object='libgstosxaudio_la-gstosxaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosxaudiosink.c' object='libgstosxaudio_la-gstosxaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosink.lo `test -f 'gstosxaudiosink.c' || echo '$(srcdir)/'`gstosxaudiosink.c libgstosxaudio_la-gstosxaudiosrc.lo: gstosxaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Tpo -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosxaudiosrc.c' object='libgstosxaudio_la-gstosxaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosxaudiosrc.c' object='libgstosxaudio_la-gstosxaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiosrc.lo `test -f 'gstosxaudiosrc.c' || echo '$(srcdir)/'`gstosxaudiosrc.c libgstosxaudio_la-gstosxaudio.lo: gstosxaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudio.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Tpo -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudio.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstosxaudio.c' object='libgstosxaudio_la-gstosxaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstosxaudio.c' object='libgstosxaudio_la-gstosxaudio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c mostlyclean-libtool: -rm -f *.lo @@ -753,10 +745,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c index e3ade70..cd456e5 100644 --- a/sys/osxaudio/gstosxaudiosink.c +++ b/sys/osxaudio/gstosxaudiosink.c @@ -142,8 +142,7 @@ gst_osx_audio_sink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_static_pad_template (element_class, &sink_factory); gst_element_class_set_details_simple (element_class, "Audio Sink (OSX)", "Sink/Audio", diff --git a/sys/osxaudio/gstosxaudiosrc.c b/sys/osxaudio/gstosxaudiosrc.c index 2bb21a7..7e9ad24 100644 --- a/sys/osxaudio/gstosxaudiosrc.c +++ b/sys/osxaudio/gstosxaudiosrc.c @@ -133,8 +133,7 @@ gst_osx_audio_src_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_factory)); + gst_element_class_add_static_pad_template (element_class, &src_factory); gst_element_class_set_details_simple (element_class, "Audio Source (OSX)", "Source/Audio", diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in index d807e6e..fe62cb4 100644 --- a/sys/osxvideo/Makefile.in +++ b/sys/osxvideo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -112,8 +117,8 @@ am_libgstosxvideosink_la_OBJECTS = \ libgstosxvideosink_la-osxvideosink.lo \ libgstosxvideosink_la-cocoawindow.lo libgstosxvideosink_la_OBJECTS = $(am_libgstosxvideosink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstosxvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) \ $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -129,21 +134,21 @@ LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_OBJCFLAGS) $(OBJCFLAGS) -AM_V_OBJC = $(am__v_OBJC_$(V)) -am__v_OBJC_ = $(am__v_OBJC_$(AM_DEFAULT_VERBOSITY)) +AM_V_OBJC = $(am__v_OBJC_@AM_V@) +am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@) am__v_OBJC_0 = @echo " OBJC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ OBJCLD = $(OBJC) OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_OBJCLD = $(am__v_OBJCLD_$(V)) -am__v_OBJCLD_ = $(am__v_OBJCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@) +am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@) am__v_OBJCLD_0 = @echo " OBJCLD" $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstosxvideosink_la_SOURCES) DIST_SOURCES = $(libgstosxvideosink_la_SOURCES) @@ -226,7 +231,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -301,7 +309,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -325,6 +332,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -359,18 +367,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -423,6 +423,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -457,7 +458,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -559,7 +559,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstosxvideosink.la: $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_DEPENDENCIES) +libgstosxvideosink.la: $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_DEPENDENCIES) $(EXTRA_libgstosxvideosink_la_DEPENDENCIES) $(AM_V_OBJCLD)$(libgstosxvideosink_la_LINK) -rpath $(plugindir) $(libgstosxvideosink_la_OBJECTS) $(libgstosxvideosink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -574,42 +574,37 @@ distclean-compile: .m.o: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ $< +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ $< .m.obj: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .m.lo: @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LTOBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LTOBJCCOMPILE) -c -o $@ $< +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LTOBJCCOMPILE) -c -o $@ $< libgstosxvideosink_la-osxvideosink.lo: osxvideosink.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideosink_la-osxvideosink.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Tpo -c -o libgstosxvideosink_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Tpo $(DEPDIR)/libgstosxvideosink_la-osxvideosink.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='osxvideosink.m' object='libgstosxvideosink_la-osxvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='osxvideosink.m' object='libgstosxvideosink_la-osxvideosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-osxvideosink.lo `test -f 'osxvideosink.m' || echo '$(srcdir)/'`osxvideosink.m libgstosxvideosink_la-cocoawindow.lo: cocoawindow.m @am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -MT libgstosxvideosink_la-cocoawindow.lo -MD -MP -MF $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Tpo -c -o libgstosxvideosink_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m @am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Tpo $(DEPDIR)/libgstosxvideosink_la-cocoawindow.Plo -@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='cocoawindow.m' object='libgstosxvideosink_la-cocoawindow.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ $(AM_V_OBJC)source='cocoawindow.m' object='libgstosxvideosink_la-cocoawindow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m +@am__fastdepOBJC_FALSE@ $(AM_V_OBJC@am__nodep@)$(LIBTOOL) $(AM_V_lt) $(libgstosxvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -c -o libgstosxvideosink_la-cocoawindow.lo `test -f 'cocoawindow.m' || echo '$(srcdir)/'`cocoawindow.m mostlyclean-libtool: -rm -f *.lo @@ -716,10 +711,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/osxvideo/cocoawindow.m b/sys/osxvideo/cocoawindow.m index 0a256ac..ed24fad 100644 --- a/sys/osxvideo/cocoawindow.m +++ b/sys/osxvideo/cocoawindow.m @@ -128,6 +128,7 @@ } self = [super initWithFrame: frame pixelFormat:fmt]; + [fmt release]; actualContext = [self openGLContext]; [actualContext makeCurrentContext]; diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index 4c32527..5914550 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -354,8 +354,8 @@ gst_osx_video_sink_base_init (gpointer g_class) "Sink/Video", "OSX native videosink", "Zaheer Abbas Merali "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_osx_video_sink_sink_template_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_osx_video_sink_sink_template_factory); } static void diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in index 07e94c4..a1d1abd 100644 --- a/sys/sunaudio/Makefile.in +++ b/sys/sunaudio/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -116,8 +121,8 @@ am_libgstsunaudio_la_OBJECTS = libgstsunaudio_la-gstsunaudio.lo \ libgstsunaudio_la-gstsunaudiomixeroptions.lo \ libgstsunaudio_la-gstsunaudiosrc.lo libgstsunaudio_la_OBJECTS = $(am_libgstsunaudio_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstsunaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -133,21 +138,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstsunaudio_la_SOURCES) DIST_SOURCES = $(libgstsunaudio_la_SOURCES) @@ -230,7 +235,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -305,7 +313,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -329,6 +336,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -363,18 +371,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -427,6 +427,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -461,7 +462,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -572,7 +572,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstsunaudio.la: $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_DEPENDENCIES) +libgstsunaudio.la: $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_DEPENDENCIES) $(EXTRA_libgstsunaudio_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstsunaudio_la_LINK) -rpath $(plugindir) $(libgstsunaudio_la_OBJECTS) $(libgstsunaudio_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -592,82 +592,72 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstsunaudio_la-gstsunaudio.lo: gstsunaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudio.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Tpo -c -o libgstsunaudio_la-gstsunaudio.lo `test -f 'gstsunaudio.c' || echo '$(srcdir)/'`gstsunaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudio.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudio.c' object='libgstsunaudio_la-gstsunaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudio.c' object='libgstsunaudio_la-gstsunaudio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudio.lo `test -f 'gstsunaudio.c' || echo '$(srcdir)/'`gstsunaudio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudio.lo `test -f 'gstsunaudio.c' || echo '$(srcdir)/'`gstsunaudio.c libgstsunaudio_la-gstsunaudiosink.lo: gstsunaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Tpo -c -o libgstsunaudio_la-gstsunaudiosink.lo `test -f 'gstsunaudiosink.c' || echo '$(srcdir)/'`gstsunaudiosink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiosink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiosink.c' object='libgstsunaudio_la-gstsunaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiosink.c' object='libgstsunaudio_la-gstsunaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosink.lo `test -f 'gstsunaudiosink.c' || echo '$(srcdir)/'`gstsunaudiosink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosink.lo `test -f 'gstsunaudiosink.c' || echo '$(srcdir)/'`gstsunaudiosink.c libgstsunaudio_la-gstsunaudiomixerctrl.lo: gstsunaudiomixerctrl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixerctrl.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Tpo -c -o libgstsunaudio_la-gstsunaudiomixerctrl.lo `test -f 'gstsunaudiomixerctrl.c' || echo '$(srcdir)/'`gstsunaudiomixerctrl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixerctrl.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiomixerctrl.c' object='libgstsunaudio_la-gstsunaudiomixerctrl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiomixerctrl.c' object='libgstsunaudio_la-gstsunaudiomixerctrl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixerctrl.lo `test -f 'gstsunaudiomixerctrl.c' || echo '$(srcdir)/'`gstsunaudiomixerctrl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixerctrl.lo `test -f 'gstsunaudiomixerctrl.c' || echo '$(srcdir)/'`gstsunaudiomixerctrl.c libgstsunaudio_la-gstsunaudiomixer.lo: gstsunaudiomixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixer.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Tpo -c -o libgstsunaudio_la-gstsunaudiomixer.lo `test -f 'gstsunaudiomixer.c' || echo '$(srcdir)/'`gstsunaudiomixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixer.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiomixer.c' object='libgstsunaudio_la-gstsunaudiomixer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiomixer.c' object='libgstsunaudio_la-gstsunaudiomixer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixer.lo `test -f 'gstsunaudiomixer.c' || echo '$(srcdir)/'`gstsunaudiomixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixer.lo `test -f 'gstsunaudiomixer.c' || echo '$(srcdir)/'`gstsunaudiomixer.c libgstsunaudio_la-gstsunaudiomixertrack.lo: gstsunaudiomixertrack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixertrack.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Tpo -c -o libgstsunaudio_la-gstsunaudiomixertrack.lo `test -f 'gstsunaudiomixertrack.c' || echo '$(srcdir)/'`gstsunaudiomixertrack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixertrack.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiomixertrack.c' object='libgstsunaudio_la-gstsunaudiomixertrack.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiomixertrack.c' object='libgstsunaudio_la-gstsunaudiomixertrack.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixertrack.lo `test -f 'gstsunaudiomixertrack.c' || echo '$(srcdir)/'`gstsunaudiomixertrack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixertrack.lo `test -f 'gstsunaudiomixertrack.c' || echo '$(srcdir)/'`gstsunaudiomixertrack.c libgstsunaudio_la-gstsunaudiomixeroptions.lo: gstsunaudiomixeroptions.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiomixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Tpo -c -o libgstsunaudio_la-gstsunaudiomixeroptions.lo `test -f 'gstsunaudiomixeroptions.c' || echo '$(srcdir)/'`gstsunaudiomixeroptions.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiomixeroptions.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiomixeroptions.c' object='libgstsunaudio_la-gstsunaudiomixeroptions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiomixeroptions.c' object='libgstsunaudio_la-gstsunaudiomixeroptions.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixeroptions.lo `test -f 'gstsunaudiomixeroptions.c' || echo '$(srcdir)/'`gstsunaudiomixeroptions.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiomixeroptions.lo `test -f 'gstsunaudiomixeroptions.c' || echo '$(srcdir)/'`gstsunaudiomixeroptions.c libgstsunaudio_la-gstsunaudiosrc.lo: gstsunaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -MT libgstsunaudio_la-gstsunaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Tpo -c -o libgstsunaudio_la-gstsunaudiosrc.lo `test -f 'gstsunaudiosrc.c' || echo '$(srcdir)/'`gstsunaudiosrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Tpo $(DEPDIR)/libgstsunaudio_la-gstsunaudiosrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsunaudiosrc.c' object='libgstsunaudio_la-gstsunaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsunaudiosrc.c' object='libgstsunaudio_la-gstsunaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosrc.lo `test -f 'gstsunaudiosrc.c' || echo '$(srcdir)/'`gstsunaudiosrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsunaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsunaudio_la_CFLAGS) $(CFLAGS) -c -o libgstsunaudio_la-gstsunaudiosrc.lo `test -f 'gstsunaudiosrc.c' || echo '$(srcdir)/'`gstsunaudiosrc.c mostlyclean-libtool: -rm -f *.lo @@ -774,10 +764,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/sunaudio/gstsunaudiosink.c b/sys/sunaudio/gstsunaudiosink.c index c125dae..2a3cf19 100644 --- a/sys/sunaudio/gstsunaudiosink.c +++ b/sys/sunaudio/gstsunaudiosink.c @@ -146,8 +146,8 @@ gst_sunaudiosink_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_sunaudiosink_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_sunaudiosink_factory); gst_element_class_set_details_simple (element_class, "Sun Audio Sink", "Sink/Audio", "Audio sink for Sun Audio devices", @@ -208,7 +208,7 @@ gst_sunaudiosink_init (GstSunAudioSink * sunaudiosink) audiodev = DEFAULT_DEVICE; sunaudiosink->device = g_strdup (audiodev); - /* mutex and gconf used to control the write method */ + /* mutex and gcond used to control the write method */ sunaudiosink->write_mutex = g_mutex_new (); sunaudiosink->sleep_cond = g_cond_new (); } diff --git a/sys/sunaudio/gstsunaudiosink.h b/sys/sunaudio/gstsunaudiosink.h index cad4e88..9454475 100644 --- a/sys/sunaudio/gstsunaudiosink.h +++ b/sys/sunaudio/gstsunaudiosink.h @@ -60,7 +60,7 @@ struct _GstSunAudioSink { gint samples_written; guint bytes_per_sample; - /* mutex and gconf used to control the write method */ + /* mutex and gcond used to control the write method */ GMutex *write_mutex; GCond *sleep_cond; gboolean flushing; diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c index f0529be..08282cf 100644 --- a/sys/sunaudio/gstsunaudiosrc.c +++ b/sys/sunaudio/gstsunaudiosrc.c @@ -108,8 +108,8 @@ gst_sunaudiosrc_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&gst_sunaudiosrc_factory)); + gst_element_class_add_static_pad_template (element_class, + &gst_sunaudiosrc_factory); gst_element_class_set_details_simple (element_class, "Sun Audio Source", "Source/Audio", "Audio source for Sun Audio devices", diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in index 7805642..c9ad860 100644 --- a/sys/v4l2/Makefile.in +++ b/sys/v4l2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -68,8 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -104,6 +103,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -134,8 +139,8 @@ am_libgstvideo4linux2_la_OBJECTS = libgstvideo4linux2_la-gstv4l2.lo \ libgstvideo4linux2_la-v4l2src_calls.lo $(am__objects_1) \ $(am__objects_2) libgstvideo4linux2_la_OBJECTS = $(am_libgstvideo4linux2_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstvideo4linux2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -151,21 +156,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstvideo4linux2_la_SOURCES) DIST_SOURCES = $(am__libgstvideo4linux2_la_SOURCES_DIST) @@ -248,7 +253,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -323,7 +331,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -347,6 +354,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -381,18 +389,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -445,6 +445,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -479,7 +480,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -608,7 +608,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstvideo4linux2.la: $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_DEPENDENCIES) +libgstvideo4linux2.la: $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_DEPENDENCIES) $(EXTRA_libgstvideo4linux2_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstvideo4linux2_la_LINK) -rpath $(plugindir) $(libgstvideo4linux2_la_OBJECTS) $(libgstvideo4linux2_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -633,122 +633,107 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstvideo4linux2_la-gstv4l2.lo: gstv4l2.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Tpo -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2.c' object='libgstvideo4linux2_la-gstv4l2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2.c' object='libgstvideo4linux2_la-gstv4l2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2.lo `test -f 'gstv4l2.c' || echo '$(srcdir)/'`gstv4l2.c libgstvideo4linux2_la-gstv4l2colorbalance.lo: gstv4l2colorbalance.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2colorbalance.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Tpo -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2colorbalance.c' object='libgstvideo4linux2_la-gstv4l2colorbalance.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2colorbalance.c' object='libgstvideo4linux2_la-gstv4l2colorbalance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c libgstvideo4linux2_la-gstv4l2object.lo: gstv4l2object.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2object.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2object.c' object='libgstvideo4linux2_la-gstv4l2object.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2object.c' object='libgstvideo4linux2_la-gstv4l2object.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c libgstvideo4linux2_la-gstv4l2bufferpool.lo: gstv4l2bufferpool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2bufferpool.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Tpo -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2bufferpool.c' object='libgstvideo4linux2_la-gstv4l2bufferpool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2bufferpool.c' object='libgstvideo4linux2_la-gstv4l2bufferpool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2bufferpool.lo `test -f 'gstv4l2bufferpool.c' || echo '$(srcdir)/'`gstv4l2bufferpool.c libgstvideo4linux2_la-gstv4l2src.lo: gstv4l2src.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2src.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Tpo -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2src.c' object='libgstvideo4linux2_la-gstv4l2src.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2src.c' object='libgstvideo4linux2_la-gstv4l2src.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2src.lo `test -f 'gstv4l2src.c' || echo '$(srcdir)/'`gstv4l2src.c libgstvideo4linux2_la-gstv4l2radio.lo: gstv4l2radio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2radio.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Tpo -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2radio.c' object='libgstvideo4linux2_la-gstv4l2radio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2radio.c' object='libgstvideo4linux2_la-gstv4l2radio.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2radio.lo `test -f 'gstv4l2radio.c' || echo '$(srcdir)/'`gstv4l2radio.c libgstvideo4linux2_la-gstv4l2tuner.lo: gstv4l2tuner.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2tuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Tpo -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2tuner.c' object='libgstvideo4linux2_la-gstv4l2tuner.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2tuner.c' object='libgstvideo4linux2_la-gstv4l2tuner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c libgstvideo4linux2_la-gstv4l2vidorient.lo: gstv4l2vidorient.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vidorient.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2vidorient.c' object='libgstvideo4linux2_la-gstv4l2vidorient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2vidorient.c' object='libgstvideo4linux2_la-gstv4l2vidorient.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c libgstvideo4linux2_la-v4l2_calls.lo: v4l2_calls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Tpo -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Tpo $(DEPDIR)/libgstvideo4linux2_la-v4l2_calls.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4l2_calls.c' object='libgstvideo4linux2_la-v4l2_calls.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2_calls.c' object='libgstvideo4linux2_la-v4l2_calls.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2_calls.lo `test -f 'v4l2_calls.c' || echo '$(srcdir)/'`v4l2_calls.c libgstvideo4linux2_la-v4l2src_calls.lo: v4l2src_calls.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-v4l2src_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-v4l2src_calls.Tpo -c -o libgstvideo4linux2_la-v4l2src_calls.lo `test -f 'v4l2src_calls.c' || echo '$(srcdir)/'`v4l2src_calls.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-v4l2src_calls.Tpo $(DEPDIR)/libgstvideo4linux2_la-v4l2src_calls.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4l2src_calls.c' object='libgstvideo4linux2_la-v4l2src_calls.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2src_calls.c' object='libgstvideo4linux2_la-v4l2src_calls.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2src_calls.lo `test -f 'v4l2src_calls.c' || echo '$(srcdir)/'`v4l2src_calls.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-v4l2src_calls.lo `test -f 'v4l2src_calls.c' || echo '$(srcdir)/'`v4l2src_calls.c libgstvideo4linux2_la-gstv4l2xoverlay.lo: gstv4l2xoverlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2xoverlay.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2xoverlay.Tpo -c -o libgstvideo4linux2_la-gstv4l2xoverlay.lo `test -f 'gstv4l2xoverlay.c' || echo '$(srcdir)/'`gstv4l2xoverlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2xoverlay.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2xoverlay.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2xoverlay.c' object='libgstvideo4linux2_la-gstv4l2xoverlay.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2xoverlay.c' object='libgstvideo4linux2_la-gstv4l2xoverlay.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2xoverlay.lo `test -f 'gstv4l2xoverlay.c' || echo '$(srcdir)/'`gstv4l2xoverlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2xoverlay.lo `test -f 'gstv4l2xoverlay.c' || echo '$(srcdir)/'`gstv4l2xoverlay.c libgstvideo4linux2_la-gstv4l2sink.lo: gstv4l2sink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2sink.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Tpo -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l2sink.c' object='libgstvideo4linux2_la-gstv4l2sink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2sink.c' object='libgstvideo4linux2_la-gstv4l2sink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2sink.lo `test -f 'gstv4l2sink.c' || echo '$(srcdir)/'`gstv4l2sink.c mostlyclean-libtool: -rm -f *.lo @@ -855,10 +840,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index e976ec5..b81c6a4 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -39,6 +39,7 @@ #endif #include "v4l2_calls.h" #include "gst/gst-i18n-plugin.h" +#include /* videodev2.h is not versioned and we can't easily check for the presence * of enum values at compile time, but the V4L2_CAP_VIDEO_OUTPUT_OVERLAY define diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 5296197..81d1cb7 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -56,7 +56,7 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); #define DEFAULT_PROP_DEVICE_NAME NULL #define DEFAULT_PROP_DEVICE_FD -1 #define DEFAULT_PROP_FLAGS 0 -#define DEFAULT_PROP_NORM NULL +#define DEFAULT_PROP_TV_NORM 0 #define DEFAULT_PROP_CHANNEL NULL #define DEFAULT_PROP_FREQUENCY 0 @@ -66,6 +66,8 @@ enum V4L2_STD_OBJECT_PROPS, }; +G_LOCK_DEFINE_STATIC (probe_lock); + const GList * gst_v4l2_probe_get_properties (GstPropertyProbe * probe) { @@ -74,13 +76,13 @@ gst_v4l2_probe_get_properties (GstPropertyProbe * probe) /* well, not perfect, but better than no locking at all. * In the worst case we leak a list node, so who cares? */ - GST_CLASS_LOCK (GST_OBJECT_CLASS (klass)); + G_LOCK (probe_lock); if (!list) { list = g_list_append (NULL, g_object_class_find_property (klass, "device")); } - GST_CLASS_UNLOCK (GST_OBJECT_CLASS (klass)); + G_UNLOCK (probe_lock); return list; } @@ -316,6 +318,58 @@ gst_v4l2_device_get_type (void) return v4l2_device_type; } +#define GST_TYPE_V4L2_TV_NORM (gst_v4l2_tv_norm_get_type ()) +static GType +gst_v4l2_tv_norm_get_type (void) +{ + static GType v4l2_tv_norm = 0; + + if (!v4l2_tv_norm) { + static const GEnumValue tv_norms[] = { + {0, "none", "none"}, + + {V4L2_STD_NTSC, "NTSC", "NTSC"}, + {V4L2_STD_NTSC_M, "NTSC-M", "NTSC-M"}, + {V4L2_STD_NTSC_M_JP, "NTSC-M-JP", "NTSC-M-JP"}, + {V4L2_STD_NTSC_M_KR, "NTSC-M-KR", "NTSC-M-KR"}, + {V4L2_STD_NTSC_443, "NTSC-443", "NTSC-443"}, + + {V4L2_STD_PAL, "PAL", "PAL"}, + {V4L2_STD_PAL_BG, "PAL-BG", "PAL-BG"}, + {V4L2_STD_PAL_B, "PAL-B", "PAL-B"}, + {V4L2_STD_PAL_B1, "PAL-B1", "PAL-B1"}, + {V4L2_STD_PAL_G, "PAL-G", "PAL-G"}, + {V4L2_STD_PAL_H, "PAL-H", "PAL-H"}, + {V4L2_STD_PAL_I, "PAL-I", "PAL-I"}, + {V4L2_STD_PAL_DK, "PAL-DK", "PAL-DK"}, + {V4L2_STD_PAL_D, "PAL-D", "PAL-D"}, + {V4L2_STD_PAL_D1, "PAL-D1", "PAL-D1"}, + {V4L2_STD_PAL_K, "PAL-K", "PAL-K"}, + {V4L2_STD_PAL_M, "PAL-M", "PAL-M"}, + {V4L2_STD_PAL_N, "PAL-N", "PAL-N"}, + {V4L2_STD_PAL_Nc, "PAL-Nc", "PAL-Nc"}, + {V4L2_STD_PAL_60, "PAL-60", "PAL-60"}, + + {V4L2_STD_SECAM, "SECAM", "SECAM"}, + {V4L2_STD_SECAM_B, "SECAM-B", "SECAM-B"}, + {V4L2_STD_SECAM_G, "SECAM-G", "SECAM-G"}, + {V4L2_STD_SECAM_H, "SECAM-H", "SECAM-H"}, + {V4L2_STD_SECAM_DK, "SECAM-DK", "SECAM-DK"}, + {V4L2_STD_SECAM_D, "SECAM-D", "SECAM-D"}, + {V4L2_STD_SECAM_K, "SECAM-K", "SECAM-K"}, + {V4L2_STD_SECAM_K1, "SECAM-K1", "SECAM-K1"}, + {V4L2_STD_SECAM_L, "SECAM-L", "SECAM-L"}, + {V4L2_STD_SECAM_LC, "SECAM-Lc", "SECAM-Lc"}, + + {0, NULL, NULL} + }; + + v4l2_tv_norm = g_enum_register_static ("V4L2_TV_norms", tv_norms); + } + + return v4l2_tv_norm; +} + void gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, const char *default_device) @@ -384,6 +438,19 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, "Hue or color balance", G_MININT, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); + + /** + * GstV4l2Src:norm + * + * TV norm + * + * Since: 0.10.31 + */ + g_object_class_install_property (gobject_class, PROP_TV_NORM, + g_param_spec_enum ("norm", "TV norm", + "video standard", + GST_TYPE_V4L2_TV_NORM, DEFAULT_PROP_TV_NORM, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); } GstV4l2Object * @@ -440,9 +507,6 @@ gst_v4l2_object_destroy (GstV4l2Object * v4l2object) if (v4l2object->channel) g_free (v4l2object->channel); - if (v4l2object->norm) - g_free (v4l2object->norm); - if (v4l2object->formats) { gst_v4l2_object_clear_format_list (v4l2object); } @@ -510,23 +574,10 @@ gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object, return TRUE; } break; -#if 0 - case PROP_NORM: - if (GST_V4L2_IS_OPEN (v4l2object)) { - GstTuner *tuner = GST_TUNER (v4l2object->element); - GstTunerNorm *norm = gst_tuner_find_norm_by_name (tuner, - (gchar *) g_value_get_string (value)); - - if (norm) { - /* like gst_tuner_set_norm (tuner, norm) - without g_object_notify */ - gst_v4l2_tuner_set_norm (v4l2object, norm); - } - } else { - g_free (v4l2object->norm); - v4l2object->norm = g_value_dup_string (value); - } + case PROP_TV_NORM: + v4l2object->tv_norm = g_value_get_enum (value); break; +#if 0 case PROP_CHANNEL: if (GST_V4L2_IS_OPEN (v4l2object)) { GstTuner *tuner = GST_TUNER (v4l2object->element); @@ -631,6 +682,9 @@ gst_v4l2_object_get_property_helper (GstV4l2Object * v4l2object, return TRUE; } break; + case PROP_TV_NORM: + g_value_set_enum (value, v4l2object->tv_norm); + break; default: return FALSE; break; @@ -650,16 +704,18 @@ gst_v4l2_set_defaults (GstV4l2Object * v4l2object) tuner = GST_TUNER (v4l2object->element); - if (v4l2object->norm) - norm = gst_tuner_find_norm_by_name (tuner, v4l2object->norm); + if (v4l2object->tv_norm) + norm = gst_v4l2_tuner_get_norm_by_std_id (v4l2object, v4l2object->tv_norm); + GST_DEBUG_OBJECT (v4l2object->element, "tv_norm=0x%" G_GINT64_MODIFIER "x, " + "norm=%p", (guint64) v4l2object->tv_norm, norm); if (norm) { gst_tuner_set_norm (tuner, norm); } else { norm = GST_TUNER_NORM (gst_tuner_get_norm (GST_TUNER (v4l2object->element))); if (norm) { - g_free (v4l2object->norm); - v4l2object->norm = g_strdup (norm->label); + v4l2object->tv_norm = + gst_v4l2_tuner_get_std_id_by_norm (v4l2object, norm); gst_tuner_norm_changed (tuner, norm); } } @@ -839,6 +895,8 @@ gst_v4l2_object_get_format_from_fourcc (GstV4l2Object * v4l2object, /* complete made up ranking, the values themselves are meaningless */ +/* These ranks MUST be X such that X<<15 fits on a signed int - see + the comment at the end of gst_v4l2_object_format_get_rank. */ #define YUV_BASE_RANK 1000 #define JPEG_BASE_RANK 500 #define DV_BASE_RANK 200 @@ -1606,7 +1664,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object, num, denom); gst_value_set_fraction (&step, -num, denom); - while (gst_value_compare (&min, &max) <= 0) { + while (gst_value_compare (&min, &max) != GST_VALUE_GREATER_THAN) { GValue rate = { 0, }; num = gst_value_get_fraction_numerator (&min); @@ -1665,7 +1723,8 @@ return_data: s = gst_structure_copy (template); gst_structure_set (s, "width", G_TYPE_INT, (gint) width, "height", G_TYPE_INT, (gint) height, - "interlaced", G_TYPE_BOOLEAN, interlaced, NULL); + "interlaced", G_TYPE_BOOLEAN, interlaced, + "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL); if (G_IS_VALUE (&rates)) { /* only change the framerate on the template when we have a valid probed new @@ -1775,7 +1834,7 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object, size.stepwise.step_height); for (w = size.stepwise.min_width, h = size.stepwise.min_height; - w < size.stepwise.max_width && h < size.stepwise.max_height; + w <= size.stepwise.max_width && h <= size.stepwise.max_height; w += size.stepwise.step_width, h += size.stepwise.step_height) { if (w == 0 || h == 0) continue; @@ -1887,13 +1946,15 @@ default_frame_sizes: } /* Since we can't get framerate directly, try to use the current norm */ - if (v4l2object->norm && v4l2object->norms) { + if (v4l2object->tv_norm && v4l2object->norms) { GList *norms; GstTunerNorm *norm = NULL; + GstTunerNorm *current = + gst_v4l2_tuner_get_norm_by_std_id (v4l2object, v4l2object->tv_norm); for (norms = v4l2object->norms; norms != NULL; norms = norms->next) { norm = (GstTunerNorm *) norms->data; - if (!strcmp (norm->label, v4l2object->norm)) + if (!strcmp (norm->label, current->label)) break; } /* If it's possible, set framerate to that (discrete) value */ @@ -1924,6 +1985,8 @@ default_frame_sizes: gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL); gst_structure_set (tmp, "interlaced", G_TYPE_BOOLEAN, interlaced, NULL); + gst_structure_set (tmp, "pixel-aspect-ratio", + GST_TYPE_FRACTION, 1, 1, NULL); gst_caps_append_structure (ret, tmp); @@ -1935,9 +1998,10 @@ static gboolean gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, guint32 pixelformat, gint * width, gint * height, gboolean * interlaced) { - struct v4l2_format fmt; + struct v4l2_format fmt, prevfmt; int fd; int r; + int prevfmt_valid; g_return_val_if_fail (width != NULL, FALSE); g_return_val_if_fail (height != NULL, FALSE); @@ -1948,6 +2012,11 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, fd = v4l2object->video_fd; + /* Some drivers are buggy and will modify the currently set format + when processing VIDIOC_TRY_FMT, so we remember what is set at the + minute, and will reset it when done. */ + prevfmt_valid = (v4l2_ioctl (fd, VIDIOC_G_FMT, &prevfmt) >= 0); + /* get size delimiters */ memset (&fmt, 0, sizeof (fmt)); fmt.type = v4l2object->type; @@ -1970,12 +2039,12 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, /* The driver might not implement TRY_FMT, in which case we will try S_FMT to probe */ if (errno != ENOTTY) - return FALSE; + goto error; /* Only try S_FMT if we're not actively capturing yet, which we shouldn't be, because we're still probing */ if (GST_V4L2_IS_ACTIVE (v4l2object)) - return FALSE; + goto error; GST_LOG_OBJECT (v4l2object->element, "Failed to probe size limit with VIDIOC_TRY_FMT, trying VIDIOC_S_FMT"); @@ -1994,7 +2063,7 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, } if (r < 0) - return FALSE; + goto error; } GST_LOG_OBJECT (v4l2object->element, @@ -2017,10 +2086,17 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, GST_WARNING_OBJECT (v4l2object->element, "Unsupported field type for %" GST_FOURCC_FORMAT "@%ux%u", GST_FOURCC_ARGS (pixelformat), *width, *height); - return FALSE; + goto error; } + if (prevfmt_valid) + v4l2_ioctl (fd, VIDIOC_S_FMT, &prevfmt); return TRUE; + +error: + if (prevfmt_valid) + v4l2_ioctl (fd, VIDIOC_S_FMT, &prevfmt); + return FALSE; } @@ -2049,7 +2125,9 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, guint32 pixelformat, GST_V4L2_CHECK_OPEN (v4l2object); GST_V4L2_CHECK_NOT_ACTIVE (v4l2object); - if (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G')) + /* Only unconditionally accept mpegts for sources */ + if ((v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) && + (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G'))) return TRUE; memset (&format, 0x00, sizeof (struct v4l2_format)); @@ -2104,11 +2182,20 @@ get_fmt_failed: } set_fmt_failed: { - GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, - (_("Device '%s' cannot capture at %dx%d"), - v4l2object->videodev, width, height), - ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s", - GST_FOURCC_ARGS (pixelformat), width, height, g_strerror (errno))); + if (errno == EBUSY) { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, BUSY, + (_("Device '%s' is busy"), v4l2object->videodev), + ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s", + GST_FOURCC_ARGS (pixelformat), width, height, + g_strerror (errno))); + } else { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, + (_("Device '%s' cannot capture at %dx%d"), + v4l2object->videodev, width, height), + ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s", + GST_FOURCC_ARGS (pixelformat), width, height, + g_strerror (errno))); + } return FALSE; } invalid_dimensions: diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h index a0dd41c..a7b590d 100644 --- a/sys/v4l2/gstv4l2object.h +++ b/sys/v4l2/gstv4l2object.h @@ -108,7 +108,7 @@ struct _GstV4l2Object { GList *channels; /* properties */ - gchar *norm; + v4l2_std_id tv_norm; gchar *channel; gulong frequency; @@ -133,11 +133,12 @@ GType gst_v4l2_object_get_type (void); PROP_DEVICE, \ PROP_DEVICE_NAME, \ PROP_DEVICE_FD, \ - PROP_FLAGS, \ + PROP_FLAGS, \ PROP_BRIGHTNESS, \ PROP_CONTRAST, \ PROP_SATURATION, \ - PROP_HUE + PROP_HUE, \ + PROP_TV_NORM /* create/destroy */ GstV4l2Object * gst_v4l2_object_new (GstElement * element, diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c index fcf7e87..f6aba24 100644 --- a/sys/v4l2/gstv4l2sink.c +++ b/sys/v4l2/gstv4l2sink.c @@ -55,6 +55,7 @@ #include "gstv4l2colorbalance.h" +#include "gstv4l2tuner.h" #ifdef HAVE_XVIDEO #include "gstv4l2xoverlay.h" #endif @@ -91,6 +92,7 @@ enum GST_IMPLEMENT_V4L2_PROBE_METHODS (GstV4l2SinkClass, gst_v4l2sink); GST_IMPLEMENT_V4L2_COLOR_BALANCE_METHODS (GstV4l2Sink, gst_v4l2sink); +GST_IMPLEMENT_V4L2_TUNER_METHODS (GstV4l2Sink, gst_v4l2sink); #ifdef HAVE_XVIDEO GST_IMPLEMENT_V4L2_XOVERLAY_METHODS (GstV4l2Sink, gst_v4l2sink); #endif @@ -105,10 +107,12 @@ gst_v4l2sink_iface_supported (GstImplementsInterface * iface, GType iface_type) g_assert (iface_type == GST_TYPE_X_OVERLAY || iface_type == GST_TYPE_NAVIGATION || iface_type == GST_TYPE_COLOR_BALANCE || - iface_type == GST_TYPE_VIDEO_ORIENTATION); + iface_type == GST_TYPE_VIDEO_ORIENTATION || + iface_type == GST_TYPE_TUNER); #else g_assert (iface_type == GST_TYPE_COLOR_BALANCE || - iface_type == GST_TYPE_VIDEO_ORIENTATION); + iface_type == GST_TYPE_VIDEO_ORIENTATION || + iface_type == GST_TYPE_TUNER); #endif if (v4l2object->video_fd == -1) @@ -151,6 +155,11 @@ gst_v4l2sink_init_interfaces (GType type) NULL, NULL, }; + static const GInterfaceInfo v4l2_tuner_info = { + (GInterfaceInitFunc) gst_v4l2sink_tuner_interface_init, + NULL, + NULL, + }; #ifdef HAVE_XVIDEO static const GInterfaceInfo v4l2_xoverlay_info = { (GInterfaceInitFunc) gst_v4l2sink_xoverlay_interface_init, @@ -181,6 +190,7 @@ gst_v4l2sink_init_interfaces (GType type) g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, &v4l2iface_info); + g_type_add_interface_static (type, GST_TYPE_TUNER, &v4l2_tuner_info); #ifdef HAVE_XVIDEO g_type_add_interface_static (type, GST_TYPE_X_OVERLAY, &v4l2_xoverlay_info); g_type_add_interface_static (type, @@ -226,6 +236,7 @@ gst_v4l2sink_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); GstV4l2SinkClass *gstv4l2sink_class = GST_V4L2SINK_CLASS (g_class); + GstPadTemplate *pad_template; gstv4l2sink_class->v4l2_class_devices = NULL; @@ -235,10 +246,11 @@ gst_v4l2sink_base_init (gpointer g_class) "Video (video4linux2) Sink", "Sink/Video", "Displays frames on a video4linux2 device", "Rob Clark ,"); - gst_element_class_add_pad_template - (gstelement_class, + pad_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - gst_v4l2_object_get_all_caps ())); + gst_v4l2_object_get_all_caps ()); + gst_element_class_add_pad_template (gstelement_class, pad_template); + gst_object_unref (pad_template); } static void diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index df11dd4..f8ae09c 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -95,14 +95,16 @@ gst_v4l2src_iface_supported (GstImplementsInterface * iface, GType iface_type) GstV4l2Object *v4l2object = GST_V4L2SRC (iface)->v4l2object; #ifdef HAVE_XVIDEO - g_assert (iface_type == GST_TYPE_TUNER || - iface_type == GST_TYPE_X_OVERLAY || - iface_type == GST_TYPE_COLOR_BALANCE || - iface_type == GST_TYPE_VIDEO_ORIENTATION); + if (!(iface_type == GST_TYPE_TUNER || + iface_type == GST_TYPE_X_OVERLAY || + iface_type == GST_TYPE_COLOR_BALANCE || + iface_type == GST_TYPE_VIDEO_ORIENTATION)) + return FALSE; #else - g_assert (iface_type == GST_TYPE_TUNER || - iface_type == GST_TYPE_COLOR_BALANCE || - iface_type == GST_TYPE_VIDEO_ORIENTATION); + if (!(iface_type == GST_TYPE_TUNER || + iface_type == GST_TYPE_COLOR_BALANCE || + iface_type == GST_TYPE_VIDEO_ORIENTATION)) + return FALSE; #endif if (v4l2object->video_fd == -1) @@ -221,6 +223,7 @@ gst_v4l2src_base_init (gpointer g_class) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); GstV4l2SrcClass *gstv4l2src_class = GST_V4L2SRC_CLASS (g_class); + GstPadTemplate *pad_template; gstv4l2src_class->v4l2_class_devices = NULL; @@ -232,10 +235,11 @@ gst_v4l2src_base_init (gpointer g_class) "Edgard Lima ," " Stefan Kost "); - gst_element_class_add_pad_template - (gstelement_class, + pad_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - gst_v4l2_object_get_all_caps ())); + gst_v4l2_object_get_all_caps ()); + gst_element_class_add_pad_template (gstelement_class, pad_template); + gst_object_unref (pad_template); } static void @@ -518,11 +522,12 @@ gst_v4l2src_negotiate (GstBaseSrc * basesrc) } } gst_caps_unref (thiscaps); - gst_caps_unref (peercaps); } else { /* no peer or peer have ANY caps, work with our own caps then */ caps = thiscaps; } + if (peercaps) + gst_caps_unref (peercaps); if (caps) { caps = gst_caps_make_writable (caps); gst_caps_truncate (caps); diff --git a/sys/v4l2/gstv4l2tuner.c b/sys/v4l2/gstv4l2tuner.c index c5f8442..a805396 100644 --- a/sys/v4l2/gstv4l2tuner.c +++ b/sys/v4l2/gstv4l2tuner.c @@ -237,7 +237,6 @@ gst_v4l2_tuner_set_norm (GstV4l2Object * v4l2object, GstTunerNorm * norm) GstTunerNorm * gst_v4l2_tuner_get_norm (GstV4l2Object * v4l2object) { - GList *item; v4l2_std_id norm; /* assert that we're opened and that we're using a known item */ @@ -245,6 +244,14 @@ gst_v4l2_tuner_get_norm (GstV4l2Object * v4l2object) gst_v4l2_get_norm (v4l2object, &norm); + return gst_v4l2_tuner_get_norm_by_std_id (v4l2object, norm); +} + +GstTunerNorm * +gst_v4l2_tuner_get_norm_by_std_id (GstV4l2Object * v4l2object, v4l2_std_id norm) +{ + GList *item; + for (item = v4l2object->norms; item != NULL; item = item->next) { if (norm & GST_V4L2_TUNER_NORM (item->data)->index) return (GstTunerNorm *) item->data; @@ -253,6 +260,20 @@ gst_v4l2_tuner_get_norm (GstV4l2Object * v4l2object) return NULL; } +v4l2_std_id +gst_v4l2_tuner_get_std_id_by_norm (GstV4l2Object * v4l2object, + GstTunerNorm * norm) +{ + GList *item; + + for (item = v4l2object->norms; item != NULL; item = item->next) { + if (norm == GST_TUNER_NORM (item->data)) + return GST_V4L2_TUNER_NORM (item->data)->index; + } + + return 0; +} + void gst_v4l2_tuner_set_frequency_and_notify (GstV4l2Object * v4l2object, GstTunerChannel * channel, gulong frequency) diff --git a/sys/v4l2/gstv4l2tuner.h b/sys/v4l2/gstv4l2tuner.h index bf9ff94..699ca87 100644 --- a/sys/v4l2/gstv4l2tuner.h +++ b/sys/v4l2/gstv4l2tuner.h @@ -94,6 +94,11 @@ void gst_v4l2_tuner_set_norm_and_notify (GstV4l2Object * v4l2o GstTunerNorm* gst_v4l2_tuner_get_norm (GstV4l2Object * v4l2object); gboolean gst_v4l2_tuner_set_norm (GstV4l2Object * v4l2object, GstTunerNorm * norm); +GstTunerNorm* gst_v4l2_tuner_get_norm_by_std_id (GstV4l2Object * v4l2object, + v4l2_std_id norm); +v4l2_std_id gst_v4l2_tuner_get_std_id_by_norm (GstV4l2Object * v4l2object, + GstTunerNorm * norm); + /* frequency */ void gst_v4l2_tuner_set_frequency_and_notify (GstV4l2Object * v4l2object, GstTunerChannel * channel, diff --git a/sys/v4l2/gstv4l2xoverlay.c b/sys/v4l2/gstv4l2xoverlay.c index 80f114d..60d0919 100644 --- a/sys/v4l2/gstv4l2xoverlay.c +++ b/sys/v4l2/gstv4l2xoverlay.c @@ -40,6 +40,7 @@ #include "v4l2_calls.h" #include "gst/gst-i18n-plugin.h" +#include struct _GstV4l2Xv { diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c index e9d3069..309bfb6 100644 --- a/sys/v4l2/v4l2_calls.c +++ b/sys/v4l2/v4l2_calls.c @@ -229,6 +229,9 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) standard.frameperiod.denominator, standard.frameperiod.numerator); v4l2norm->index = standard.id; + GST_DEBUG_OBJECT (v4l2object->element, "index=%08x, label=%s", + (unsigned int) v4l2norm->index, norm->label); + v4l2object->norms = g_list_prepend (v4l2object->norms, (gpointer) norm); } v4l2object->norms = g_list_reverse (v4l2object->norms); @@ -250,7 +253,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) control.id = n; if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) { - if (errno == EINVAL) { + if (errno == EINVAL || errno == ENOTTY || errno == EIO) { if (n < V4L2_CID_PRIVATE_BASE) { GST_DEBUG_OBJECT (e, "skipping control %08x", n); /* continue so that we also check private controls */ @@ -260,12 +263,9 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) break; } } else { - GST_ELEMENT_ERROR (e, RESOURCE, SETTINGS, - (_("Failed getting controls attributes on device '%s'."), - v4l2object->videodev), - ("Failed querying control %d on device '%s'. (%d - %s)", - n, v4l2object->videodev, errno, strerror (errno))); - return FALSE; + GST_WARNING_OBJECT (e, "Failed querying control %d on device '%s'. " + "(%d - %s)", n, v4l2object->videodev, errno, strerror (errno)); + continue; } } if (control.flags & V4L2_CTRL_FLAG_DISABLED) { diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c index fb6c374..bfa5589 100644 --- a/sys/v4l2/v4l2src_calls.c +++ b/sys/v4l2/v4l2src_calls.c @@ -202,11 +202,6 @@ too_many_trials: } } -/* Note about fraction simplification - * n1/d1 == n2/d2 is also written as n1 == ( n2 * d1 ) / d2 - */ -#define fractions_are_equal(n1,d1,n2,d2) ((n1) == gst_util_uint64_scale_int((n2), (d1), (d2))) - /****************************************************** * gst_v4l2src_set_capture(): * set capture parameters @@ -241,12 +236,11 @@ gst_v4l2src_set_capture (GstV4l2Src * v4l2src, guint32 pixelformat, goto done; } - /* Note: V4L2 provides the frame interval, we have the frame rate */ - if (fractions_are_equal (stream.parm.capture.timeperframe.numerator, - stream.parm.capture.timeperframe.denominator, fps_d, fps_n)) { - GST_DEBUG_OBJECT (v4l2src, "Desired framerate already set"); - goto already_set; - } + /* We used to skip frame rate setup if the camera was already setup + with the requested frame rate. This breaks some cameras though, + causing them to not output data (several models of Thinkpad cameras + have this problem at least). + So, don't skip. */ /* We want to change the frame rate, so check whether we can. Some cheap USB * cameras don't have the capability */ @@ -269,8 +263,6 @@ gst_v4l2src_set_capture (GstV4l2Src * v4l2src, guint32 pixelformat, goto done; } -already_set: - v4l2src->fps_n = fps_n; v4l2src->fps_d = fps_d; diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in index 5f0e75b..efdf5e7 100644 --- a/sys/waveform/Makefile.in +++ b/sys/waveform/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ am_libgstwaveformsink_la_OBJECTS = \ libgstwaveformsink_la-gstwaveformsink.lo \ libgstwaveformsink_la-gstwaveformplugin.lo libgstwaveformsink_la_OBJECTS = $(am_libgstwaveformsink_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstwaveformsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstwaveformsink_la_SOURCES) DIST_SOURCES = $(libgstwaveformsink_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -563,7 +563,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstwaveformsink.la: $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_DEPENDENCIES) +libgstwaveformsink.la: $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_DEPENDENCIES) $(EXTRA_libgstwaveformsink_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstwaveformsink_la_LINK) -rpath $(plugindir) $(libgstwaveformsink_la_OBJECTS) $(libgstwaveformsink_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -578,42 +578,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstwaveformsink_la-gstwaveformsink.lo: gstwaveformsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -MT libgstwaveformsink_la-gstwaveformsink.lo -MD -MP -MF $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Tpo -c -o libgstwaveformsink_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Tpo $(DEPDIR)/libgstwaveformsink_la-gstwaveformsink.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwaveformsink.c' object='libgstwaveformsink_la-gstwaveformsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwaveformsink.c' object='libgstwaveformsink_la-gstwaveformsink.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformsink.lo `test -f 'gstwaveformsink.c' || echo '$(srcdir)/'`gstwaveformsink.c libgstwaveformsink_la-gstwaveformplugin.lo: gstwaveformplugin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -MT libgstwaveformsink_la-gstwaveformplugin.lo -MD -MP -MF $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Tpo -c -o libgstwaveformsink_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Tpo $(DEPDIR)/libgstwaveformsink_la-gstwaveformplugin.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstwaveformplugin.c' object='libgstwaveformsink_la-gstwaveformplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstwaveformplugin.c' object='libgstwaveformsink_la-gstwaveformplugin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstwaveformsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstwaveformsink_la_CFLAGS) $(CFLAGS) -c -o libgstwaveformsink_la-gstwaveformplugin.lo `test -f 'gstwaveformplugin.c' || echo '$(srcdir)/'`gstwaveformplugin.c mostlyclean-libtool: -rm -f *.lo @@ -720,10 +715,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/waveform/gstwaveformsink.c b/sys/waveform/gstwaveformsink.c index 36542c1..0c59829 100644 --- a/sys/waveform/gstwaveformsink.c +++ b/sys/waveform/gstwaveformsink.c @@ -80,8 +80,8 @@ GstCaps *gst_waveform_sink_create_caps (gint rate, gint channels, gint bits_per_sample); WAVEHDR *bufferpool_get_buffer (GstWaveFormSink * wfsink, gpointer data, guint length); -void CALLBACK waveOutProc (HWAVEOUT hwo, UINT uMsg, unsigned long dwInstance, - DWORD dwParam1, DWORD dwParam2); +void CALLBACK waveOutProc (HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance, + DWORD_PTR dwParam1, DWORD_PTR dwParam2); static GstStaticPadTemplate waveformsink_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", @@ -110,8 +110,8 @@ gst_waveform_sink_base_init (gpointer g_class) "Sink/Audio", "Output to a sound card via WaveForm API", "Sebastien Moutte "); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&waveformsink_sink_factory)); + gst_element_class_add_static_pad_template (element_class, + &waveformsink_sink_factory); } static void @@ -378,7 +378,7 @@ gst_waveform_sink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) /* open the default audio device with the given caps */ mmresult = waveOutOpen (&wfsink->hwaveout, WAVE_MAPPER, - &wfx, (DWORD) waveOutProc, (DWORD) wfsink, CALLBACK_FUNCTION); + &wfx, (DWORD_PTR) waveOutProc, (DWORD_PTR) wfsink, CALLBACK_FUNCTION); if (mmresult != MMSYSERR_NOERROR) { waveOutGetErrorText (mmresult, wfsink->error_string, ERROR_LENGTH - 1); GST_ELEMENT_ERROR (wfsink, RESOURCE, OPEN_WRITE, @@ -573,7 +573,7 @@ gst_waveform_sink_create_caps (gint rate, gint channels, gint bits_per_sample) void CALLBACK waveOutProc (HWAVEOUT hwo, - UINT uMsg, unsigned long dwInstance, DWORD dwParam1, DWORD dwParam2) + UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2) { GstWaveFormSink *wfsink = (GstWaveFormSink *) dwInstance; diff --git a/sys/waveform/gstwaveformsink.h b/sys/waveform/gstwaveformsink.h index 7922779..b23aea1 100644 --- a/sys/waveform/gstwaveformsink.h +++ b/sys/waveform/gstwaveformsink.h @@ -28,10 +28,21 @@ #include #include +#ifndef WAVE_FORMAT_96M08 #define WAVE_FORMAT_96M08 0x00001000 /* 96 kHz, Mono, 8-bit */ +#endif + +#ifndef WAVE_FORMAT_96S08 #define WAVE_FORMAT_96S08 0x00002000 /* 96 kHz, Stereo, 8-bit */ +#endif + +#ifndef WAVE_FORMAT_96M16 #define WAVE_FORMAT_96M16 0x00004000 /* 96 kHz, Mono, 16-bit */ +#endif + +#ifndef WAVE_FORMAT_96S16 #define WAVE_FORMAT_96S16 0x00008000 /* 96 kHz, Stereo, 16-bit */ +#endif #define ERROR_LENGTH MAXERRORLENGTH+50 #define BUFFER_COUNT 20 diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in index 1fac9ca..129f9a8 100644 --- a/sys/ximage/Makefile.in +++ b/sys/ximage/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -103,6 +102,12 @@ am__nobase_list = $(am__nobase_strip_setup); \ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -113,8 +118,8 @@ libgstximagesrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstximagesrc_la_OBJECTS = libgstximagesrc_la-gstximagesrc.lo \ libgstximagesrc_la-ximageutil.lo libgstximagesrc_la_OBJECTS = $(am_libgstximagesrc_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libgstximagesrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ @@ -130,21 +135,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libgstximagesrc_la_SOURCES) DIST_SOURCES = $(libgstximagesrc_la_SOURCES) @@ -227,7 +232,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -302,7 +310,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -326,6 +333,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -360,18 +368,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -424,6 +424,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -458,7 +459,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -560,7 +560,7 @@ clean-pluginLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libgstximagesrc.la: $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_DEPENDENCIES) +libgstximagesrc.la: $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_DEPENDENCIES) $(EXTRA_libgstximagesrc_la_DEPENDENCIES) $(AM_V_CCLD)$(libgstximagesrc_la_LINK) -rpath $(plugindir) $(libgstximagesrc_la_OBJECTS) $(libgstximagesrc_la_LIBADD) $(LIBS) mostlyclean-compile: @@ -575,42 +575,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libgstximagesrc_la-gstximagesrc.lo: gstximagesrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-gstximagesrc.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Tpo -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Tpo $(DEPDIR)/libgstximagesrc_la-gstximagesrc.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstximagesrc.c' object='libgstximagesrc_la-gstximagesrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstximagesrc.c' object='libgstximagesrc_la-gstximagesrc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-gstximagesrc.lo `test -f 'gstximagesrc.c' || echo '$(srcdir)/'`gstximagesrc.c libgstximagesrc_la-ximageutil.lo: ximageutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -MT libgstximagesrc_la-ximageutil.lo -MD -MP -MF $(DEPDIR)/libgstximagesrc_la-ximageutil.Tpo -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesrc_la-ximageutil.Tpo $(DEPDIR)/libgstximagesrc_la-ximageutil.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ximageutil.c' object='libgstximagesrc_la-ximageutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ximageutil.c' object='libgstximagesrc_la-ximageutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesrc_la_CFLAGS) $(CFLAGS) -c -o libgstximagesrc_la-ximageutil.lo `test -f 'ximageutil.c' || echo '$(srcdir)/'`ximageutil.c mostlyclean-libtool: -rm -f *.lo @@ -717,10 +712,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index e705ccb..36c0b44 100644 --- a/sys/ximage/gstximagesrc.c +++ b/sys/ximage/gstximagesrc.c @@ -49,6 +49,8 @@ #include #include +#include "gst/glib-compat-private.h" + GST_DEBUG_CATEGORY_STATIC (gst_debug_ximage_src); #define GST_CAT_DEFAULT gst_debug_ximage_src @@ -71,6 +73,8 @@ enum PROP_ENDX, PROP_ENDY, PROP_REMOTE, + PROP_XID, + PROP_XNAME, }; GST_BOILERPLATE (GstXImageSrc, gst_ximage_src, GstPushSrc, GST_TYPE_PUSH_SRC); @@ -99,11 +103,41 @@ gst_ximage_src_return_buf (GstXImageSrc * ximagesrc, /* need to increment the refcount again to recycle */ gst_buffer_ref (GST_BUFFER (ximage)); g_mutex_lock (ximagesrc->pool_lock); + GST_BUFFER_FLAGS (GST_BUFFER (ximage)) = 0; /* clear out any flags from the previous use */ ximagesrc->buffer_pool = g_slist_prepend (ximagesrc->buffer_pool, ximage); g_mutex_unlock (ximagesrc->pool_lock); } } +static Window +gst_ximage_src_find_window (GstXImageSrc * src, Window root, const char *name) +{ + Window *children; + Window window = 0, root_return, parent_return; + unsigned int nchildren; + char *tmpname; + int n, status; + + status = XFetchName (src->xcontext->disp, root, &tmpname); + if (status && !strcmp (name, tmpname)) + return root; + + status = + XQueryTree (src->xcontext->disp, root, &root_return, &parent_return, + &children, &nchildren); + if (!status || !children) + return (Window) 0; + + for (n = 0; n < nchildren; ++n) { + window = gst_ximage_src_find_window (src, children[n], name); + if (window != 0) + break; + } + + XFree (children); + return window; +} + static gboolean gst_ximage_src_open_display (GstXImageSrc * s, const gchar * name) { @@ -124,8 +158,51 @@ gst_ximage_src_open_display (GstXImageSrc * s, const gchar * name) s->width = s->xcontext->width; s->height = s->xcontext->height; - /* Always capture root window, for now */ s->xwindow = s->xcontext->root; + if (s->xid != 0 || s->xname) { + int status; + XWindowAttributes attrs; + Window window; + + if (s->xid != 0) { + status = XGetWindowAttributes (s->xcontext->disp, s->xid, &attrs); + if (status) { + GST_DEBUG_OBJECT (s, "Found window XID %" G_GUINT64_FORMAT, s->xid); + s->xwindow = s->xid; + goto window_found; + } else { + GST_WARNING_OBJECT (s, "Failed to get window %" G_GUINT64_FORMAT + " attributes", s->xid); + } + } + + if (s->xname) { + GST_DEBUG_OBJECT (s, "Looking for window %s", s->xname); + window = gst_ximage_src_find_window (s, s->xcontext->root, s->xname); + if (window != 0) { + GST_DEBUG_OBJECT (s, "Found window named %s, ", s->xname); + status = XGetWindowAttributes (s->xcontext->disp, window, &attrs); + if (status) { + s->xwindow = window; + goto window_found; + } else { + GST_WARNING_OBJECT (s, "Failed to get window attributes for " + "window named %s", s->xname); + } + } + } + + GST_INFO_OBJECT (s, "Using root window"); + goto use_root_window; + + window_found: + g_assert (s->xwindow != 0); + s->width = attrs.width; + s->height = attrs.height; + GST_INFO_OBJECT (s, "Using default window size of %dx%d", + s->width, s->height); + } +use_root_window: #ifdef HAVE_XFIXES /* check if xfixes supported */ @@ -835,6 +912,21 @@ gst_ximage_src_set_property (GObject * object, guint prop_id, case PROP_REMOTE: src->remote = g_value_get_boolean (value); break; + case PROP_XID: + if (src->xcontext != NULL) { + g_warning ("ximagesrc window ID must be set before opening display"); + break; + } + src->xid = g_value_get_uint64 (value); + break; + case PROP_XNAME: + if (src->xcontext != NULL) { + g_warning ("ximagesrc window name must be set before opening display"); + break; + } + g_free (src->xname); + src->xname = g_strdup (g_value_get_string (value)); + break; default: break; } @@ -878,6 +970,12 @@ gst_ximage_src_get_property (GObject * object, guint prop_id, GValue * value, case PROP_REMOTE: g_value_set_boolean (value, src->remote); break; + case PROP_XID: + g_value_set_uint64 (value, src->xid); + break; + case PROP_XNAME: + g_value_set_string (value, src->xname); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -910,7 +1008,7 @@ gst_ximage_src_base_init (gpointer g_class) "Lutz Mueller , " "Jan Schmidt , " "Zaheer Merali "); - gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&t)); + gst_element_class_add_static_pad_template (ec, &t); } static void @@ -930,6 +1028,7 @@ gst_ximage_src_finalize (GObject * object) if (src->xcontext) ximageutil_xcontext_clear (src->xcontext); + g_free (src->xname); g_mutex_free (src->pool_lock); g_mutex_free (src->x_lock); @@ -954,9 +1053,16 @@ gst_ximage_src_get_caps (GstBaseSrc * bs) (s)->srcpad)); xcontext = s->xcontext; - - width = xcontext->width; - height = xcontext->height; + width = s->xcontext->width; + height = s->xcontext->height; + if (s->xwindow != 0) { + XWindowAttributes attrs; + int status = XGetWindowAttributes (s->xcontext->disp, s->xwindow, &attrs); + if (status) { + width = attrs.width; + height = attrs.height; + } + } /* property comments say 0 means right/bottom, means we can't capture the top left pixel alone */ @@ -1137,6 +1243,30 @@ gst_ximage_src_class_init (GstXImageSrcClass * klass) "Whether the display is remote", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstXImageSrc:xid + * + * The XID of the window to capture. 0 for the root window (default). + * + * Since: 0.10.31 + **/ + g_object_class_install_property (gc, PROP_XID, + g_param_spec_uint64 ("xid", "Window XID", + "Window XID to capture from", 0, G_MAXUINT64, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstXImageSrc:xname + * + * The name of the window to capture, if any. + * + * Since: 0.10.31 + **/ + g_object_class_install_property (gc, PROP_XNAME, + g_param_spec_string ("xname", "Window name", + "Window name to capture from", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + parent_class = g_type_class_peek_parent (klass); push_class->create = gst_ximage_src_create; diff --git a/sys/ximage/gstximagesrc.h b/sys/ximage/gstximagesrc.h index f436df6..e58513c 100644 --- a/sys/ximage/gstximagesrc.h +++ b/sys/ximage/gstximagesrc.h @@ -56,6 +56,10 @@ struct _GstXImageSrc gchar *display_name; guint screen_num; + /* Window selection */ + guint64 xid; + gchar *xname; + /* Desired output framerate */ gint fps_n; gint fps_d; diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c index 0ef4b06..2fac09a 100644 --- a/sys/ximage/ximageutil.c +++ b/sys/ximage/ximageutil.c @@ -395,7 +395,13 @@ gst_ximageutil_ximage_new (GstXContext * xcontext, xcontext->visual, xcontext->depth, ZPixmap, NULL, &ximage->SHMInfo, ximage->width, ximage->height); if (!ximage->ximage) { - goto beach; + GST_WARNING_OBJECT (parent, + "could not XShmCreateImage a %dx%d image", + ximage->width, ximage->height); + + /* Retry without XShm */ + xcontext->use_xshm = FALSE; + goto no_xshm; } /* we have to use the returned bytes_per_line for our shm size */ @@ -421,6 +427,7 @@ gst_ximageutil_ximage_new (GstXContext * xcontext, XSync (xcontext->disp, FALSE); } else + no_xshm: #endif /* HAVE_XSHM */ { ximage->ximage = XCreateImage (xcontext->disp, diff --git a/tests/Makefile.in b/tests/Makefile.in index 83edf6c..f25bc7c 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -64,8 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -79,11 +78,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -202,7 +201,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -277,7 +279,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -301,6 +302,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -335,18 +337,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -399,6 +393,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -433,7 +428,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -710,10 +704,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 046d0f3..27dde40 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -133,6 +133,7 @@ check_PROGRAMS = \ elements/interleave \ elements/level \ elements/matroskamux \ + elements/matroskaparse \ elements/mpegaudioparse \ elements/multifile \ elements/qtmux \ @@ -227,15 +228,18 @@ elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_interleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) $(LDADD) elements_imagefreeze_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) -elements_imagefreeze_LDADD = $(GST_BASE_LIBS) $(LDADD) -lgstvideo-$(GST_MAJORMINOR) +elements_imagefreeze_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(LDADD) elements_jpegenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) -elements_jpegenc_LDADD = $(GST_BASE_LIBS) $(LDADD) -lgstapp-0.10 +elements_jpegenc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-0.10 $(GST_BASE_LIBS) $(LDADD) elements_level_LDADD = $(LDADD) $(LIBM) elements_matroskamux_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBM) +elements_multifile_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) +elements_multifile_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(LDADD) $(LIBM) + elements_qtmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) elements_qtmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in index d028947..66e9b6e 100644 --- a/tests/check/Makefile.in +++ b/tests/check/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -56,6 +56,7 @@ check_PROGRAMS = generic/index$(EXEEXT) generic/states$(EXEEXT) \ elements/icydemux$(EXEEXT) elements/id3demux$(EXEEXT) \ elements/imagefreeze$(EXEEXT) elements/interleave$(EXEEXT) \ elements/level$(EXEEXT) elements/matroskamux$(EXEEXT) \ + elements/matroskaparse$(EXEEXT) \ elements/mpegaudioparse$(EXEEXT) elements/multifile$(EXEEXT) \ elements/qtmux$(EXEEXT) elements/rganalysis$(EXEEXT) \ elements/rglimiter$(EXEEXT) elements/rgvolume$(EXEEXT) \ @@ -101,8 +102,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -120,8 +120,8 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) libparser_la_LIBADD = am_libparser_la_OBJECTS = libparser_la-parser.lo libparser_la_OBJECTS = $(am_libparser_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libparser_la_CFLAGS) \ @@ -314,7 +314,7 @@ elements_imagefreeze_SOURCES = elements/imagefreeze.c elements_imagefreeze_OBJECTS = \ elements_imagefreeze-imagefreeze.$(OBJEXT) elements_imagefreeze_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_imagefreeze_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_imagefreeze_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -331,7 +331,7 @@ elements_interleave_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ elements_jpegenc_SOURCES = elements/jpegenc.c elements_jpegenc_OBJECTS = elements_jpegenc-jpegenc.$(OBJEXT) elements_jpegenc_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_jpegenc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_jpegenc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ @@ -344,14 +344,23 @@ elements_matroskamux_SOURCES = elements/matroskamux.c elements_matroskamux_OBJECTS = matroskamux.$(OBJEXT) elements_matroskamux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) +elements_matroskaparse_SOURCES = elements/matroskaparse.c +elements_matroskaparse_OBJECTS = matroskaparse.$(OBJEXT) +elements_matroskaparse_LDADD = $(LDADD) +elements_matroskaparse_DEPENDENCIES = $(am__DEPENDENCIES_1) elements_mpegaudioparse_SOURCES = elements/mpegaudioparse.c elements_mpegaudioparse_OBJECTS = mpegaudioparse.$(OBJEXT) elements_mpegaudioparse_DEPENDENCIES = libparser.la \ $(am__DEPENDENCIES_2) elements_multifile_SOURCES = elements/multifile.c -elements_multifile_OBJECTS = multifile.$(OBJEXT) -elements_multifile_LDADD = $(LDADD) -elements_multifile_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_multifile_OBJECTS = elements_multifile-multifile.$(OBJEXT) +elements_multifile_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ + $(am__DEPENDENCIES_1) +elements_multifile_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_multifile_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ elements_qtmux_SOURCES = elements/qtmux.c elements_qtmux_OBJECTS = elements_qtmux-qtmux.$(OBJEXT) elements_qtmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -530,21 +539,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/ac3parse.c elements/alphacolor.c elements/amrparse.c \ @@ -562,11 +571,11 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/gdkpixbufsink.c elements/icydemux.c \ elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \ elements/interleave.c elements/jpegenc.c elements/level.c \ - elements/matroskamux.c elements/mpegaudioparse.c \ - elements/multifile.c elements/qtmux.c elements/rganalysis.c \ - elements/rglimiter.c elements/rgvolume.c \ - elements/rtp-payloading.c elements/rtpbin.c \ - $(elements_rtpbin_buffer_list_SOURCES) \ + elements/matroskamux.c elements/matroskaparse.c \ + elements/mpegaudioparse.c elements/multifile.c \ + elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ + elements/rgvolume.c elements/rtp-payloading.c \ + elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ elements/rtpjitterbuffer.c elements/shapewipe.c \ elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ elements/udpsink.c elements/videocrop.c elements/videofilter.c \ @@ -594,11 +603,11 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/gdkpixbufsink.c elements/icydemux.c \ elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \ elements/interleave.c elements/jpegenc.c elements/level.c \ - elements/matroskamux.c elements/mpegaudioparse.c \ - elements/multifile.c elements/qtmux.c elements/rganalysis.c \ - elements/rglimiter.c elements/rgvolume.c \ - elements/rtp-payloading.c elements/rtpbin.c \ - $(elements_rtpbin_buffer_list_SOURCES) \ + elements/matroskamux.c elements/matroskaparse.c \ + elements/mpegaudioparse.c elements/multifile.c \ + elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ + elements/rgvolume.c elements/rtp-payloading.c \ + elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ elements/rtpjitterbuffer.c elements/shapewipe.c \ elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ elements/udpsink.c elements/videocrop.c elements/videofilter.c \ @@ -687,7 +696,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -762,7 +774,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -786,6 +797,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -820,18 +832,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -884,6 +888,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -918,7 +923,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -1054,11 +1058,13 @@ elements_deinterleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMIN elements_interleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_interleave_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) $(LDADD) elements_imagefreeze_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) -elements_imagefreeze_LDADD = $(GST_BASE_LIBS) $(LDADD) -lgstvideo-$(GST_MAJORMINOR) +elements_imagefreeze_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_BASE_LIBS) $(LDADD) elements_jpegenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) -elements_jpegenc_LDADD = $(GST_BASE_LIBS) $(LDADD) -lgstapp-0.10 +elements_jpegenc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstapp-0.10 $(GST_BASE_LIBS) $(LDADD) elements_level_LDADD = $(LDADD) $(LIBM) elements_matroskamux_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBM) +elements_multifile_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) +elements_multifile_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(LDADD) $(LIBM) elements_qtmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) elements_qtmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-@GST_MAJORMINOR@ \ $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) @@ -1133,6 +1139,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/check.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -1151,7 +1158,7 @@ clean-noinstLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libparser.la: $(libparser_la_OBJECTS) $(libparser_la_DEPENDENCIES) +libparser.la: $(libparser_la_OBJECTS) $(libparser_la_DEPENDENCIES) $(EXTRA_libparser_la_DEPENDENCIES) $(AM_V_CCLD)$(libparser_la_LINK) $(libparser_la_OBJECTS) $(libparser_la_LIBADD) $(LIBS) clean-checkPROGRAMS: @@ -1174,223 +1181,226 @@ clean-noinstPROGRAMS: elements/$(am__dirstamp): @$(MKDIR_P) elements @: > elements/$(am__dirstamp) -elements/aacparse$(EXEEXT): $(elements_aacparse_OBJECTS) $(elements_aacparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/aacparse$(EXEEXT): $(elements_aacparse_OBJECTS) $(elements_aacparse_DEPENDENCIES) $(EXTRA_elements_aacparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/aacparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_aacparse_OBJECTS) $(elements_aacparse_LDADD) $(LIBS) -elements/ac3parse$(EXEEXT): $(elements_ac3parse_OBJECTS) $(elements_ac3parse_DEPENDENCIES) elements/$(am__dirstamp) +elements/ac3parse$(EXEEXT): $(elements_ac3parse_OBJECTS) $(elements_ac3parse_DEPENDENCIES) $(EXTRA_elements_ac3parse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/ac3parse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_ac3parse_OBJECTS) $(elements_ac3parse_LDADD) $(LIBS) -elements/alphacolor$(EXEEXT): $(elements_alphacolor_OBJECTS) $(elements_alphacolor_DEPENDENCIES) elements/$(am__dirstamp) +elements/alphacolor$(EXEEXT): $(elements_alphacolor_OBJECTS) $(elements_alphacolor_DEPENDENCIES) $(EXTRA_elements_alphacolor_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/alphacolor$(EXEEXT) $(AM_V_CCLD)$(elements_alphacolor_LINK) $(elements_alphacolor_OBJECTS) $(elements_alphacolor_LDADD) $(LIBS) -elements/amrparse$(EXEEXT): $(elements_amrparse_OBJECTS) $(elements_amrparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/amrparse$(EXEEXT): $(elements_amrparse_OBJECTS) $(elements_amrparse_DEPENDENCIES) $(EXTRA_elements_amrparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/amrparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_amrparse_OBJECTS) $(elements_amrparse_LDADD) $(LIBS) -elements/apev2mux$(EXEEXT): $(elements_apev2mux_OBJECTS) $(elements_apev2mux_DEPENDENCIES) elements/$(am__dirstamp) +elements/apev2mux$(EXEEXT): $(elements_apev2mux_OBJECTS) $(elements_apev2mux_DEPENDENCIES) $(EXTRA_elements_apev2mux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/apev2mux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_apev2mux_OBJECTS) $(elements_apev2mux_LDADD) $(LIBS) -elements/aspectratiocrop$(EXEEXT): $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_DEPENDENCIES) elements/$(am__dirstamp) +elements/aspectratiocrop$(EXEEXT): $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_DEPENDENCIES) $(EXTRA_elements_aspectratiocrop_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/aspectratiocrop$(EXEEXT) $(AM_V_CCLD)$(elements_aspectratiocrop_LINK) $(elements_aspectratiocrop_OBJECTS) $(elements_aspectratiocrop_LDADD) $(LIBS) -elements/audioamplify$(EXEEXT): $(elements_audioamplify_OBJECTS) $(elements_audioamplify_DEPENDENCIES) elements/$(am__dirstamp) +elements/audioamplify$(EXEEXT): $(elements_audioamplify_OBJECTS) $(elements_audioamplify_DEPENDENCIES) $(EXTRA_elements_audioamplify_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioamplify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audioamplify_OBJECTS) $(elements_audioamplify_LDADD) $(LIBS) -elements/audiochebband$(EXEEXT): $(elements_audiochebband_OBJECTS) $(elements_audiochebband_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiochebband$(EXEEXT): $(elements_audiochebband_OBJECTS) $(elements_audiochebband_DEPENDENCIES) $(EXTRA_elements_audiochebband_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiochebband$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiochebband_OBJECTS) $(elements_audiochebband_LDADD) $(LIBS) -elements/audiocheblimit$(EXEEXT): $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiocheblimit$(EXEEXT): $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_DEPENDENCIES) $(EXTRA_elements_audiocheblimit_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiocheblimit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiocheblimit_OBJECTS) $(elements_audiocheblimit_LDADD) $(LIBS) -elements/audiodynamic$(EXEEXT): $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiodynamic$(EXEEXT): $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_DEPENDENCIES) $(EXTRA_elements_audiodynamic_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiodynamic$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiodynamic_OBJECTS) $(elements_audiodynamic_LDADD) $(LIBS) -elements/audioecho$(EXEEXT): $(elements_audioecho_OBJECTS) $(elements_audioecho_DEPENDENCIES) elements/$(am__dirstamp) +elements/audioecho$(EXEEXT): $(elements_audioecho_OBJECTS) $(elements_audioecho_DEPENDENCIES) $(EXTRA_elements_audioecho_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioecho$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audioecho_OBJECTS) $(elements_audioecho_LDADD) $(LIBS) -elements/audiofirfilter$(EXEEXT): $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiofirfilter$(EXEEXT): $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_DEPENDENCIES) $(EXTRA_elements_audiofirfilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiofirfilter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiofirfilter_OBJECTS) $(elements_audiofirfilter_LDADD) $(LIBS) -elements/audioiirfilter$(EXEEXT): $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_DEPENDENCIES) elements/$(am__dirstamp) +elements/audioiirfilter$(EXEEXT): $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_DEPENDENCIES) $(EXTRA_elements_audioiirfilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioiirfilter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audioiirfilter_OBJECTS) $(elements_audioiirfilter_LDADD) $(LIBS) -elements/audioinvert$(EXEEXT): $(elements_audioinvert_OBJECTS) $(elements_audioinvert_DEPENDENCIES) elements/$(am__dirstamp) +elements/audioinvert$(EXEEXT): $(elements_audioinvert_OBJECTS) $(elements_audioinvert_DEPENDENCIES) $(EXTRA_elements_audioinvert_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audioinvert$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audioinvert_OBJECTS) $(elements_audioinvert_LDADD) $(LIBS) -elements/audiopanorama$(EXEEXT): $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiopanorama$(EXEEXT): $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_DEPENDENCIES) $(EXTRA_elements_audiopanorama_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiopanorama$(EXEEXT) $(AM_V_CCLD)$(elements_audiopanorama_LINK) $(elements_audiopanorama_OBJECTS) $(elements_audiopanorama_LDADD) $(LIBS) -elements/audiowsincband$(EXEEXT): $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiowsincband$(EXEEXT): $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_DEPENDENCIES) $(EXTRA_elements_audiowsincband_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiowsincband$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiowsincband_OBJECTS) $(elements_audiowsincband_LDADD) $(LIBS) -elements/audiowsinclimit$(EXEEXT): $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_DEPENDENCIES) elements/$(am__dirstamp) +elements/audiowsinclimit$(EXEEXT): $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_DEPENDENCIES) $(EXTRA_elements_audiowsinclimit_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiowsinclimit$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_LDADD) $(LIBS) -elements/autodetect$(EXEEXT): $(elements_autodetect_OBJECTS) $(elements_autodetect_DEPENDENCIES) elements/$(am__dirstamp) +elements/autodetect$(EXEEXT): $(elements_autodetect_OBJECTS) $(elements_autodetect_DEPENDENCIES) $(EXTRA_elements_autodetect_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/autodetect$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_autodetect_OBJECTS) $(elements_autodetect_LDADD) $(LIBS) -elements/avimux$(EXEEXT): $(elements_avimux_OBJECTS) $(elements_avimux_DEPENDENCIES) elements/$(am__dirstamp) +elements/avimux$(EXEEXT): $(elements_avimux_OBJECTS) $(elements_avimux_DEPENDENCIES) $(EXTRA_elements_avimux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/avimux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_avimux_OBJECTS) $(elements_avimux_LDADD) $(LIBS) -elements/avisubtitle$(EXEEXT): $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_DEPENDENCIES) elements/$(am__dirstamp) +elements/avisubtitle$(EXEEXT): $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_DEPENDENCIES) $(EXTRA_elements_avisubtitle_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/avisubtitle$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_avisubtitle_OBJECTS) $(elements_avisubtitle_LDADD) $(LIBS) -elements/capssetter$(EXEEXT): $(elements_capssetter_OBJECTS) $(elements_capssetter_DEPENDENCIES) elements/$(am__dirstamp) +elements/capssetter$(EXEEXT): $(elements_capssetter_OBJECTS) $(elements_capssetter_DEPENDENCIES) $(EXTRA_elements_capssetter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/capssetter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_capssetter_OBJECTS) $(elements_capssetter_LDADD) $(LIBS) -elements/cmmldec$(EXEEXT): $(elements_cmmldec_OBJECTS) $(elements_cmmldec_DEPENDENCIES) elements/$(am__dirstamp) +elements/cmmldec$(EXEEXT): $(elements_cmmldec_OBJECTS) $(elements_cmmldec_DEPENDENCIES) $(EXTRA_elements_cmmldec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/cmmldec$(EXEEXT) $(AM_V_CCLD)$(elements_cmmldec_LINK) $(elements_cmmldec_OBJECTS) $(elements_cmmldec_LDADD) $(LIBS) -elements/cmmlenc$(EXEEXT): $(elements_cmmlenc_OBJECTS) $(elements_cmmlenc_DEPENDENCIES) elements/$(am__dirstamp) +elements/cmmlenc$(EXEEXT): $(elements_cmmlenc_OBJECTS) $(elements_cmmlenc_DEPENDENCIES) $(EXTRA_elements_cmmlenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/cmmlenc$(EXEEXT) $(AM_V_CCLD)$(elements_cmmlenc_LINK) $(elements_cmmlenc_OBJECTS) $(elements_cmmlenc_LDADD) $(LIBS) -elements/deinterlace$(EXEEXT): $(elements_deinterlace_OBJECTS) $(elements_deinterlace_DEPENDENCIES) elements/$(am__dirstamp) +elements/deinterlace$(EXEEXT): $(elements_deinterlace_OBJECTS) $(elements_deinterlace_DEPENDENCIES) $(EXTRA_elements_deinterlace_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/deinterlace$(EXEEXT) $(AM_V_CCLD)$(elements_deinterlace_LINK) $(elements_deinterlace_OBJECTS) $(elements_deinterlace_LDADD) $(LIBS) -elements/deinterleave$(EXEEXT): $(elements_deinterleave_OBJECTS) $(elements_deinterleave_DEPENDENCIES) elements/$(am__dirstamp) +elements/deinterleave$(EXEEXT): $(elements_deinterleave_OBJECTS) $(elements_deinterleave_DEPENDENCIES) $(EXTRA_elements_deinterleave_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/deinterleave$(EXEEXT) $(AM_V_CCLD)$(elements_deinterleave_LINK) $(elements_deinterleave_OBJECTS) $(elements_deinterleave_LDADD) $(LIBS) -elements/equalizer$(EXEEXT): $(elements_equalizer_OBJECTS) $(elements_equalizer_DEPENDENCIES) elements/$(am__dirstamp) +elements/equalizer$(EXEEXT): $(elements_equalizer_OBJECTS) $(elements_equalizer_DEPENDENCIES) $(EXTRA_elements_equalizer_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/equalizer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_equalizer_OBJECTS) $(elements_equalizer_LDADD) $(LIBS) -elements/flacparse$(EXEEXT): $(elements_flacparse_OBJECTS) $(elements_flacparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/flacparse$(EXEEXT): $(elements_flacparse_OBJECTS) $(elements_flacparse_DEPENDENCIES) $(EXTRA_elements_flacparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flacparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flacparse_OBJECTS) $(elements_flacparse_LDADD) $(LIBS) -elements/flvdemux$(EXEEXT): $(elements_flvdemux_OBJECTS) $(elements_flvdemux_DEPENDENCIES) elements/$(am__dirstamp) +elements/flvdemux$(EXEEXT): $(elements_flvdemux_OBJECTS) $(elements_flvdemux_DEPENDENCIES) $(EXTRA_elements_flvdemux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flvdemux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flvdemux_OBJECTS) $(elements_flvdemux_LDADD) $(LIBS) -elements/flvmux$(EXEEXT): $(elements_flvmux_OBJECTS) $(elements_flvmux_DEPENDENCIES) elements/$(am__dirstamp) +elements/flvmux$(EXEEXT): $(elements_flvmux_OBJECTS) $(elements_flvmux_DEPENDENCIES) $(EXTRA_elements_flvmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/flvmux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_flvmux_OBJECTS) $(elements_flvmux_LDADD) $(LIBS) -elements/gdkpixbufsink$(EXEEXT): $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_DEPENDENCIES) elements/$(am__dirstamp) +elements/gdkpixbufsink$(EXEEXT): $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_DEPENDENCIES) $(EXTRA_elements_gdkpixbufsink_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/gdkpixbufsink$(EXEEXT) $(AM_V_CCLD)$(elements_gdkpixbufsink_LINK) $(elements_gdkpixbufsink_OBJECTS) $(elements_gdkpixbufsink_LDADD) $(LIBS) -elements/icydemux$(EXEEXT): $(elements_icydemux_OBJECTS) $(elements_icydemux_DEPENDENCIES) elements/$(am__dirstamp) +elements/icydemux$(EXEEXT): $(elements_icydemux_OBJECTS) $(elements_icydemux_DEPENDENCIES) $(EXTRA_elements_icydemux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/icydemux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_icydemux_OBJECTS) $(elements_icydemux_LDADD) $(LIBS) -elements/id3demux$(EXEEXT): $(elements_id3demux_OBJECTS) $(elements_id3demux_DEPENDENCIES) elements/$(am__dirstamp) +elements/id3demux$(EXEEXT): $(elements_id3demux_OBJECTS) $(elements_id3demux_DEPENDENCIES) $(EXTRA_elements_id3demux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/id3demux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_id3demux_OBJECTS) $(elements_id3demux_LDADD) $(LIBS) -elements/id3v2mux$(EXEEXT): $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_DEPENDENCIES) elements/$(am__dirstamp) +elements/id3v2mux$(EXEEXT): $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_DEPENDENCIES) $(EXTRA_elements_id3v2mux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/id3v2mux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_id3v2mux_OBJECTS) $(elements_id3v2mux_LDADD) $(LIBS) -elements/imagefreeze$(EXEEXT): $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_DEPENDENCIES) elements/$(am__dirstamp) +elements/imagefreeze$(EXEEXT): $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_DEPENDENCIES) $(EXTRA_elements_imagefreeze_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/imagefreeze$(EXEEXT) $(AM_V_CCLD)$(elements_imagefreeze_LINK) $(elements_imagefreeze_OBJECTS) $(elements_imagefreeze_LDADD) $(LIBS) -elements/interleave$(EXEEXT): $(elements_interleave_OBJECTS) $(elements_interleave_DEPENDENCIES) elements/$(am__dirstamp) +elements/interleave$(EXEEXT): $(elements_interleave_OBJECTS) $(elements_interleave_DEPENDENCIES) $(EXTRA_elements_interleave_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/interleave$(EXEEXT) $(AM_V_CCLD)$(elements_interleave_LINK) $(elements_interleave_OBJECTS) $(elements_interleave_LDADD) $(LIBS) -elements/jpegenc$(EXEEXT): $(elements_jpegenc_OBJECTS) $(elements_jpegenc_DEPENDENCIES) elements/$(am__dirstamp) +elements/jpegenc$(EXEEXT): $(elements_jpegenc_OBJECTS) $(elements_jpegenc_DEPENDENCIES) $(EXTRA_elements_jpegenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/jpegenc$(EXEEXT) $(AM_V_CCLD)$(elements_jpegenc_LINK) $(elements_jpegenc_OBJECTS) $(elements_jpegenc_LDADD) $(LIBS) -elements/level$(EXEEXT): $(elements_level_OBJECTS) $(elements_level_DEPENDENCIES) elements/$(am__dirstamp) +elements/level$(EXEEXT): $(elements_level_OBJECTS) $(elements_level_DEPENDENCIES) $(EXTRA_elements_level_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/level$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_level_OBJECTS) $(elements_level_LDADD) $(LIBS) -elements/matroskamux$(EXEEXT): $(elements_matroskamux_OBJECTS) $(elements_matroskamux_DEPENDENCIES) elements/$(am__dirstamp) +elements/matroskamux$(EXEEXT): $(elements_matroskamux_OBJECTS) $(elements_matroskamux_DEPENDENCIES) $(EXTRA_elements_matroskamux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/matroskamux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_matroskamux_OBJECTS) $(elements_matroskamux_LDADD) $(LIBS) -elements/mpegaudioparse$(EXEEXT): $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/matroskaparse$(EXEEXT): $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_DEPENDENCIES) $(EXTRA_elements_matroskaparse_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/matroskaparse$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(elements_matroskaparse_OBJECTS) $(elements_matroskaparse_LDADD) $(LIBS) +elements/mpegaudioparse$(EXEEXT): $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_DEPENDENCIES) $(EXTRA_elements_mpegaudioparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/mpegaudioparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_mpegaudioparse_OBJECTS) $(elements_mpegaudioparse_LDADD) $(LIBS) -elements/multifile$(EXEEXT): $(elements_multifile_OBJECTS) $(elements_multifile_DEPENDENCIES) elements/$(am__dirstamp) +elements/multifile$(EXEEXT): $(elements_multifile_OBJECTS) $(elements_multifile_DEPENDENCIES) $(EXTRA_elements_multifile_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/multifile$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(elements_multifile_OBJECTS) $(elements_multifile_LDADD) $(LIBS) -elements/qtmux$(EXEEXT): $(elements_qtmux_OBJECTS) $(elements_qtmux_DEPENDENCIES) elements/$(am__dirstamp) + $(AM_V_CCLD)$(elements_multifile_LINK) $(elements_multifile_OBJECTS) $(elements_multifile_LDADD) $(LIBS) +elements/qtmux$(EXEEXT): $(elements_qtmux_OBJECTS) $(elements_qtmux_DEPENDENCIES) $(EXTRA_elements_qtmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/qtmux$(EXEEXT) $(AM_V_CCLD)$(elements_qtmux_LINK) $(elements_qtmux_OBJECTS) $(elements_qtmux_LDADD) $(LIBS) -elements/rganalysis$(EXEEXT): $(elements_rganalysis_OBJECTS) $(elements_rganalysis_DEPENDENCIES) elements/$(am__dirstamp) +elements/rganalysis$(EXEEXT): $(elements_rganalysis_OBJECTS) $(elements_rganalysis_DEPENDENCIES) $(EXTRA_elements_rganalysis_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rganalysis$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rganalysis_OBJECTS) $(elements_rganalysis_LDADD) $(LIBS) -elements/rglimiter$(EXEEXT): $(elements_rglimiter_OBJECTS) $(elements_rglimiter_DEPENDENCIES) elements/$(am__dirstamp) +elements/rglimiter$(EXEEXT): $(elements_rglimiter_OBJECTS) $(elements_rglimiter_DEPENDENCIES) $(EXTRA_elements_rglimiter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rglimiter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rglimiter_OBJECTS) $(elements_rglimiter_LDADD) $(LIBS) -elements/rgvolume$(EXEEXT): $(elements_rgvolume_OBJECTS) $(elements_rgvolume_DEPENDENCIES) elements/$(am__dirstamp) +elements/rgvolume$(EXEEXT): $(elements_rgvolume_OBJECTS) $(elements_rgvolume_DEPENDENCIES) $(EXTRA_elements_rgvolume_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rgvolume$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rgvolume_OBJECTS) $(elements_rgvolume_LDADD) $(LIBS) -elements/rtp-payloading$(EXEEXT): $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_DEPENDENCIES) elements/$(am__dirstamp) +elements/rtp-payloading$(EXEEXT): $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_DEPENDENCIES) $(EXTRA_elements_rtp_payloading_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtp-payloading$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_LDADD) $(LIBS) -elements/rtpbin$(EXEEXT): $(elements_rtpbin_OBJECTS) $(elements_rtpbin_DEPENDENCIES) elements/$(am__dirstamp) +elements/rtpbin$(EXEEXT): $(elements_rtpbin_OBJECTS) $(elements_rtpbin_DEPENDENCIES) $(EXTRA_elements_rtpbin_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpbin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtpbin_OBJECTS) $(elements_rtpbin_LDADD) $(LIBS) -elements/rtpbin_buffer_list$(EXEEXT): $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_DEPENDENCIES) elements/$(am__dirstamp) +elements/rtpbin_buffer_list$(EXEEXT): $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_DEPENDENCIES) $(EXTRA_elements_rtpbin_buffer_list_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpbin_buffer_list$(EXEEXT) $(AM_V_CCLD)$(elements_rtpbin_buffer_list_LINK) $(elements_rtpbin_buffer_list_OBJECTS) $(elements_rtpbin_buffer_list_LDADD) $(LIBS) -elements/rtpjitterbuffer$(EXEEXT): $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_DEPENDENCIES) elements/$(am__dirstamp) +elements/rtpjitterbuffer$(EXEEXT): $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_DEPENDENCIES) $(EXTRA_elements_rtpjitterbuffer_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpjitterbuffer$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtpjitterbuffer_OBJECTS) $(elements_rtpjitterbuffer_LDADD) $(LIBS) -elements/shapewipe$(EXEEXT): $(elements_shapewipe_OBJECTS) $(elements_shapewipe_DEPENDENCIES) elements/$(am__dirstamp) +elements/shapewipe$(EXEEXT): $(elements_shapewipe_OBJECTS) $(elements_shapewipe_DEPENDENCIES) $(EXTRA_elements_shapewipe_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/shapewipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_shapewipe_OBJECTS) $(elements_shapewipe_LDADD) $(LIBS) -elements/souphttpsrc$(EXEEXT): $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_DEPENDENCIES) elements/$(am__dirstamp) +elements/souphttpsrc$(EXEEXT): $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_DEPENDENCIES) $(EXTRA_elements_souphttpsrc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/souphttpsrc$(EXEEXT) $(AM_V_CCLD)$(elements_souphttpsrc_LINK) $(elements_souphttpsrc_OBJECTS) $(elements_souphttpsrc_LDADD) $(LIBS) -elements/spectrum$(EXEEXT): $(elements_spectrum_OBJECTS) $(elements_spectrum_DEPENDENCIES) elements/$(am__dirstamp) +elements/spectrum$(EXEEXT): $(elements_spectrum_OBJECTS) $(elements_spectrum_DEPENDENCIES) $(EXTRA_elements_spectrum_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/spectrum$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_spectrum_OBJECTS) $(elements_spectrum_LDADD) $(LIBS) -elements/sunaudio$(EXEEXT): $(elements_sunaudio_OBJECTS) $(elements_sunaudio_DEPENDENCIES) elements/$(am__dirstamp) +elements/sunaudio$(EXEEXT): $(elements_sunaudio_OBJECTS) $(elements_sunaudio_DEPENDENCIES) $(EXTRA_elements_sunaudio_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/sunaudio$(EXEEXT) $(AM_V_CCLD)$(elements_sunaudio_LINK) $(elements_sunaudio_OBJECTS) $(elements_sunaudio_LDADD) $(LIBS) -elements/udpsink$(EXEEXT): $(elements_udpsink_OBJECTS) $(elements_udpsink_DEPENDENCIES) elements/$(am__dirstamp) +elements/udpsink$(EXEEXT): $(elements_udpsink_OBJECTS) $(elements_udpsink_DEPENDENCIES) $(EXTRA_elements_udpsink_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/udpsink$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_udpsink_OBJECTS) $(elements_udpsink_LDADD) $(LIBS) -elements/videocrop$(EXEEXT): $(elements_videocrop_OBJECTS) $(elements_videocrop_DEPENDENCIES) elements/$(am__dirstamp) +elements/videocrop$(EXEEXT): $(elements_videocrop_OBJECTS) $(elements_videocrop_DEPENDENCIES) $(EXTRA_elements_videocrop_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/videocrop$(EXEEXT) $(AM_V_CCLD)$(elements_videocrop_LINK) $(elements_videocrop_OBJECTS) $(elements_videocrop_LDADD) $(LIBS) -elements/videofilter$(EXEEXT): $(elements_videofilter_OBJECTS) $(elements_videofilter_DEPENDENCIES) elements/$(am__dirstamp) +elements/videofilter$(EXEEXT): $(elements_videofilter_OBJECTS) $(elements_videofilter_DEPENDENCIES) $(EXTRA_elements_videofilter_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/videofilter$(EXEEXT) $(AM_V_CCLD)$(elements_videofilter_LINK) $(elements_videofilter_OBJECTS) $(elements_videofilter_LDADD) $(LIBS) -elements/wavpackdec$(EXEEXT): $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_DEPENDENCIES) elements/$(am__dirstamp) +elements/wavpackdec$(EXEEXT): $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_DEPENDENCIES) $(EXTRA_elements_wavpackdec_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackdec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackdec_OBJECTS) $(elements_wavpackdec_LDADD) $(LIBS) -elements/wavpackenc$(EXEEXT): $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_DEPENDENCIES) elements/$(am__dirstamp) +elements/wavpackenc$(EXEEXT): $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_DEPENDENCIES) $(EXTRA_elements_wavpackenc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackenc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackenc_OBJECTS) $(elements_wavpackenc_LDADD) $(LIBS) -elements/wavpackparse$(EXEEXT): $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_DEPENDENCIES) elements/$(am__dirstamp) +elements/wavpackparse$(EXEEXT): $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_DEPENDENCIES) $(EXTRA_elements_wavpackparse_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/wavpackparse$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_wavpackparse_OBJECTS) $(elements_wavpackparse_LDADD) $(LIBS) -elements/y4menc$(EXEEXT): $(elements_y4menc_OBJECTS) $(elements_y4menc_DEPENDENCIES) elements/$(am__dirstamp) +elements/y4menc$(EXEEXT): $(elements_y4menc_OBJECTS) $(elements_y4menc_DEPENDENCIES) $(EXTRA_elements_y4menc_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/y4menc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_y4menc_OBJECTS) $(elements_y4menc_LDADD) $(LIBS) generic/$(am__dirstamp): @$(MKDIR_P) generic @: > generic/$(am__dirstamp) -generic/index$(EXEEXT): $(generic_index_OBJECTS) $(generic_index_DEPENDENCIES) generic/$(am__dirstamp) +generic/index$(EXEEXT): $(generic_index_OBJECTS) $(generic_index_DEPENDENCIES) $(EXTRA_generic_index_DEPENDENCIES) generic/$(am__dirstamp) @rm -f generic/index$(EXEEXT) $(AM_V_CCLD)$(LINK) $(generic_index_OBJECTS) $(generic_index_LDADD) $(LIBS) -generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) generic/$(am__dirstamp) +generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp) @rm -f generic/states$(EXEEXT) $(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS) orc/$(am__dirstamp): @$(MKDIR_P) orc @: > orc/$(am__dirstamp) -orc/deinterlace$(EXEEXT): $(orc_deinterlace_OBJECTS) $(orc_deinterlace_DEPENDENCIES) orc/$(am__dirstamp) +orc/deinterlace$(EXEEXT): $(orc_deinterlace_OBJECTS) $(orc_deinterlace_DEPENDENCIES) $(EXTRA_orc_deinterlace_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/deinterlace$(EXEEXT) $(AM_V_CCLD)$(orc_deinterlace_LINK) $(orc_deinterlace_OBJECTS) $(orc_deinterlace_LDADD) $(LIBS) -orc/videobox$(EXEEXT): $(orc_videobox_OBJECTS) $(orc_videobox_DEPENDENCIES) orc/$(am__dirstamp) +orc/videobox$(EXEEXT): $(orc_videobox_OBJECTS) $(orc_videobox_DEPENDENCIES) $(EXTRA_orc_videobox_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/videobox$(EXEEXT) $(AM_V_CCLD)$(orc_videobox_LINK) $(orc_videobox_OBJECTS) $(orc_videobox_LDADD) $(LIBS) -orc/videomixer$(EXEEXT): $(orc_videomixer_OBJECTS) $(orc_videomixer_DEPENDENCIES) orc/$(am__dirstamp) +orc/videomixer$(EXEEXT): $(orc_videomixer_OBJECTS) $(orc_videomixer_DEPENDENCIES) $(EXTRA_orc_videomixer_DEPENDENCIES) orc/$(am__dirstamp) @rm -f orc/videomixer$(EXEEXT) $(AM_V_CCLD)$(orc_videomixer_LINK) $(orc_videomixer_OBJECTS) $(orc_videomixer_LDADD) $(LIBS) pipelines/$(am__dirstamp): @$(MKDIR_P) pipelines @: > pipelines/$(am__dirstamp) -pipelines/effectv$(EXEEXT): $(pipelines_effectv_OBJECTS) $(pipelines_effectv_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/effectv$(EXEEXT): $(pipelines_effectv_OBJECTS) $(pipelines_effectv_DEPENDENCIES) $(EXTRA_pipelines_effectv_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/effectv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_effectv_OBJECTS) $(pipelines_effectv_LDADD) $(LIBS) -pipelines/flacdec$(EXEEXT): $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/flacdec$(EXEEXT): $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_DEPENDENCIES) $(EXTRA_pipelines_flacdec_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/flacdec$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_flacdec_OBJECTS) $(pipelines_flacdec_LDADD) $(LIBS) -pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/simple-launch-lines$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS) -pipelines/tagschecking$(EXEEXT): $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/tagschecking$(EXEEXT): $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_DEPENDENCIES) $(EXTRA_pipelines_tagschecking_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/tagschecking$(EXEEXT) $(AM_V_CCLD)$(LINK) $(pipelines_tagschecking_OBJECTS) $(pipelines_tagschecking_LDADD) $(LIBS) -pipelines/wavenc$(EXEEXT): $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/wavenc$(EXEEXT): $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_DEPENDENCIES) $(EXTRA_pipelines_wavenc_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/wavenc$(EXEEXT) $(AM_V_CCLD)$(pipelines_wavenc_LINK) $(pipelines_wavenc_OBJECTS) $(pipelines_wavenc_LDADD) $(LIBS) -pipelines/wavpack$(EXEEXT): $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_DEPENDENCIES) pipelines/$(am__dirstamp) +pipelines/wavpack$(EXEEXT): $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_DEPENDENCIES) $(EXTRA_pipelines_wavpack_DEPENDENCIES) pipelines/$(am__dirstamp) @rm -f pipelines/wavpack$(EXEEXT) $(AM_V_CCLD)$(pipelines_wavpack_LINK) $(pipelines_wavpack_OBJECTS) $(pipelines_wavpack_LDADD) $(LIBS) @@ -1430,6 +1440,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_imagefreeze-imagefreeze.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_interleave-interleave.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_jpegenc-jpegenc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_multifile-multifile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_qtmux-qtmux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po@am__quote@ @@ -1448,8 +1459,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/level.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libparser_la-parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskamux.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matroskaparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpegaudioparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multifile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_deinterlace-deinterlace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videobox-videobox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orc_videomixer-videomixer.Po@am__quote@ @@ -1475,1154 +1486,1024 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libparser_la-parser.lo: elements/parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparser_la_CFLAGS) $(CFLAGS) -MT libparser_la-parser.lo -MD -MP -MF $(DEPDIR)/libparser_la-parser.Tpo -c -o libparser_la-parser.lo `test -f 'elements/parser.c' || echo '$(srcdir)/'`elements/parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libparser_la-parser.Tpo $(DEPDIR)/libparser_la-parser.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/parser.c' object='libparser_la-parser.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/parser.c' object='libparser_la-parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparser_la_CFLAGS) $(CFLAGS) -c -o libparser_la-parser.lo `test -f 'elements/parser.c' || echo '$(srcdir)/'`elements/parser.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libparser_la_CFLAGS) $(CFLAGS) -c -o libparser_la-parser.lo `test -f 'elements/parser.c' || echo '$(srcdir)/'`elements/parser.c aacparse.o: elements/aacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT aacparse.o -MD -MP -MF $(DEPDIR)/aacparse.Tpo -c -o aacparse.o `test -f 'elements/aacparse.c' || echo '$(srcdir)/'`elements/aacparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/aacparse.Tpo $(DEPDIR)/aacparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/aacparse.c' object='aacparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/aacparse.c' object='aacparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o aacparse.o `test -f 'elements/aacparse.c' || echo '$(srcdir)/'`elements/aacparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o aacparse.o `test -f 'elements/aacparse.c' || echo '$(srcdir)/'`elements/aacparse.c aacparse.obj: elements/aacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT aacparse.obj -MD -MP -MF $(DEPDIR)/aacparse.Tpo -c -o aacparse.obj `if test -f 'elements/aacparse.c'; then $(CYGPATH_W) 'elements/aacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/aacparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/aacparse.Tpo $(DEPDIR)/aacparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/aacparse.c' object='aacparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/aacparse.c' object='aacparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o aacparse.obj `if test -f 'elements/aacparse.c'; then $(CYGPATH_W) 'elements/aacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/aacparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o aacparse.obj `if test -f 'elements/aacparse.c'; then $(CYGPATH_W) 'elements/aacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/aacparse.c'; fi` ac3parse.o: elements/ac3parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ac3parse.o -MD -MP -MF $(DEPDIR)/ac3parse.Tpo -c -o ac3parse.o `test -f 'elements/ac3parse.c' || echo '$(srcdir)/'`elements/ac3parse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ac3parse.Tpo $(DEPDIR)/ac3parse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ac3parse.c' object='ac3parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ac3parse.c' object='ac3parse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ac3parse.o `test -f 'elements/ac3parse.c' || echo '$(srcdir)/'`elements/ac3parse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ac3parse.o `test -f 'elements/ac3parse.c' || echo '$(srcdir)/'`elements/ac3parse.c ac3parse.obj: elements/ac3parse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ac3parse.obj -MD -MP -MF $(DEPDIR)/ac3parse.Tpo -c -o ac3parse.obj `if test -f 'elements/ac3parse.c'; then $(CYGPATH_W) 'elements/ac3parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/ac3parse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ac3parse.Tpo $(DEPDIR)/ac3parse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ac3parse.c' object='ac3parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ac3parse.c' object='ac3parse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ac3parse.obj `if test -f 'elements/ac3parse.c'; then $(CYGPATH_W) 'elements/ac3parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/ac3parse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ac3parse.obj `if test -f 'elements/ac3parse.c'; then $(CYGPATH_W) 'elements/ac3parse.c'; else $(CYGPATH_W) '$(srcdir)/elements/ac3parse.c'; fi` elements_alphacolor-alphacolor.o: elements/alphacolor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -MT elements_alphacolor-alphacolor.o -MD -MP -MF $(DEPDIR)/elements_alphacolor-alphacolor.Tpo -c -o elements_alphacolor-alphacolor.o `test -f 'elements/alphacolor.c' || echo '$(srcdir)/'`elements/alphacolor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alphacolor-alphacolor.Tpo $(DEPDIR)/elements_alphacolor-alphacolor.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/alphacolor.c' object='elements_alphacolor-alphacolor.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alphacolor.c' object='elements_alphacolor-alphacolor.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -c -o elements_alphacolor-alphacolor.o `test -f 'elements/alphacolor.c' || echo '$(srcdir)/'`elements/alphacolor.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -c -o elements_alphacolor-alphacolor.o `test -f 'elements/alphacolor.c' || echo '$(srcdir)/'`elements/alphacolor.c elements_alphacolor-alphacolor.obj: elements/alphacolor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -MT elements_alphacolor-alphacolor.obj -MD -MP -MF $(DEPDIR)/elements_alphacolor-alphacolor.Tpo -c -o elements_alphacolor-alphacolor.obj `if test -f 'elements/alphacolor.c'; then $(CYGPATH_W) 'elements/alphacolor.c'; else $(CYGPATH_W) '$(srcdir)/elements/alphacolor.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alphacolor-alphacolor.Tpo $(DEPDIR)/elements_alphacolor-alphacolor.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/alphacolor.c' object='elements_alphacolor-alphacolor.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alphacolor.c' object='elements_alphacolor-alphacolor.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -c -o elements_alphacolor-alphacolor.obj `if test -f 'elements/alphacolor.c'; then $(CYGPATH_W) 'elements/alphacolor.c'; else $(CYGPATH_W) '$(srcdir)/elements/alphacolor.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alphacolor_CFLAGS) $(CFLAGS) -c -o elements_alphacolor-alphacolor.obj `if test -f 'elements/alphacolor.c'; then $(CYGPATH_W) 'elements/alphacolor.c'; else $(CYGPATH_W) '$(srcdir)/elements/alphacolor.c'; fi` amrparse.o: elements/amrparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amrparse.o -MD -MP -MF $(DEPDIR)/amrparse.Tpo -c -o amrparse.o `test -f 'elements/amrparse.c' || echo '$(srcdir)/'`elements/amrparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/amrparse.Tpo $(DEPDIR)/amrparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/amrparse.c' object='amrparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/amrparse.c' object='amrparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amrparse.o `test -f 'elements/amrparse.c' || echo '$(srcdir)/'`elements/amrparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amrparse.o `test -f 'elements/amrparse.c' || echo '$(srcdir)/'`elements/amrparse.c amrparse.obj: elements/amrparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT amrparse.obj -MD -MP -MF $(DEPDIR)/amrparse.Tpo -c -o amrparse.obj `if test -f 'elements/amrparse.c'; then $(CYGPATH_W) 'elements/amrparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/amrparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/amrparse.Tpo $(DEPDIR)/amrparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/amrparse.c' object='amrparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/amrparse.c' object='amrparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amrparse.obj `if test -f 'elements/amrparse.c'; then $(CYGPATH_W) 'elements/amrparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/amrparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o amrparse.obj `if test -f 'elements/amrparse.c'; then $(CYGPATH_W) 'elements/amrparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/amrparse.c'; fi` apev2mux.o: elements/apev2mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT apev2mux.o -MD -MP -MF $(DEPDIR)/apev2mux.Tpo -c -o apev2mux.o `test -f 'elements/apev2mux.c' || echo '$(srcdir)/'`elements/apev2mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/apev2mux.Tpo $(DEPDIR)/apev2mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/apev2mux.c' object='apev2mux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/apev2mux.c' object='apev2mux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o apev2mux.o `test -f 'elements/apev2mux.c' || echo '$(srcdir)/'`elements/apev2mux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o apev2mux.o `test -f 'elements/apev2mux.c' || echo '$(srcdir)/'`elements/apev2mux.c apev2mux.obj: elements/apev2mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT apev2mux.obj -MD -MP -MF $(DEPDIR)/apev2mux.Tpo -c -o apev2mux.obj `if test -f 'elements/apev2mux.c'; then $(CYGPATH_W) 'elements/apev2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/apev2mux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/apev2mux.Tpo $(DEPDIR)/apev2mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/apev2mux.c' object='apev2mux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/apev2mux.c' object='apev2mux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o apev2mux.obj `if test -f 'elements/apev2mux.c'; then $(CYGPATH_W) 'elements/apev2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/apev2mux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o apev2mux.obj `if test -f 'elements/apev2mux.c'; then $(CYGPATH_W) 'elements/apev2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/apev2mux.c'; fi` elements_aspectratiocrop-aspectratiocrop.o: elements/aspectratiocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -MT elements_aspectratiocrop-aspectratiocrop.o -MD -MP -MF $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Tpo -c -o elements_aspectratiocrop-aspectratiocrop.o `test -f 'elements/aspectratiocrop.c' || echo '$(srcdir)/'`elements/aspectratiocrop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Tpo $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/aspectratiocrop.c' object='elements_aspectratiocrop-aspectratiocrop.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/aspectratiocrop.c' object='elements_aspectratiocrop-aspectratiocrop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -c -o elements_aspectratiocrop-aspectratiocrop.o `test -f 'elements/aspectratiocrop.c' || echo '$(srcdir)/'`elements/aspectratiocrop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -c -o elements_aspectratiocrop-aspectratiocrop.o `test -f 'elements/aspectratiocrop.c' || echo '$(srcdir)/'`elements/aspectratiocrop.c elements_aspectratiocrop-aspectratiocrop.obj: elements/aspectratiocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -MT elements_aspectratiocrop-aspectratiocrop.obj -MD -MP -MF $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Tpo -c -o elements_aspectratiocrop-aspectratiocrop.obj `if test -f 'elements/aspectratiocrop.c'; then $(CYGPATH_W) 'elements/aspectratiocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/aspectratiocrop.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Tpo $(DEPDIR)/elements_aspectratiocrop-aspectratiocrop.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/aspectratiocrop.c' object='elements_aspectratiocrop-aspectratiocrop.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/aspectratiocrop.c' object='elements_aspectratiocrop-aspectratiocrop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -c -o elements_aspectratiocrop-aspectratiocrop.obj `if test -f 'elements/aspectratiocrop.c'; then $(CYGPATH_W) 'elements/aspectratiocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/aspectratiocrop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_aspectratiocrop_CFLAGS) $(CFLAGS) -c -o elements_aspectratiocrop-aspectratiocrop.obj `if test -f 'elements/aspectratiocrop.c'; then $(CYGPATH_W) 'elements/aspectratiocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/aspectratiocrop.c'; fi` audioamplify.o: elements/audioamplify.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioamplify.o -MD -MP -MF $(DEPDIR)/audioamplify.Tpo -c -o audioamplify.o `test -f 'elements/audioamplify.c' || echo '$(srcdir)/'`elements/audioamplify.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioamplify.Tpo $(DEPDIR)/audioamplify.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioamplify.c' object='audioamplify.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioamplify.c' object='audioamplify.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioamplify.o `test -f 'elements/audioamplify.c' || echo '$(srcdir)/'`elements/audioamplify.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioamplify.o `test -f 'elements/audioamplify.c' || echo '$(srcdir)/'`elements/audioamplify.c audioamplify.obj: elements/audioamplify.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioamplify.obj -MD -MP -MF $(DEPDIR)/audioamplify.Tpo -c -o audioamplify.obj `if test -f 'elements/audioamplify.c'; then $(CYGPATH_W) 'elements/audioamplify.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioamplify.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioamplify.Tpo $(DEPDIR)/audioamplify.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioamplify.c' object='audioamplify.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioamplify.c' object='audioamplify.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioamplify.obj `if test -f 'elements/audioamplify.c'; then $(CYGPATH_W) 'elements/audioamplify.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioamplify.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioamplify.obj `if test -f 'elements/audioamplify.c'; then $(CYGPATH_W) 'elements/audioamplify.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioamplify.c'; fi` audiochebband.o: elements/audiochebband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiochebband.o -MD -MP -MF $(DEPDIR)/audiochebband.Tpo -c -o audiochebband.o `test -f 'elements/audiochebband.c' || echo '$(srcdir)/'`elements/audiochebband.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiochebband.Tpo $(DEPDIR)/audiochebband.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiochebband.c' object='audiochebband.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiochebband.c' object='audiochebband.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiochebband.o `test -f 'elements/audiochebband.c' || echo '$(srcdir)/'`elements/audiochebband.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiochebband.o `test -f 'elements/audiochebband.c' || echo '$(srcdir)/'`elements/audiochebband.c audiochebband.obj: elements/audiochebband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiochebband.obj -MD -MP -MF $(DEPDIR)/audiochebband.Tpo -c -o audiochebband.obj `if test -f 'elements/audiochebband.c'; then $(CYGPATH_W) 'elements/audiochebband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiochebband.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiochebband.Tpo $(DEPDIR)/audiochebband.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiochebband.c' object='audiochebband.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiochebband.c' object='audiochebband.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiochebband.obj `if test -f 'elements/audiochebband.c'; then $(CYGPATH_W) 'elements/audiochebband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiochebband.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiochebband.obj `if test -f 'elements/audiochebband.c'; then $(CYGPATH_W) 'elements/audiochebband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiochebband.c'; fi` audiocheblimit.o: elements/audiocheblimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiocheblimit.o -MD -MP -MF $(DEPDIR)/audiocheblimit.Tpo -c -o audiocheblimit.o `test -f 'elements/audiocheblimit.c' || echo '$(srcdir)/'`elements/audiocheblimit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiocheblimit.Tpo $(DEPDIR)/audiocheblimit.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiocheblimit.c' object='audiocheblimit.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiocheblimit.c' object='audiocheblimit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiocheblimit.o `test -f 'elements/audiocheblimit.c' || echo '$(srcdir)/'`elements/audiocheblimit.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiocheblimit.o `test -f 'elements/audiocheblimit.c' || echo '$(srcdir)/'`elements/audiocheblimit.c audiocheblimit.obj: elements/audiocheblimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiocheblimit.obj -MD -MP -MF $(DEPDIR)/audiocheblimit.Tpo -c -o audiocheblimit.obj `if test -f 'elements/audiocheblimit.c'; then $(CYGPATH_W) 'elements/audiocheblimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiocheblimit.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiocheblimit.Tpo $(DEPDIR)/audiocheblimit.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiocheblimit.c' object='audiocheblimit.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiocheblimit.c' object='audiocheblimit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiocheblimit.obj `if test -f 'elements/audiocheblimit.c'; then $(CYGPATH_W) 'elements/audiocheblimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiocheblimit.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiocheblimit.obj `if test -f 'elements/audiocheblimit.c'; then $(CYGPATH_W) 'elements/audiocheblimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiocheblimit.c'; fi` audiodynamic.o: elements/audiodynamic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiodynamic.o -MD -MP -MF $(DEPDIR)/audiodynamic.Tpo -c -o audiodynamic.o `test -f 'elements/audiodynamic.c' || echo '$(srcdir)/'`elements/audiodynamic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiodynamic.Tpo $(DEPDIR)/audiodynamic.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiodynamic.c' object='audiodynamic.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiodynamic.c' object='audiodynamic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiodynamic.o `test -f 'elements/audiodynamic.c' || echo '$(srcdir)/'`elements/audiodynamic.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiodynamic.o `test -f 'elements/audiodynamic.c' || echo '$(srcdir)/'`elements/audiodynamic.c audiodynamic.obj: elements/audiodynamic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiodynamic.obj -MD -MP -MF $(DEPDIR)/audiodynamic.Tpo -c -o audiodynamic.obj `if test -f 'elements/audiodynamic.c'; then $(CYGPATH_W) 'elements/audiodynamic.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiodynamic.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiodynamic.Tpo $(DEPDIR)/audiodynamic.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiodynamic.c' object='audiodynamic.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiodynamic.c' object='audiodynamic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiodynamic.obj `if test -f 'elements/audiodynamic.c'; then $(CYGPATH_W) 'elements/audiodynamic.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiodynamic.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiodynamic.obj `if test -f 'elements/audiodynamic.c'; then $(CYGPATH_W) 'elements/audiodynamic.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiodynamic.c'; fi` audioecho.o: elements/audioecho.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioecho.o -MD -MP -MF $(DEPDIR)/audioecho.Tpo -c -o audioecho.o `test -f 'elements/audioecho.c' || echo '$(srcdir)/'`elements/audioecho.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioecho.Tpo $(DEPDIR)/audioecho.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioecho.c' object='audioecho.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioecho.c' object='audioecho.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioecho.o `test -f 'elements/audioecho.c' || echo '$(srcdir)/'`elements/audioecho.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioecho.o `test -f 'elements/audioecho.c' || echo '$(srcdir)/'`elements/audioecho.c audioecho.obj: elements/audioecho.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioecho.obj -MD -MP -MF $(DEPDIR)/audioecho.Tpo -c -o audioecho.obj `if test -f 'elements/audioecho.c'; then $(CYGPATH_W) 'elements/audioecho.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioecho.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioecho.Tpo $(DEPDIR)/audioecho.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioecho.c' object='audioecho.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioecho.c' object='audioecho.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioecho.obj `if test -f 'elements/audioecho.c'; then $(CYGPATH_W) 'elements/audioecho.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioecho.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioecho.obj `if test -f 'elements/audioecho.c'; then $(CYGPATH_W) 'elements/audioecho.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioecho.c'; fi` audiofirfilter.o: elements/audiofirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiofirfilter.o -MD -MP -MF $(DEPDIR)/audiofirfilter.Tpo -c -o audiofirfilter.o `test -f 'elements/audiofirfilter.c' || echo '$(srcdir)/'`elements/audiofirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiofirfilter.Tpo $(DEPDIR)/audiofirfilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiofirfilter.c' object='audiofirfilter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiofirfilter.c' object='audiofirfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiofirfilter.o `test -f 'elements/audiofirfilter.c' || echo '$(srcdir)/'`elements/audiofirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiofirfilter.o `test -f 'elements/audiofirfilter.c' || echo '$(srcdir)/'`elements/audiofirfilter.c audiofirfilter.obj: elements/audiofirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiofirfilter.obj -MD -MP -MF $(DEPDIR)/audiofirfilter.Tpo -c -o audiofirfilter.obj `if test -f 'elements/audiofirfilter.c'; then $(CYGPATH_W) 'elements/audiofirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiofirfilter.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiofirfilter.Tpo $(DEPDIR)/audiofirfilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiofirfilter.c' object='audiofirfilter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiofirfilter.c' object='audiofirfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiofirfilter.obj `if test -f 'elements/audiofirfilter.c'; then $(CYGPATH_W) 'elements/audiofirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiofirfilter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiofirfilter.obj `if test -f 'elements/audiofirfilter.c'; then $(CYGPATH_W) 'elements/audiofirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiofirfilter.c'; fi` audioiirfilter.o: elements/audioiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioiirfilter.o -MD -MP -MF $(DEPDIR)/audioiirfilter.Tpo -c -o audioiirfilter.o `test -f 'elements/audioiirfilter.c' || echo '$(srcdir)/'`elements/audioiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioiirfilter.Tpo $(DEPDIR)/audioiirfilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioiirfilter.c' object='audioiirfilter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioiirfilter.c' object='audioiirfilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioiirfilter.o `test -f 'elements/audioiirfilter.c' || echo '$(srcdir)/'`elements/audioiirfilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioiirfilter.o `test -f 'elements/audioiirfilter.c' || echo '$(srcdir)/'`elements/audioiirfilter.c audioiirfilter.obj: elements/audioiirfilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioiirfilter.obj -MD -MP -MF $(DEPDIR)/audioiirfilter.Tpo -c -o audioiirfilter.obj `if test -f 'elements/audioiirfilter.c'; then $(CYGPATH_W) 'elements/audioiirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioiirfilter.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioiirfilter.Tpo $(DEPDIR)/audioiirfilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioiirfilter.c' object='audioiirfilter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioiirfilter.c' object='audioiirfilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioiirfilter.obj `if test -f 'elements/audioiirfilter.c'; then $(CYGPATH_W) 'elements/audioiirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioiirfilter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioiirfilter.obj `if test -f 'elements/audioiirfilter.c'; then $(CYGPATH_W) 'elements/audioiirfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioiirfilter.c'; fi` audioinvert.o: elements/audioinvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioinvert.o -MD -MP -MF $(DEPDIR)/audioinvert.Tpo -c -o audioinvert.o `test -f 'elements/audioinvert.c' || echo '$(srcdir)/'`elements/audioinvert.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioinvert.Tpo $(DEPDIR)/audioinvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioinvert.c' object='audioinvert.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioinvert.c' object='audioinvert.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioinvert.o `test -f 'elements/audioinvert.c' || echo '$(srcdir)/'`elements/audioinvert.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioinvert.o `test -f 'elements/audioinvert.c' || echo '$(srcdir)/'`elements/audioinvert.c audioinvert.obj: elements/audioinvert.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audioinvert.obj -MD -MP -MF $(DEPDIR)/audioinvert.Tpo -c -o audioinvert.obj `if test -f 'elements/audioinvert.c'; then $(CYGPATH_W) 'elements/audioinvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioinvert.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audioinvert.Tpo $(DEPDIR)/audioinvert.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioinvert.c' object='audioinvert.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioinvert.c' object='audioinvert.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioinvert.obj `if test -f 'elements/audioinvert.c'; then $(CYGPATH_W) 'elements/audioinvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioinvert.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audioinvert.obj `if test -f 'elements/audioinvert.c'; then $(CYGPATH_W) 'elements/audioinvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioinvert.c'; fi` elements_audiopanorama-audiopanorama.o: elements/audiopanorama.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -MT elements_audiopanorama-audiopanorama.o -MD -MP -MF $(DEPDIR)/elements_audiopanorama-audiopanorama.Tpo -c -o elements_audiopanorama-audiopanorama.o `test -f 'elements/audiopanorama.c' || echo '$(srcdir)/'`elements/audiopanorama.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiopanorama-audiopanorama.Tpo $(DEPDIR)/elements_audiopanorama-audiopanorama.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiopanorama.c' object='elements_audiopanorama-audiopanorama.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiopanorama.c' object='elements_audiopanorama-audiopanorama.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -c -o elements_audiopanorama-audiopanorama.o `test -f 'elements/audiopanorama.c' || echo '$(srcdir)/'`elements/audiopanorama.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -c -o elements_audiopanorama-audiopanorama.o `test -f 'elements/audiopanorama.c' || echo '$(srcdir)/'`elements/audiopanorama.c elements_audiopanorama-audiopanorama.obj: elements/audiopanorama.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -MT elements_audiopanorama-audiopanorama.obj -MD -MP -MF $(DEPDIR)/elements_audiopanorama-audiopanorama.Tpo -c -o elements_audiopanorama-audiopanorama.obj `if test -f 'elements/audiopanorama.c'; then $(CYGPATH_W) 'elements/audiopanorama.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiopanorama.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiopanorama-audiopanorama.Tpo $(DEPDIR)/elements_audiopanorama-audiopanorama.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiopanorama.c' object='elements_audiopanorama-audiopanorama.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiopanorama.c' object='elements_audiopanorama-audiopanorama.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -c -o elements_audiopanorama-audiopanorama.obj `if test -f 'elements/audiopanorama.c'; then $(CYGPATH_W) 'elements/audiopanorama.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiopanorama.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiopanorama_CFLAGS) $(CFLAGS) -c -o elements_audiopanorama-audiopanorama.obj `if test -f 'elements/audiopanorama.c'; then $(CYGPATH_W) 'elements/audiopanorama.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiopanorama.c'; fi` audiowsincband.o: elements/audiowsincband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiowsincband.o -MD -MP -MF $(DEPDIR)/audiowsincband.Tpo -c -o audiowsincband.o `test -f 'elements/audiowsincband.c' || echo '$(srcdir)/'`elements/audiowsincband.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiowsincband.Tpo $(DEPDIR)/audiowsincband.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiowsincband.c' object='audiowsincband.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiowsincband.c' object='audiowsincband.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsincband.o `test -f 'elements/audiowsincband.c' || echo '$(srcdir)/'`elements/audiowsincband.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsincband.o `test -f 'elements/audiowsincband.c' || echo '$(srcdir)/'`elements/audiowsincband.c audiowsincband.obj: elements/audiowsincband.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiowsincband.obj -MD -MP -MF $(DEPDIR)/audiowsincband.Tpo -c -o audiowsincband.obj `if test -f 'elements/audiowsincband.c'; then $(CYGPATH_W) 'elements/audiowsincband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsincband.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiowsincband.Tpo $(DEPDIR)/audiowsincband.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiowsincband.c' object='audiowsincband.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiowsincband.c' object='audiowsincband.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsincband.obj `if test -f 'elements/audiowsincband.c'; then $(CYGPATH_W) 'elements/audiowsincband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsincband.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsincband.obj `if test -f 'elements/audiowsincband.c'; then $(CYGPATH_W) 'elements/audiowsincband.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsincband.c'; fi` audiowsinclimit.o: elements/audiowsinclimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiowsinclimit.o -MD -MP -MF $(DEPDIR)/audiowsinclimit.Tpo -c -o audiowsinclimit.o `test -f 'elements/audiowsinclimit.c' || echo '$(srcdir)/'`elements/audiowsinclimit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiowsinclimit.Tpo $(DEPDIR)/audiowsinclimit.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiowsinclimit.c' object='audiowsinclimit.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiowsinclimit.c' object='audiowsinclimit.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsinclimit.o `test -f 'elements/audiowsinclimit.c' || echo '$(srcdir)/'`elements/audiowsinclimit.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsinclimit.o `test -f 'elements/audiowsinclimit.c' || echo '$(srcdir)/'`elements/audiowsinclimit.c audiowsinclimit.obj: elements/audiowsinclimit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiowsinclimit.obj -MD -MP -MF $(DEPDIR)/audiowsinclimit.Tpo -c -o audiowsinclimit.obj `if test -f 'elements/audiowsinclimit.c'; then $(CYGPATH_W) 'elements/audiowsinclimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsinclimit.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiowsinclimit.Tpo $(DEPDIR)/audiowsinclimit.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiowsinclimit.c' object='audiowsinclimit.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiowsinclimit.c' object='audiowsinclimit.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsinclimit.obj `if test -f 'elements/audiowsinclimit.c'; then $(CYGPATH_W) 'elements/audiowsinclimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsinclimit.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiowsinclimit.obj `if test -f 'elements/audiowsinclimit.c'; then $(CYGPATH_W) 'elements/audiowsinclimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsinclimit.c'; fi` autodetect.o: elements/autodetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autodetect.o -MD -MP -MF $(DEPDIR)/autodetect.Tpo -c -o autodetect.o `test -f 'elements/autodetect.c' || echo '$(srcdir)/'`elements/autodetect.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autodetect.Tpo $(DEPDIR)/autodetect.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autodetect.c' object='autodetect.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autodetect.c' object='autodetect.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autodetect.o `test -f 'elements/autodetect.c' || echo '$(srcdir)/'`elements/autodetect.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autodetect.o `test -f 'elements/autodetect.c' || echo '$(srcdir)/'`elements/autodetect.c autodetect.obj: elements/autodetect.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT autodetect.obj -MD -MP -MF $(DEPDIR)/autodetect.Tpo -c -o autodetect.obj `if test -f 'elements/autodetect.c'; then $(CYGPATH_W) 'elements/autodetect.c'; else $(CYGPATH_W) '$(srcdir)/elements/autodetect.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/autodetect.Tpo $(DEPDIR)/autodetect.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/autodetect.c' object='autodetect.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autodetect.c' object='autodetect.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autodetect.obj `if test -f 'elements/autodetect.c'; then $(CYGPATH_W) 'elements/autodetect.c'; else $(CYGPATH_W) '$(srcdir)/elements/autodetect.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o autodetect.obj `if test -f 'elements/autodetect.c'; then $(CYGPATH_W) 'elements/autodetect.c'; else $(CYGPATH_W) '$(srcdir)/elements/autodetect.c'; fi` avimux.o: elements/avimux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avimux.o -MD -MP -MF $(DEPDIR)/avimux.Tpo -c -o avimux.o `test -f 'elements/avimux.c' || echo '$(srcdir)/'`elements/avimux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avimux.Tpo $(DEPDIR)/avimux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/avimux.c' object='avimux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/avimux.c' object='avimux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avimux.o `test -f 'elements/avimux.c' || echo '$(srcdir)/'`elements/avimux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avimux.o `test -f 'elements/avimux.c' || echo '$(srcdir)/'`elements/avimux.c avimux.obj: elements/avimux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avimux.obj -MD -MP -MF $(DEPDIR)/avimux.Tpo -c -o avimux.obj `if test -f 'elements/avimux.c'; then $(CYGPATH_W) 'elements/avimux.c'; else $(CYGPATH_W) '$(srcdir)/elements/avimux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avimux.Tpo $(DEPDIR)/avimux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/avimux.c' object='avimux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/avimux.c' object='avimux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avimux.obj `if test -f 'elements/avimux.c'; then $(CYGPATH_W) 'elements/avimux.c'; else $(CYGPATH_W) '$(srcdir)/elements/avimux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avimux.obj `if test -f 'elements/avimux.c'; then $(CYGPATH_W) 'elements/avimux.c'; else $(CYGPATH_W) '$(srcdir)/elements/avimux.c'; fi` avisubtitle.o: elements/avisubtitle.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avisubtitle.o -MD -MP -MF $(DEPDIR)/avisubtitle.Tpo -c -o avisubtitle.o `test -f 'elements/avisubtitle.c' || echo '$(srcdir)/'`elements/avisubtitle.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avisubtitle.Tpo $(DEPDIR)/avisubtitle.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/avisubtitle.c' object='avisubtitle.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/avisubtitle.c' object='avisubtitle.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avisubtitle.o `test -f 'elements/avisubtitle.c' || echo '$(srcdir)/'`elements/avisubtitle.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avisubtitle.o `test -f 'elements/avisubtitle.c' || echo '$(srcdir)/'`elements/avisubtitle.c avisubtitle.obj: elements/avisubtitle.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avisubtitle.obj -MD -MP -MF $(DEPDIR)/avisubtitle.Tpo -c -o avisubtitle.obj `if test -f 'elements/avisubtitle.c'; then $(CYGPATH_W) 'elements/avisubtitle.c'; else $(CYGPATH_W) '$(srcdir)/elements/avisubtitle.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/avisubtitle.Tpo $(DEPDIR)/avisubtitle.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/avisubtitle.c' object='avisubtitle.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/avisubtitle.c' object='avisubtitle.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avisubtitle.obj `if test -f 'elements/avisubtitle.c'; then $(CYGPATH_W) 'elements/avisubtitle.c'; else $(CYGPATH_W) '$(srcdir)/elements/avisubtitle.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avisubtitle.obj `if test -f 'elements/avisubtitle.c'; then $(CYGPATH_W) 'elements/avisubtitle.c'; else $(CYGPATH_W) '$(srcdir)/elements/avisubtitle.c'; fi` capssetter.o: elements/capssetter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capssetter.o -MD -MP -MF $(DEPDIR)/capssetter.Tpo -c -o capssetter.o `test -f 'elements/capssetter.c' || echo '$(srcdir)/'`elements/capssetter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/capssetter.Tpo $(DEPDIR)/capssetter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/capssetter.c' object='capssetter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/capssetter.c' object='capssetter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capssetter.o `test -f 'elements/capssetter.c' || echo '$(srcdir)/'`elements/capssetter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capssetter.o `test -f 'elements/capssetter.c' || echo '$(srcdir)/'`elements/capssetter.c capssetter.obj: elements/capssetter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capssetter.obj -MD -MP -MF $(DEPDIR)/capssetter.Tpo -c -o capssetter.obj `if test -f 'elements/capssetter.c'; then $(CYGPATH_W) 'elements/capssetter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capssetter.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/capssetter.Tpo $(DEPDIR)/capssetter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/capssetter.c' object='capssetter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/capssetter.c' object='capssetter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capssetter.obj `if test -f 'elements/capssetter.c'; then $(CYGPATH_W) 'elements/capssetter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capssetter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capssetter.obj `if test -f 'elements/capssetter.c'; then $(CYGPATH_W) 'elements/capssetter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capssetter.c'; fi` elements_cmmldec-cmmldec.o: elements/cmmldec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -MT elements_cmmldec-cmmldec.o -MD -MP -MF $(DEPDIR)/elements_cmmldec-cmmldec.Tpo -c -o elements_cmmldec-cmmldec.o `test -f 'elements/cmmldec.c' || echo '$(srcdir)/'`elements/cmmldec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_cmmldec-cmmldec.Tpo $(DEPDIR)/elements_cmmldec-cmmldec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/cmmldec.c' object='elements_cmmldec-cmmldec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/cmmldec.c' object='elements_cmmldec-cmmldec.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -c -o elements_cmmldec-cmmldec.o `test -f 'elements/cmmldec.c' || echo '$(srcdir)/'`elements/cmmldec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -c -o elements_cmmldec-cmmldec.o `test -f 'elements/cmmldec.c' || echo '$(srcdir)/'`elements/cmmldec.c elements_cmmldec-cmmldec.obj: elements/cmmldec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -MT elements_cmmldec-cmmldec.obj -MD -MP -MF $(DEPDIR)/elements_cmmldec-cmmldec.Tpo -c -o elements_cmmldec-cmmldec.obj `if test -f 'elements/cmmldec.c'; then $(CYGPATH_W) 'elements/cmmldec.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmldec.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_cmmldec-cmmldec.Tpo $(DEPDIR)/elements_cmmldec-cmmldec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/cmmldec.c' object='elements_cmmldec-cmmldec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/cmmldec.c' object='elements_cmmldec-cmmldec.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -c -o elements_cmmldec-cmmldec.obj `if test -f 'elements/cmmldec.c'; then $(CYGPATH_W) 'elements/cmmldec.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmldec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmldec_CFLAGS) $(CFLAGS) -c -o elements_cmmldec-cmmldec.obj `if test -f 'elements/cmmldec.c'; then $(CYGPATH_W) 'elements/cmmldec.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmldec.c'; fi` elements_cmmlenc-cmmlenc.o: elements/cmmlenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -MT elements_cmmlenc-cmmlenc.o -MD -MP -MF $(DEPDIR)/elements_cmmlenc-cmmlenc.Tpo -c -o elements_cmmlenc-cmmlenc.o `test -f 'elements/cmmlenc.c' || echo '$(srcdir)/'`elements/cmmlenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_cmmlenc-cmmlenc.Tpo $(DEPDIR)/elements_cmmlenc-cmmlenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/cmmlenc.c' object='elements_cmmlenc-cmmlenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/cmmlenc.c' object='elements_cmmlenc-cmmlenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -c -o elements_cmmlenc-cmmlenc.o `test -f 'elements/cmmlenc.c' || echo '$(srcdir)/'`elements/cmmlenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -c -o elements_cmmlenc-cmmlenc.o `test -f 'elements/cmmlenc.c' || echo '$(srcdir)/'`elements/cmmlenc.c elements_cmmlenc-cmmlenc.obj: elements/cmmlenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -MT elements_cmmlenc-cmmlenc.obj -MD -MP -MF $(DEPDIR)/elements_cmmlenc-cmmlenc.Tpo -c -o elements_cmmlenc-cmmlenc.obj `if test -f 'elements/cmmlenc.c'; then $(CYGPATH_W) 'elements/cmmlenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmlenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_cmmlenc-cmmlenc.Tpo $(DEPDIR)/elements_cmmlenc-cmmlenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/cmmlenc.c' object='elements_cmmlenc-cmmlenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/cmmlenc.c' object='elements_cmmlenc-cmmlenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -c -o elements_cmmlenc-cmmlenc.obj `if test -f 'elements/cmmlenc.c'; then $(CYGPATH_W) 'elements/cmmlenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmlenc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_cmmlenc_CFLAGS) $(CFLAGS) -c -o elements_cmmlenc-cmmlenc.obj `if test -f 'elements/cmmlenc.c'; then $(CYGPATH_W) 'elements/cmmlenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/cmmlenc.c'; fi` elements_deinterlace-deinterlace.o: elements/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -MT elements_deinterlace-deinterlace.o -MD -MP -MF $(DEPDIR)/elements_deinterlace-deinterlace.Tpo -c -o elements_deinterlace-deinterlace.o `test -f 'elements/deinterlace.c' || echo '$(srcdir)/'`elements/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_deinterlace-deinterlace.Tpo $(DEPDIR)/elements_deinterlace-deinterlace.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/deinterlace.c' object='elements_deinterlace-deinterlace.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/deinterlace.c' object='elements_deinterlace-deinterlace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -c -o elements_deinterlace-deinterlace.o `test -f 'elements/deinterlace.c' || echo '$(srcdir)/'`elements/deinterlace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -c -o elements_deinterlace-deinterlace.o `test -f 'elements/deinterlace.c' || echo '$(srcdir)/'`elements/deinterlace.c elements_deinterlace-deinterlace.obj: elements/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -MT elements_deinterlace-deinterlace.obj -MD -MP -MF $(DEPDIR)/elements_deinterlace-deinterlace.Tpo -c -o elements_deinterlace-deinterlace.obj `if test -f 'elements/deinterlace.c'; then $(CYGPATH_W) 'elements/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterlace.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_deinterlace-deinterlace.Tpo $(DEPDIR)/elements_deinterlace-deinterlace.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/deinterlace.c' object='elements_deinterlace-deinterlace.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/deinterlace.c' object='elements_deinterlace-deinterlace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -c -o elements_deinterlace-deinterlace.obj `if test -f 'elements/deinterlace.c'; then $(CYGPATH_W) 'elements/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterlace.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -c -o elements_deinterlace-deinterlace.obj `if test -f 'elements/deinterlace.c'; then $(CYGPATH_W) 'elements/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterlace.c'; fi` elements_deinterleave-deinterleave.o: elements/deinterleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -MT elements_deinterleave-deinterleave.o -MD -MP -MF $(DEPDIR)/elements_deinterleave-deinterleave.Tpo -c -o elements_deinterleave-deinterleave.o `test -f 'elements/deinterleave.c' || echo '$(srcdir)/'`elements/deinterleave.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_deinterleave-deinterleave.Tpo $(DEPDIR)/elements_deinterleave-deinterleave.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/deinterleave.c' object='elements_deinterleave-deinterleave.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/deinterleave.c' object='elements_deinterleave-deinterleave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.o `test -f 'elements/deinterleave.c' || echo '$(srcdir)/'`elements/deinterleave.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.o `test -f 'elements/deinterleave.c' || echo '$(srcdir)/'`elements/deinterleave.c elements_deinterleave-deinterleave.obj: elements/deinterleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -MT elements_deinterleave-deinterleave.obj -MD -MP -MF $(DEPDIR)/elements_deinterleave-deinterleave.Tpo -c -o elements_deinterleave-deinterleave.obj `if test -f 'elements/deinterleave.c'; then $(CYGPATH_W) 'elements/deinterleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterleave.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_deinterleave-deinterleave.Tpo $(DEPDIR)/elements_deinterleave-deinterleave.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/deinterleave.c' object='elements_deinterleave-deinterleave.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/deinterleave.c' object='elements_deinterleave-deinterleave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.obj `if test -f 'elements/deinterleave.c'; then $(CYGPATH_W) 'elements/deinterleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterleave.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterleave_CFLAGS) $(CFLAGS) -c -o elements_deinterleave-deinterleave.obj `if test -f 'elements/deinterleave.c'; then $(CYGPATH_W) 'elements/deinterleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/deinterleave.c'; fi` equalizer.o: elements/equalizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT equalizer.o -MD -MP -MF $(DEPDIR)/equalizer.Tpo -c -o equalizer.o `test -f 'elements/equalizer.c' || echo '$(srcdir)/'`elements/equalizer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/equalizer.Tpo $(DEPDIR)/equalizer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/equalizer.c' object='equalizer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/equalizer.c' object='equalizer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o equalizer.o `test -f 'elements/equalizer.c' || echo '$(srcdir)/'`elements/equalizer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o equalizer.o `test -f 'elements/equalizer.c' || echo '$(srcdir)/'`elements/equalizer.c equalizer.obj: elements/equalizer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT equalizer.obj -MD -MP -MF $(DEPDIR)/equalizer.Tpo -c -o equalizer.obj `if test -f 'elements/equalizer.c'; then $(CYGPATH_W) 'elements/equalizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/equalizer.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/equalizer.Tpo $(DEPDIR)/equalizer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/equalizer.c' object='equalizer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/equalizer.c' object='equalizer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o equalizer.obj `if test -f 'elements/equalizer.c'; then $(CYGPATH_W) 'elements/equalizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/equalizer.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o equalizer.obj `if test -f 'elements/equalizer.c'; then $(CYGPATH_W) 'elements/equalizer.c'; else $(CYGPATH_W) '$(srcdir)/elements/equalizer.c'; fi` flacparse.o: elements/flacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flacparse.o -MD -MP -MF $(DEPDIR)/flacparse.Tpo -c -o flacparse.o `test -f 'elements/flacparse.c' || echo '$(srcdir)/'`elements/flacparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flacparse.Tpo $(DEPDIR)/flacparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flacparse.c' object='flacparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flacparse.c' object='flacparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacparse.o `test -f 'elements/flacparse.c' || echo '$(srcdir)/'`elements/flacparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacparse.o `test -f 'elements/flacparse.c' || echo '$(srcdir)/'`elements/flacparse.c flacparse.obj: elements/flacparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flacparse.obj -MD -MP -MF $(DEPDIR)/flacparse.Tpo -c -o flacparse.obj `if test -f 'elements/flacparse.c'; then $(CYGPATH_W) 'elements/flacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/flacparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flacparse.Tpo $(DEPDIR)/flacparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flacparse.c' object='flacparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flacparse.c' object='flacparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacparse.obj `if test -f 'elements/flacparse.c'; then $(CYGPATH_W) 'elements/flacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/flacparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacparse.obj `if test -f 'elements/flacparse.c'; then $(CYGPATH_W) 'elements/flacparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/flacparse.c'; fi` flvdemux.o: elements/flvdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flvdemux.o -MD -MP -MF $(DEPDIR)/flvdemux.Tpo -c -o flvdemux.o `test -f 'elements/flvdemux.c' || echo '$(srcdir)/'`elements/flvdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flvdemux.Tpo $(DEPDIR)/flvdemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flvdemux.c' object='flvdemux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flvdemux.c' object='flvdemux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvdemux.o `test -f 'elements/flvdemux.c' || echo '$(srcdir)/'`elements/flvdemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvdemux.o `test -f 'elements/flvdemux.c' || echo '$(srcdir)/'`elements/flvdemux.c flvdemux.obj: elements/flvdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flvdemux.obj -MD -MP -MF $(DEPDIR)/flvdemux.Tpo -c -o flvdemux.obj `if test -f 'elements/flvdemux.c'; then $(CYGPATH_W) 'elements/flvdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvdemux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flvdemux.Tpo $(DEPDIR)/flvdemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flvdemux.c' object='flvdemux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flvdemux.c' object='flvdemux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvdemux.obj `if test -f 'elements/flvdemux.c'; then $(CYGPATH_W) 'elements/flvdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvdemux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvdemux.obj `if test -f 'elements/flvdemux.c'; then $(CYGPATH_W) 'elements/flvdemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvdemux.c'; fi` flvmux.o: elements/flvmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flvmux.o -MD -MP -MF $(DEPDIR)/flvmux.Tpo -c -o flvmux.o `test -f 'elements/flvmux.c' || echo '$(srcdir)/'`elements/flvmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flvmux.Tpo $(DEPDIR)/flvmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flvmux.c' object='flvmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flvmux.c' object='flvmux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvmux.o `test -f 'elements/flvmux.c' || echo '$(srcdir)/'`elements/flvmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvmux.o `test -f 'elements/flvmux.c' || echo '$(srcdir)/'`elements/flvmux.c flvmux.obj: elements/flvmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flvmux.obj -MD -MP -MF $(DEPDIR)/flvmux.Tpo -c -o flvmux.obj `if test -f 'elements/flvmux.c'; then $(CYGPATH_W) 'elements/flvmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flvmux.Tpo $(DEPDIR)/flvmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/flvmux.c' object='flvmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/flvmux.c' object='flvmux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvmux.obj `if test -f 'elements/flvmux.c'; then $(CYGPATH_W) 'elements/flvmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flvmux.obj `if test -f 'elements/flvmux.c'; then $(CYGPATH_W) 'elements/flvmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/flvmux.c'; fi` elements_gdkpixbufsink-gdkpixbufsink.o: elements/gdkpixbufsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -MT elements_gdkpixbufsink-gdkpixbufsink.o -MD -MP -MF $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Tpo -c -o elements_gdkpixbufsink-gdkpixbufsink.o `test -f 'elements/gdkpixbufsink.c' || echo '$(srcdir)/'`elements/gdkpixbufsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Tpo $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdkpixbufsink.c' object='elements_gdkpixbufsink-gdkpixbufsink.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdkpixbufsink.c' object='elements_gdkpixbufsink-gdkpixbufsink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -c -o elements_gdkpixbufsink-gdkpixbufsink.o `test -f 'elements/gdkpixbufsink.c' || echo '$(srcdir)/'`elements/gdkpixbufsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -c -o elements_gdkpixbufsink-gdkpixbufsink.o `test -f 'elements/gdkpixbufsink.c' || echo '$(srcdir)/'`elements/gdkpixbufsink.c elements_gdkpixbufsink-gdkpixbufsink.obj: elements/gdkpixbufsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -MT elements_gdkpixbufsink-gdkpixbufsink.obj -MD -MP -MF $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Tpo -c -o elements_gdkpixbufsink-gdkpixbufsink.obj `if test -f 'elements/gdkpixbufsink.c'; then $(CYGPATH_W) 'elements/gdkpixbufsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdkpixbufsink.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Tpo $(DEPDIR)/elements_gdkpixbufsink-gdkpixbufsink.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdkpixbufsink.c' object='elements_gdkpixbufsink-gdkpixbufsink.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdkpixbufsink.c' object='elements_gdkpixbufsink-gdkpixbufsink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -c -o elements_gdkpixbufsink-gdkpixbufsink.obj `if test -f 'elements/gdkpixbufsink.c'; then $(CYGPATH_W) 'elements/gdkpixbufsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdkpixbufsink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_gdkpixbufsink_CFLAGS) $(CFLAGS) -c -o elements_gdkpixbufsink-gdkpixbufsink.obj `if test -f 'elements/gdkpixbufsink.c'; then $(CYGPATH_W) 'elements/gdkpixbufsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdkpixbufsink.c'; fi` icydemux.o: elements/icydemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT icydemux.o -MD -MP -MF $(DEPDIR)/icydemux.Tpo -c -o icydemux.o `test -f 'elements/icydemux.c' || echo '$(srcdir)/'`elements/icydemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/icydemux.Tpo $(DEPDIR)/icydemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/icydemux.c' object='icydemux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/icydemux.c' object='icydemux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o icydemux.o `test -f 'elements/icydemux.c' || echo '$(srcdir)/'`elements/icydemux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o icydemux.o `test -f 'elements/icydemux.c' || echo '$(srcdir)/'`elements/icydemux.c icydemux.obj: elements/icydemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT icydemux.obj -MD -MP -MF $(DEPDIR)/icydemux.Tpo -c -o icydemux.obj `if test -f 'elements/icydemux.c'; then $(CYGPATH_W) 'elements/icydemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/icydemux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/icydemux.Tpo $(DEPDIR)/icydemux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/icydemux.c' object='icydemux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/icydemux.c' object='icydemux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o icydemux.obj `if test -f 'elements/icydemux.c'; then $(CYGPATH_W) 'elements/icydemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/icydemux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o icydemux.obj `if test -f 'elements/icydemux.c'; then $(CYGPATH_W) 'elements/icydemux.c'; else $(CYGPATH_W) '$(srcdir)/elements/icydemux.c'; fi` id3demux.o: elements/id3demux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3demux.o -MD -MP -MF $(DEPDIR)/id3demux.Tpo -c -o id3demux.o `test -f 'elements/id3demux.c' || echo '$(srcdir)/'`elements/id3demux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3demux.Tpo $(DEPDIR)/id3demux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3demux.c' object='id3demux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3demux.c' object='id3demux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3demux.o `test -f 'elements/id3demux.c' || echo '$(srcdir)/'`elements/id3demux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3demux.o `test -f 'elements/id3demux.c' || echo '$(srcdir)/'`elements/id3demux.c id3demux.obj: elements/id3demux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3demux.obj -MD -MP -MF $(DEPDIR)/id3demux.Tpo -c -o id3demux.obj `if test -f 'elements/id3demux.c'; then $(CYGPATH_W) 'elements/id3demux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3demux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3demux.Tpo $(DEPDIR)/id3demux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3demux.c' object='id3demux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3demux.c' object='id3demux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3demux.obj `if test -f 'elements/id3demux.c'; then $(CYGPATH_W) 'elements/id3demux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3demux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3demux.obj `if test -f 'elements/id3demux.c'; then $(CYGPATH_W) 'elements/id3demux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3demux.c'; fi` id3v2mux.o: elements/id3v2mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3v2mux.o -MD -MP -MF $(DEPDIR)/id3v2mux.Tpo -c -o id3v2mux.o `test -f 'elements/id3v2mux.c' || echo '$(srcdir)/'`elements/id3v2mux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3v2mux.Tpo $(DEPDIR)/id3v2mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3v2mux.c' object='id3v2mux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3v2mux.c' object='id3v2mux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3v2mux.o `test -f 'elements/id3v2mux.c' || echo '$(srcdir)/'`elements/id3v2mux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3v2mux.o `test -f 'elements/id3v2mux.c' || echo '$(srcdir)/'`elements/id3v2mux.c id3v2mux.obj: elements/id3v2mux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT id3v2mux.obj -MD -MP -MF $(DEPDIR)/id3v2mux.Tpo -c -o id3v2mux.obj `if test -f 'elements/id3v2mux.c'; then $(CYGPATH_W) 'elements/id3v2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3v2mux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/id3v2mux.Tpo $(DEPDIR)/id3v2mux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/id3v2mux.c' object='id3v2mux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/id3v2mux.c' object='id3v2mux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3v2mux.obj `if test -f 'elements/id3v2mux.c'; then $(CYGPATH_W) 'elements/id3v2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3v2mux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o id3v2mux.obj `if test -f 'elements/id3v2mux.c'; then $(CYGPATH_W) 'elements/id3v2mux.c'; else $(CYGPATH_W) '$(srcdir)/elements/id3v2mux.c'; fi` elements_imagefreeze-imagefreeze.o: elements/imagefreeze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -MT elements_imagefreeze-imagefreeze.o -MD -MP -MF $(DEPDIR)/elements_imagefreeze-imagefreeze.Tpo -c -o elements_imagefreeze-imagefreeze.o `test -f 'elements/imagefreeze.c' || echo '$(srcdir)/'`elements/imagefreeze.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_imagefreeze-imagefreeze.Tpo $(DEPDIR)/elements_imagefreeze-imagefreeze.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/imagefreeze.c' object='elements_imagefreeze-imagefreeze.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/imagefreeze.c' object='elements_imagefreeze-imagefreeze.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -c -o elements_imagefreeze-imagefreeze.o `test -f 'elements/imagefreeze.c' || echo '$(srcdir)/'`elements/imagefreeze.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -c -o elements_imagefreeze-imagefreeze.o `test -f 'elements/imagefreeze.c' || echo '$(srcdir)/'`elements/imagefreeze.c elements_imagefreeze-imagefreeze.obj: elements/imagefreeze.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -MT elements_imagefreeze-imagefreeze.obj -MD -MP -MF $(DEPDIR)/elements_imagefreeze-imagefreeze.Tpo -c -o elements_imagefreeze-imagefreeze.obj `if test -f 'elements/imagefreeze.c'; then $(CYGPATH_W) 'elements/imagefreeze.c'; else $(CYGPATH_W) '$(srcdir)/elements/imagefreeze.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_imagefreeze-imagefreeze.Tpo $(DEPDIR)/elements_imagefreeze-imagefreeze.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/imagefreeze.c' object='elements_imagefreeze-imagefreeze.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/imagefreeze.c' object='elements_imagefreeze-imagefreeze.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -c -o elements_imagefreeze-imagefreeze.obj `if test -f 'elements/imagefreeze.c'; then $(CYGPATH_W) 'elements/imagefreeze.c'; else $(CYGPATH_W) '$(srcdir)/elements/imagefreeze.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_imagefreeze_CFLAGS) $(CFLAGS) -c -o elements_imagefreeze-imagefreeze.obj `if test -f 'elements/imagefreeze.c'; then $(CYGPATH_W) 'elements/imagefreeze.c'; else $(CYGPATH_W) '$(srcdir)/elements/imagefreeze.c'; fi` elements_interleave-interleave.o: elements/interleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -MT elements_interleave-interleave.o -MD -MP -MF $(DEPDIR)/elements_interleave-interleave.Tpo -c -o elements_interleave-interleave.o `test -f 'elements/interleave.c' || echo '$(srcdir)/'`elements/interleave.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_interleave-interleave.Tpo $(DEPDIR)/elements_interleave-interleave.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/interleave.c' object='elements_interleave-interleave.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/interleave.c' object='elements_interleave-interleave.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -c -o elements_interleave-interleave.o `test -f 'elements/interleave.c' || echo '$(srcdir)/'`elements/interleave.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -c -o elements_interleave-interleave.o `test -f 'elements/interleave.c' || echo '$(srcdir)/'`elements/interleave.c elements_interleave-interleave.obj: elements/interleave.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -MT elements_interleave-interleave.obj -MD -MP -MF $(DEPDIR)/elements_interleave-interleave.Tpo -c -o elements_interleave-interleave.obj `if test -f 'elements/interleave.c'; then $(CYGPATH_W) 'elements/interleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/interleave.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_interleave-interleave.Tpo $(DEPDIR)/elements_interleave-interleave.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/interleave.c' object='elements_interleave-interleave.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/interleave.c' object='elements_interleave-interleave.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -c -o elements_interleave-interleave.obj `if test -f 'elements/interleave.c'; then $(CYGPATH_W) 'elements/interleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/interleave.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_interleave_CFLAGS) $(CFLAGS) -c -o elements_interleave-interleave.obj `if test -f 'elements/interleave.c'; then $(CYGPATH_W) 'elements/interleave.c'; else $(CYGPATH_W) '$(srcdir)/elements/interleave.c'; fi` elements_jpegenc-jpegenc.o: elements/jpegenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -MT elements_jpegenc-jpegenc.o -MD -MP -MF $(DEPDIR)/elements_jpegenc-jpegenc.Tpo -c -o elements_jpegenc-jpegenc.o `test -f 'elements/jpegenc.c' || echo '$(srcdir)/'`elements/jpegenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_jpegenc-jpegenc.Tpo $(DEPDIR)/elements_jpegenc-jpegenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jpegenc.c' object='elements_jpegenc-jpegenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jpegenc.c' object='elements_jpegenc-jpegenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -c -o elements_jpegenc-jpegenc.o `test -f 'elements/jpegenc.c' || echo '$(srcdir)/'`elements/jpegenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -c -o elements_jpegenc-jpegenc.o `test -f 'elements/jpegenc.c' || echo '$(srcdir)/'`elements/jpegenc.c elements_jpegenc-jpegenc.obj: elements/jpegenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -MT elements_jpegenc-jpegenc.obj -MD -MP -MF $(DEPDIR)/elements_jpegenc-jpegenc.Tpo -c -o elements_jpegenc-jpegenc.obj `if test -f 'elements/jpegenc.c'; then $(CYGPATH_W) 'elements/jpegenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_jpegenc-jpegenc.Tpo $(DEPDIR)/elements_jpegenc-jpegenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/jpegenc.c' object='elements_jpegenc-jpegenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/jpegenc.c' object='elements_jpegenc-jpegenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -c -o elements_jpegenc-jpegenc.obj `if test -f 'elements/jpegenc.c'; then $(CYGPATH_W) 'elements/jpegenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegenc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_jpegenc_CFLAGS) $(CFLAGS) -c -o elements_jpegenc-jpegenc.obj `if test -f 'elements/jpegenc.c'; then $(CYGPATH_W) 'elements/jpegenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/jpegenc.c'; fi` level.o: elements/level.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT level.o -MD -MP -MF $(DEPDIR)/level.Tpo -c -o level.o `test -f 'elements/level.c' || echo '$(srcdir)/'`elements/level.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/level.Tpo $(DEPDIR)/level.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/level.c' object='level.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/level.c' object='level.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o level.o `test -f 'elements/level.c' || echo '$(srcdir)/'`elements/level.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o level.o `test -f 'elements/level.c' || echo '$(srcdir)/'`elements/level.c level.obj: elements/level.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT level.obj -MD -MP -MF $(DEPDIR)/level.Tpo -c -o level.obj `if test -f 'elements/level.c'; then $(CYGPATH_W) 'elements/level.c'; else $(CYGPATH_W) '$(srcdir)/elements/level.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/level.Tpo $(DEPDIR)/level.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/level.c' object='level.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/level.c' object='level.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o level.obj `if test -f 'elements/level.c'; then $(CYGPATH_W) 'elements/level.c'; else $(CYGPATH_W) '$(srcdir)/elements/level.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o level.obj `if test -f 'elements/level.c'; then $(CYGPATH_W) 'elements/level.c'; else $(CYGPATH_W) '$(srcdir)/elements/level.c'; fi` matroskamux.o: elements/matroskamux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT matroskamux.o -MD -MP -MF $(DEPDIR)/matroskamux.Tpo -c -o matroskamux.o `test -f 'elements/matroskamux.c' || echo '$(srcdir)/'`elements/matroskamux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/matroskamux.Tpo $(DEPDIR)/matroskamux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/matroskamux.c' object='matroskamux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/matroskamux.c' object='matroskamux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskamux.o `test -f 'elements/matroskamux.c' || echo '$(srcdir)/'`elements/matroskamux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskamux.o `test -f 'elements/matroskamux.c' || echo '$(srcdir)/'`elements/matroskamux.c matroskamux.obj: elements/matroskamux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT matroskamux.obj -MD -MP -MF $(DEPDIR)/matroskamux.Tpo -c -o matroskamux.obj `if test -f 'elements/matroskamux.c'; then $(CYGPATH_W) 'elements/matroskamux.c'; else $(CYGPATH_W) '$(srcdir)/elements/matroskamux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/matroskamux.Tpo $(DEPDIR)/matroskamux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/matroskamux.c' object='matroskamux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/matroskamux.c' object='matroskamux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskamux.obj `if test -f 'elements/matroskamux.c'; then $(CYGPATH_W) 'elements/matroskamux.c'; else $(CYGPATH_W) '$(srcdir)/elements/matroskamux.c'; fi` + +matroskaparse.o: elements/matroskaparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT matroskaparse.o -MD -MP -MF $(DEPDIR)/matroskaparse.Tpo -c -o matroskaparse.o `test -f 'elements/matroskaparse.c' || echo '$(srcdir)/'`elements/matroskaparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/matroskaparse.Tpo $(DEPDIR)/matroskaparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/matroskaparse.c' object='matroskaparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskamux.obj `if test -f 'elements/matroskamux.c'; then $(CYGPATH_W) 'elements/matroskamux.c'; else $(CYGPATH_W) '$(srcdir)/elements/matroskamux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskaparse.o `test -f 'elements/matroskaparse.c' || echo '$(srcdir)/'`elements/matroskaparse.c + +matroskaparse.obj: elements/matroskaparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT matroskaparse.obj -MD -MP -MF $(DEPDIR)/matroskaparse.Tpo -c -o matroskaparse.obj `if test -f 'elements/matroskaparse.c'; then $(CYGPATH_W) 'elements/matroskaparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/matroskaparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/matroskaparse.Tpo $(DEPDIR)/matroskaparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/matroskaparse.c' object='matroskaparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o matroskaparse.obj `if test -f 'elements/matroskaparse.c'; then $(CYGPATH_W) 'elements/matroskaparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/matroskaparse.c'; fi` mpegaudioparse.o: elements/mpegaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpegaudioparse.o -MD -MP -MF $(DEPDIR)/mpegaudioparse.Tpo -c -o mpegaudioparse.o `test -f 'elements/mpegaudioparse.c' || echo '$(srcdir)/'`elements/mpegaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpegaudioparse.Tpo $(DEPDIR)/mpegaudioparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mpegaudioparse.c' object='mpegaudioparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegaudioparse.c' object='mpegaudioparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.o `test -f 'elements/mpegaudioparse.c' || echo '$(srcdir)/'`elements/mpegaudioparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.o `test -f 'elements/mpegaudioparse.c' || echo '$(srcdir)/'`elements/mpegaudioparse.c mpegaudioparse.obj: elements/mpegaudioparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpegaudioparse.obj -MD -MP -MF $(DEPDIR)/mpegaudioparse.Tpo -c -o mpegaudioparse.obj `if test -f 'elements/mpegaudioparse.c'; then $(CYGPATH_W) 'elements/mpegaudioparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegaudioparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mpegaudioparse.Tpo $(DEPDIR)/mpegaudioparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/mpegaudioparse.c' object='mpegaudioparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/mpegaudioparse.c' object='mpegaudioparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.obj `if test -f 'elements/mpegaudioparse.c'; then $(CYGPATH_W) 'elements/mpegaudioparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegaudioparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpegaudioparse.obj `if test -f 'elements/mpegaudioparse.c'; then $(CYGPATH_W) 'elements/mpegaudioparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/mpegaudioparse.c'; fi` -multifile.o: elements/multifile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifile.o -MD -MP -MF $(DEPDIR)/multifile.Tpo -c -o multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/multifile.Tpo $(DEPDIR)/multifile.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/multifile.c' object='multifile.o' libtool=no @AMDEPBACKSLASH@ +elements_multifile-multifile.o: elements/multifile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -MT elements_multifile-multifile.o -MD -MP -MF $(DEPDIR)/elements_multifile-multifile.Tpo -c -o elements_multifile-multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_multifile-multifile.Tpo $(DEPDIR)/elements_multifile-multifile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/multifile.c' object='elements_multifile-multifile.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -c -o elements_multifile-multifile.o `test -f 'elements/multifile.c' || echo '$(srcdir)/'`elements/multifile.c -multifile.obj: elements/multifile.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifile.obj -MD -MP -MF $(DEPDIR)/multifile.Tpo -c -o multifile.obj `if test -f 'elements/multifile.c'; then $(CYGPATH_W) 'elements/multifile.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifile.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/multifile.Tpo $(DEPDIR)/multifile.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/multifile.c' object='multifile.obj' libtool=no @AMDEPBACKSLASH@ +elements_multifile-multifile.obj: elements/multifile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -MT elements_multifile-multifile.obj -MD -MP -MF $(DEPDIR)/elements_multifile-multifile.Tpo -c -o elements_multifile-multifile.obj `if test -f 'elements/multifile.c'; then $(CYGPATH_W) 'elements/multifile.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_multifile-multifile.Tpo $(DEPDIR)/elements_multifile-multifile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/multifile.c' object='elements_multifile-multifile.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifile.obj `if test -f 'elements/multifile.c'; then $(CYGPATH_W) 'elements/multifile.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifile.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_multifile_CFLAGS) $(CFLAGS) -c -o elements_multifile-multifile.obj `if test -f 'elements/multifile.c'; then $(CYGPATH_W) 'elements/multifile.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifile.c'; fi` elements_qtmux-qtmux.o: elements/qtmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -MT elements_qtmux-qtmux.o -MD -MP -MF $(DEPDIR)/elements_qtmux-qtmux.Tpo -c -o elements_qtmux-qtmux.o `test -f 'elements/qtmux.c' || echo '$(srcdir)/'`elements/qtmux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_qtmux-qtmux.Tpo $(DEPDIR)/elements_qtmux-qtmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/qtmux.c' object='elements_qtmux-qtmux.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/qtmux.c' object='elements_qtmux-qtmux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -c -o elements_qtmux-qtmux.o `test -f 'elements/qtmux.c' || echo '$(srcdir)/'`elements/qtmux.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -c -o elements_qtmux-qtmux.o `test -f 'elements/qtmux.c' || echo '$(srcdir)/'`elements/qtmux.c elements_qtmux-qtmux.obj: elements/qtmux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -MT elements_qtmux-qtmux.obj -MD -MP -MF $(DEPDIR)/elements_qtmux-qtmux.Tpo -c -o elements_qtmux-qtmux.obj `if test -f 'elements/qtmux.c'; then $(CYGPATH_W) 'elements/qtmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/qtmux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_qtmux-qtmux.Tpo $(DEPDIR)/elements_qtmux-qtmux.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/qtmux.c' object='elements_qtmux-qtmux.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/qtmux.c' object='elements_qtmux-qtmux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -c -o elements_qtmux-qtmux.obj `if test -f 'elements/qtmux.c'; then $(CYGPATH_W) 'elements/qtmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/qtmux.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_qtmux_CFLAGS) $(CFLAGS) -c -o elements_qtmux-qtmux.obj `if test -f 'elements/qtmux.c'; then $(CYGPATH_W) 'elements/qtmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/qtmux.c'; fi` rganalysis.o: elements/rganalysis.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rganalysis.o -MD -MP -MF $(DEPDIR)/rganalysis.Tpo -c -o rganalysis.o `test -f 'elements/rganalysis.c' || echo '$(srcdir)/'`elements/rganalysis.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rganalysis.Tpo $(DEPDIR)/rganalysis.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rganalysis.c' object='rganalysis.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rganalysis.c' object='rganalysis.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rganalysis.o `test -f 'elements/rganalysis.c' || echo '$(srcdir)/'`elements/rganalysis.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rganalysis.o `test -f 'elements/rganalysis.c' || echo '$(srcdir)/'`elements/rganalysis.c rganalysis.obj: elements/rganalysis.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rganalysis.obj -MD -MP -MF $(DEPDIR)/rganalysis.Tpo -c -o rganalysis.obj `if test -f 'elements/rganalysis.c'; then $(CYGPATH_W) 'elements/rganalysis.c'; else $(CYGPATH_W) '$(srcdir)/elements/rganalysis.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rganalysis.Tpo $(DEPDIR)/rganalysis.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rganalysis.c' object='rganalysis.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rganalysis.c' object='rganalysis.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rganalysis.obj `if test -f 'elements/rganalysis.c'; then $(CYGPATH_W) 'elements/rganalysis.c'; else $(CYGPATH_W) '$(srcdir)/elements/rganalysis.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rganalysis.obj `if test -f 'elements/rganalysis.c'; then $(CYGPATH_W) 'elements/rganalysis.c'; else $(CYGPATH_W) '$(srcdir)/elements/rganalysis.c'; fi` rglimiter.o: elements/rglimiter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rglimiter.o -MD -MP -MF $(DEPDIR)/rglimiter.Tpo -c -o rglimiter.o `test -f 'elements/rglimiter.c' || echo '$(srcdir)/'`elements/rglimiter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rglimiter.Tpo $(DEPDIR)/rglimiter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rglimiter.c' object='rglimiter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rglimiter.c' object='rglimiter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rglimiter.o `test -f 'elements/rglimiter.c' || echo '$(srcdir)/'`elements/rglimiter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rglimiter.o `test -f 'elements/rglimiter.c' || echo '$(srcdir)/'`elements/rglimiter.c rglimiter.obj: elements/rglimiter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rglimiter.obj -MD -MP -MF $(DEPDIR)/rglimiter.Tpo -c -o rglimiter.obj `if test -f 'elements/rglimiter.c'; then $(CYGPATH_W) 'elements/rglimiter.c'; else $(CYGPATH_W) '$(srcdir)/elements/rglimiter.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rglimiter.Tpo $(DEPDIR)/rglimiter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rglimiter.c' object='rglimiter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rglimiter.c' object='rglimiter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rglimiter.obj `if test -f 'elements/rglimiter.c'; then $(CYGPATH_W) 'elements/rglimiter.c'; else $(CYGPATH_W) '$(srcdir)/elements/rglimiter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rglimiter.obj `if test -f 'elements/rglimiter.c'; then $(CYGPATH_W) 'elements/rglimiter.c'; else $(CYGPATH_W) '$(srcdir)/elements/rglimiter.c'; fi` rgvolume.o: elements/rgvolume.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rgvolume.o -MD -MP -MF $(DEPDIR)/rgvolume.Tpo -c -o rgvolume.o `test -f 'elements/rgvolume.c' || echo '$(srcdir)/'`elements/rgvolume.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rgvolume.Tpo $(DEPDIR)/rgvolume.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rgvolume.c' object='rgvolume.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rgvolume.c' object='rgvolume.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rgvolume.o `test -f 'elements/rgvolume.c' || echo '$(srcdir)/'`elements/rgvolume.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rgvolume.o `test -f 'elements/rgvolume.c' || echo '$(srcdir)/'`elements/rgvolume.c rgvolume.obj: elements/rgvolume.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rgvolume.obj -MD -MP -MF $(DEPDIR)/rgvolume.Tpo -c -o rgvolume.obj `if test -f 'elements/rgvolume.c'; then $(CYGPATH_W) 'elements/rgvolume.c'; else $(CYGPATH_W) '$(srcdir)/elements/rgvolume.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rgvolume.Tpo $(DEPDIR)/rgvolume.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rgvolume.c' object='rgvolume.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rgvolume.c' object='rgvolume.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rgvolume.obj `if test -f 'elements/rgvolume.c'; then $(CYGPATH_W) 'elements/rgvolume.c'; else $(CYGPATH_W) '$(srcdir)/elements/rgvolume.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rgvolume.obj `if test -f 'elements/rgvolume.c'; then $(CYGPATH_W) 'elements/rgvolume.c'; else $(CYGPATH_W) '$(srcdir)/elements/rgvolume.c'; fi` rtp-payloading.o: elements/rtp-payloading.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtp-payloading.o -MD -MP -MF $(DEPDIR)/rtp-payloading.Tpo -c -o rtp-payloading.o `test -f 'elements/rtp-payloading.c' || echo '$(srcdir)/'`elements/rtp-payloading.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtp-payloading.Tpo $(DEPDIR)/rtp-payloading.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtp-payloading.c' object='rtp-payloading.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtp-payloading.c' object='rtp-payloading.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtp-payloading.o `test -f 'elements/rtp-payloading.c' || echo '$(srcdir)/'`elements/rtp-payloading.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtp-payloading.o `test -f 'elements/rtp-payloading.c' || echo '$(srcdir)/'`elements/rtp-payloading.c rtp-payloading.obj: elements/rtp-payloading.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtp-payloading.obj -MD -MP -MF $(DEPDIR)/rtp-payloading.Tpo -c -o rtp-payloading.obj `if test -f 'elements/rtp-payloading.c'; then $(CYGPATH_W) 'elements/rtp-payloading.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtp-payloading.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtp-payloading.Tpo $(DEPDIR)/rtp-payloading.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtp-payloading.c' object='rtp-payloading.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtp-payloading.c' object='rtp-payloading.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtp-payloading.obj `if test -f 'elements/rtp-payloading.c'; then $(CYGPATH_W) 'elements/rtp-payloading.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtp-payloading.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtp-payloading.obj `if test -f 'elements/rtp-payloading.c'; then $(CYGPATH_W) 'elements/rtp-payloading.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtp-payloading.c'; fi` rtpbin.o: elements/rtpbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtpbin.o -MD -MP -MF $(DEPDIR)/rtpbin.Tpo -c -o rtpbin.o `test -f 'elements/rtpbin.c' || echo '$(srcdir)/'`elements/rtpbin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtpbin.Tpo $(DEPDIR)/rtpbin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpbin.c' object='rtpbin.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpbin.c' object='rtpbin.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpbin.o `test -f 'elements/rtpbin.c' || echo '$(srcdir)/'`elements/rtpbin.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpbin.o `test -f 'elements/rtpbin.c' || echo '$(srcdir)/'`elements/rtpbin.c rtpbin.obj: elements/rtpbin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtpbin.obj -MD -MP -MF $(DEPDIR)/rtpbin.Tpo -c -o rtpbin.obj `if test -f 'elements/rtpbin.c'; then $(CYGPATH_W) 'elements/rtpbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtpbin.Tpo $(DEPDIR)/rtpbin.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpbin.c' object='rtpbin.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpbin.c' object='rtpbin.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpbin.obj `if test -f 'elements/rtpbin.c'; then $(CYGPATH_W) 'elements/rtpbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpbin.obj `if test -f 'elements/rtpbin.c'; then $(CYGPATH_W) 'elements/rtpbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin.c'; fi` elements_rtpbin_buffer_list-rtpbin_buffer_list.o: elements/rtpbin_buffer_list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -MT elements_rtpbin_buffer_list-rtpbin_buffer_list.o -MD -MP -MF $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.o `test -f 'elements/rtpbin_buffer_list.c' || echo '$(srcdir)/'`elements/rtpbin_buffer_list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpbin_buffer_list.c' object='elements_rtpbin_buffer_list-rtpbin_buffer_list.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpbin_buffer_list.c' object='elements_rtpbin_buffer_list-rtpbin_buffer_list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.o `test -f 'elements/rtpbin_buffer_list.c' || echo '$(srcdir)/'`elements/rtpbin_buffer_list.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.o `test -f 'elements/rtpbin_buffer_list.c' || echo '$(srcdir)/'`elements/rtpbin_buffer_list.c elements_rtpbin_buffer_list-rtpbin_buffer_list.obj: elements/rtpbin_buffer_list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -MT elements_rtpbin_buffer_list-rtpbin_buffer_list.obj -MD -MP -MF $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.obj `if test -f 'elements/rtpbin_buffer_list.c'; then $(CYGPATH_W) 'elements/rtpbin_buffer_list.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin_buffer_list.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo $(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpbin_buffer_list.c' object='elements_rtpbin_buffer_list-rtpbin_buffer_list.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpbin_buffer_list.c' object='elements_rtpbin_buffer_list-rtpbin_buffer_list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.obj `if test -f 'elements/rtpbin_buffer_list.c'; then $(CYGPATH_W) 'elements/rtpbin_buffer_list.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin_buffer_list.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -c -o elements_rtpbin_buffer_list-rtpbin_buffer_list.obj `if test -f 'elements/rtpbin_buffer_list.c'; then $(CYGPATH_W) 'elements/rtpbin_buffer_list.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpbin_buffer_list.c'; fi` rtpjitterbuffer.o: elements/rtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtpjitterbuffer.o -MD -MP -MF $(DEPDIR)/rtpjitterbuffer.Tpo -c -o rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtpjitterbuffer.Tpo $(DEPDIR)/rtpjitterbuffer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpjitterbuffer.c' object='rtpjitterbuffer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpjitterbuffer.c' object='rtpjitterbuffer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c rtpjitterbuffer.obj: elements/rtpjitterbuffer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rtpjitterbuffer.obj -MD -MP -MF $(DEPDIR)/rtpjitterbuffer.Tpo -c -o rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/rtpjitterbuffer.Tpo $(DEPDIR)/rtpjitterbuffer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/rtpjitterbuffer.c' object='rtpjitterbuffer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpjitterbuffer.c' object='rtpjitterbuffer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rtpjitterbuffer.obj `if test -f 'elements/rtpjitterbuffer.c'; then $(CYGPATH_W) 'elements/rtpjitterbuffer.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpjitterbuffer.c'; fi` shapewipe.o: elements/shapewipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapewipe.o -MD -MP -MF $(DEPDIR)/shapewipe.Tpo -c -o shapewipe.o `test -f 'elements/shapewipe.c' || echo '$(srcdir)/'`elements/shapewipe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe.Tpo $(DEPDIR)/shapewipe.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/shapewipe.c' object='shapewipe.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/shapewipe.c' object='shapewipe.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapewipe.o `test -f 'elements/shapewipe.c' || echo '$(srcdir)/'`elements/shapewipe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapewipe.o `test -f 'elements/shapewipe.c' || echo '$(srcdir)/'`elements/shapewipe.c shapewipe.obj: elements/shapewipe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapewipe.obj -MD -MP -MF $(DEPDIR)/shapewipe.Tpo -c -o shapewipe.obj `if test -f 'elements/shapewipe.c'; then $(CYGPATH_W) 'elements/shapewipe.c'; else $(CYGPATH_W) '$(srcdir)/elements/shapewipe.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe.Tpo $(DEPDIR)/shapewipe.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/shapewipe.c' object='shapewipe.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/shapewipe.c' object='shapewipe.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapewipe.obj `if test -f 'elements/shapewipe.c'; then $(CYGPATH_W) 'elements/shapewipe.c'; else $(CYGPATH_W) '$(srcdir)/elements/shapewipe.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapewipe.obj `if test -f 'elements/shapewipe.c'; then $(CYGPATH_W) 'elements/shapewipe.c'; else $(CYGPATH_W) '$(srcdir)/elements/shapewipe.c'; fi` elements_souphttpsrc-souphttpsrc.o: elements/souphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -MT elements_souphttpsrc-souphttpsrc.o -MD -MP -MF $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo -c -o elements_souphttpsrc-souphttpsrc.o `test -f 'elements/souphttpsrc.c' || echo '$(srcdir)/'`elements/souphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/souphttpsrc.c' object='elements_souphttpsrc-souphttpsrc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/souphttpsrc.c' object='elements_souphttpsrc-souphttpsrc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -c -o elements_souphttpsrc-souphttpsrc.o `test -f 'elements/souphttpsrc.c' || echo '$(srcdir)/'`elements/souphttpsrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -c -o elements_souphttpsrc-souphttpsrc.o `test -f 'elements/souphttpsrc.c' || echo '$(srcdir)/'`elements/souphttpsrc.c elements_souphttpsrc-souphttpsrc.obj: elements/souphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -MT elements_souphttpsrc-souphttpsrc.obj -MD -MP -MF $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo -c -o elements_souphttpsrc-souphttpsrc.obj `if test -f 'elements/souphttpsrc.c'; then $(CYGPATH_W) 'elements/souphttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/souphttpsrc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo $(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/souphttpsrc.c' object='elements_souphttpsrc-souphttpsrc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/souphttpsrc.c' object='elements_souphttpsrc-souphttpsrc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -c -o elements_souphttpsrc-souphttpsrc.obj `if test -f 'elements/souphttpsrc.c'; then $(CYGPATH_W) 'elements/souphttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/souphttpsrc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -c -o elements_souphttpsrc-souphttpsrc.obj `if test -f 'elements/souphttpsrc.c'; then $(CYGPATH_W) 'elements/souphttpsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/souphttpsrc.c'; fi` spectrum.o: elements/spectrum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spectrum.o -MD -MP -MF $(DEPDIR)/spectrum.Tpo -c -o spectrum.o `test -f 'elements/spectrum.c' || echo '$(srcdir)/'`elements/spectrum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/spectrum.Tpo $(DEPDIR)/spectrum.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/spectrum.c' object='spectrum.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/spectrum.c' object='spectrum.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spectrum.o `test -f 'elements/spectrum.c' || echo '$(srcdir)/'`elements/spectrum.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spectrum.o `test -f 'elements/spectrum.c' || echo '$(srcdir)/'`elements/spectrum.c spectrum.obj: elements/spectrum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spectrum.obj -MD -MP -MF $(DEPDIR)/spectrum.Tpo -c -o spectrum.obj `if test -f 'elements/spectrum.c'; then $(CYGPATH_W) 'elements/spectrum.c'; else $(CYGPATH_W) '$(srcdir)/elements/spectrum.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/spectrum.Tpo $(DEPDIR)/spectrum.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/spectrum.c' object='spectrum.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/spectrum.c' object='spectrum.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spectrum.obj `if test -f 'elements/spectrum.c'; then $(CYGPATH_W) 'elements/spectrum.c'; else $(CYGPATH_W) '$(srcdir)/elements/spectrum.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spectrum.obj `if test -f 'elements/spectrum.c'; then $(CYGPATH_W) 'elements/spectrum.c'; else $(CYGPATH_W) '$(srcdir)/elements/spectrum.c'; fi` elements_sunaudio-sunaudio.o: elements/sunaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -MT elements_sunaudio-sunaudio.o -MD -MP -MF $(DEPDIR)/elements_sunaudio-sunaudio.Tpo -c -o elements_sunaudio-sunaudio.o `test -f 'elements/sunaudio.c' || echo '$(srcdir)/'`elements/sunaudio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_sunaudio-sunaudio.Tpo $(DEPDIR)/elements_sunaudio-sunaudio.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/sunaudio.c' object='elements_sunaudio-sunaudio.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/sunaudio.c' object='elements_sunaudio-sunaudio.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -c -o elements_sunaudio-sunaudio.o `test -f 'elements/sunaudio.c' || echo '$(srcdir)/'`elements/sunaudio.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -c -o elements_sunaudio-sunaudio.o `test -f 'elements/sunaudio.c' || echo '$(srcdir)/'`elements/sunaudio.c elements_sunaudio-sunaudio.obj: elements/sunaudio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -MT elements_sunaudio-sunaudio.obj -MD -MP -MF $(DEPDIR)/elements_sunaudio-sunaudio.Tpo -c -o elements_sunaudio-sunaudio.obj `if test -f 'elements/sunaudio.c'; then $(CYGPATH_W) 'elements/sunaudio.c'; else $(CYGPATH_W) '$(srcdir)/elements/sunaudio.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_sunaudio-sunaudio.Tpo $(DEPDIR)/elements_sunaudio-sunaudio.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/sunaudio.c' object='elements_sunaudio-sunaudio.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/sunaudio.c' object='elements_sunaudio-sunaudio.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -c -o elements_sunaudio-sunaudio.obj `if test -f 'elements/sunaudio.c'; then $(CYGPATH_W) 'elements/sunaudio.c'; else $(CYGPATH_W) '$(srcdir)/elements/sunaudio.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_sunaudio_CFLAGS) $(CFLAGS) -c -o elements_sunaudio-sunaudio.obj `if test -f 'elements/sunaudio.c'; then $(CYGPATH_W) 'elements/sunaudio.c'; else $(CYGPATH_W) '$(srcdir)/elements/sunaudio.c'; fi` udpsink.o: elements/udpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT udpsink.o -MD -MP -MF $(DEPDIR)/udpsink.Tpo -c -o udpsink.o `test -f 'elements/udpsink.c' || echo '$(srcdir)/'`elements/udpsink.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/udpsink.Tpo $(DEPDIR)/udpsink.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/udpsink.c' object='udpsink.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/udpsink.c' object='udpsink.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o udpsink.o `test -f 'elements/udpsink.c' || echo '$(srcdir)/'`elements/udpsink.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o udpsink.o `test -f 'elements/udpsink.c' || echo '$(srcdir)/'`elements/udpsink.c udpsink.obj: elements/udpsink.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT udpsink.obj -MD -MP -MF $(DEPDIR)/udpsink.Tpo -c -o udpsink.obj `if test -f 'elements/udpsink.c'; then $(CYGPATH_W) 'elements/udpsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/udpsink.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/udpsink.Tpo $(DEPDIR)/udpsink.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/udpsink.c' object='udpsink.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/udpsink.c' object='udpsink.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o udpsink.obj `if test -f 'elements/udpsink.c'; then $(CYGPATH_W) 'elements/udpsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/udpsink.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o udpsink.obj `if test -f 'elements/udpsink.c'; then $(CYGPATH_W) 'elements/udpsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/udpsink.c'; fi` elements_videocrop-videocrop.o: elements/videocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -MT elements_videocrop-videocrop.o -MD -MP -MF $(DEPDIR)/elements_videocrop-videocrop.Tpo -c -o elements_videocrop-videocrop.o `test -f 'elements/videocrop.c' || echo '$(srcdir)/'`elements/videocrop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videocrop-videocrop.Tpo $(DEPDIR)/elements_videocrop-videocrop.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videocrop.c' object='elements_videocrop-videocrop.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videocrop.c' object='elements_videocrop-videocrop.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -c -o elements_videocrop-videocrop.o `test -f 'elements/videocrop.c' || echo '$(srcdir)/'`elements/videocrop.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -c -o elements_videocrop-videocrop.o `test -f 'elements/videocrop.c' || echo '$(srcdir)/'`elements/videocrop.c elements_videocrop-videocrop.obj: elements/videocrop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -MT elements_videocrop-videocrop.obj -MD -MP -MF $(DEPDIR)/elements_videocrop-videocrop.Tpo -c -o elements_videocrop-videocrop.obj `if test -f 'elements/videocrop.c'; then $(CYGPATH_W) 'elements/videocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/videocrop.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videocrop-videocrop.Tpo $(DEPDIR)/elements_videocrop-videocrop.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videocrop.c' object='elements_videocrop-videocrop.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videocrop.c' object='elements_videocrop-videocrop.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -c -o elements_videocrop-videocrop.obj `if test -f 'elements/videocrop.c'; then $(CYGPATH_W) 'elements/videocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/videocrop.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videocrop_CFLAGS) $(CFLAGS) -c -o elements_videocrop-videocrop.obj `if test -f 'elements/videocrop.c'; then $(CYGPATH_W) 'elements/videocrop.c'; else $(CYGPATH_W) '$(srcdir)/elements/videocrop.c'; fi` elements_videofilter-videofilter.o: elements/videofilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -MT elements_videofilter-videofilter.o -MD -MP -MF $(DEPDIR)/elements_videofilter-videofilter.Tpo -c -o elements_videofilter-videofilter.o `test -f 'elements/videofilter.c' || echo '$(srcdir)/'`elements/videofilter.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videofilter-videofilter.Tpo $(DEPDIR)/elements_videofilter-videofilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videofilter.c' object='elements_videofilter-videofilter.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videofilter.c' object='elements_videofilter-videofilter.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.o `test -f 'elements/videofilter.c' || echo '$(srcdir)/'`elements/videofilter.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.o `test -f 'elements/videofilter.c' || echo '$(srcdir)/'`elements/videofilter.c elements_videofilter-videofilter.obj: elements/videofilter.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -MT elements_videofilter-videofilter.obj -MD -MP -MF $(DEPDIR)/elements_videofilter-videofilter.Tpo -c -o elements_videofilter-videofilter.obj `if test -f 'elements/videofilter.c'; then $(CYGPATH_W) 'elements/videofilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/videofilter.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videofilter-videofilter.Tpo $(DEPDIR)/elements_videofilter-videofilter.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videofilter.c' object='elements_videofilter-videofilter.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videofilter.c' object='elements_videofilter-videofilter.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.obj `if test -f 'elements/videofilter.c'; then $(CYGPATH_W) 'elements/videofilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/videofilter.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videofilter_CFLAGS) $(CFLAGS) -c -o elements_videofilter-videofilter.obj `if test -f 'elements/videofilter.c'; then $(CYGPATH_W) 'elements/videofilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/videofilter.c'; fi` wavpackdec.o: elements/wavpackdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackdec.o -MD -MP -MF $(DEPDIR)/wavpackdec.Tpo -c -o wavpackdec.o `test -f 'elements/wavpackdec.c' || echo '$(srcdir)/'`elements/wavpackdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackdec.Tpo $(DEPDIR)/wavpackdec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackdec.c' object='wavpackdec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackdec.c' object='wavpackdec.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackdec.o `test -f 'elements/wavpackdec.c' || echo '$(srcdir)/'`elements/wavpackdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackdec.o `test -f 'elements/wavpackdec.c' || echo '$(srcdir)/'`elements/wavpackdec.c wavpackdec.obj: elements/wavpackdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackdec.obj -MD -MP -MF $(DEPDIR)/wavpackdec.Tpo -c -o wavpackdec.obj `if test -f 'elements/wavpackdec.c'; then $(CYGPATH_W) 'elements/wavpackdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackdec.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackdec.Tpo $(DEPDIR)/wavpackdec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackdec.c' object='wavpackdec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackdec.c' object='wavpackdec.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackdec.obj `if test -f 'elements/wavpackdec.c'; then $(CYGPATH_W) 'elements/wavpackdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackdec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackdec.obj `if test -f 'elements/wavpackdec.c'; then $(CYGPATH_W) 'elements/wavpackdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackdec.c'; fi` wavpackenc.o: elements/wavpackenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackenc.o -MD -MP -MF $(DEPDIR)/wavpackenc.Tpo -c -o wavpackenc.o `test -f 'elements/wavpackenc.c' || echo '$(srcdir)/'`elements/wavpackenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackenc.Tpo $(DEPDIR)/wavpackenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackenc.c' object='wavpackenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackenc.c' object='wavpackenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackenc.o `test -f 'elements/wavpackenc.c' || echo '$(srcdir)/'`elements/wavpackenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackenc.o `test -f 'elements/wavpackenc.c' || echo '$(srcdir)/'`elements/wavpackenc.c wavpackenc.obj: elements/wavpackenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackenc.obj -MD -MP -MF $(DEPDIR)/wavpackenc.Tpo -c -o wavpackenc.obj `if test -f 'elements/wavpackenc.c'; then $(CYGPATH_W) 'elements/wavpackenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackenc.Tpo $(DEPDIR)/wavpackenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackenc.c' object='wavpackenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackenc.c' object='wavpackenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackenc.obj `if test -f 'elements/wavpackenc.c'; then $(CYGPATH_W) 'elements/wavpackenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackenc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackenc.obj `if test -f 'elements/wavpackenc.c'; then $(CYGPATH_W) 'elements/wavpackenc.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackenc.c'; fi` wavpackparse.o: elements/wavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackparse.o -MD -MP -MF $(DEPDIR)/wavpackparse.Tpo -c -o wavpackparse.o `test -f 'elements/wavpackparse.c' || echo '$(srcdir)/'`elements/wavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackparse.Tpo $(DEPDIR)/wavpackparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackparse.c' object='wavpackparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackparse.c' object='wavpackparse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.o `test -f 'elements/wavpackparse.c' || echo '$(srcdir)/'`elements/wavpackparse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.o `test -f 'elements/wavpackparse.c' || echo '$(srcdir)/'`elements/wavpackparse.c wavpackparse.obj: elements/wavpackparse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wavpackparse.obj -MD -MP -MF $(DEPDIR)/wavpackparse.Tpo -c -o wavpackparse.obj `if test -f 'elements/wavpackparse.c'; then $(CYGPATH_W) 'elements/wavpackparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackparse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wavpackparse.Tpo $(DEPDIR)/wavpackparse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/wavpackparse.c' object='wavpackparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/wavpackparse.c' object='wavpackparse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.obj `if test -f 'elements/wavpackparse.c'; then $(CYGPATH_W) 'elements/wavpackparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackparse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wavpackparse.obj `if test -f 'elements/wavpackparse.c'; then $(CYGPATH_W) 'elements/wavpackparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/wavpackparse.c'; fi` y4menc.o: elements/y4menc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT y4menc.o -MD -MP -MF $(DEPDIR)/y4menc.Tpo -c -o y4menc.o `test -f 'elements/y4menc.c' || echo '$(srcdir)/'`elements/y4menc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/y4menc.Tpo $(DEPDIR)/y4menc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/y4menc.c' object='y4menc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/y4menc.c' object='y4menc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o y4menc.o `test -f 'elements/y4menc.c' || echo '$(srcdir)/'`elements/y4menc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o y4menc.o `test -f 'elements/y4menc.c' || echo '$(srcdir)/'`elements/y4menc.c y4menc.obj: elements/y4menc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT y4menc.obj -MD -MP -MF $(DEPDIR)/y4menc.Tpo -c -o y4menc.obj `if test -f 'elements/y4menc.c'; then $(CYGPATH_W) 'elements/y4menc.c'; else $(CYGPATH_W) '$(srcdir)/elements/y4menc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/y4menc.Tpo $(DEPDIR)/y4menc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/y4menc.c' object='y4menc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/y4menc.c' object='y4menc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o y4menc.obj `if test -f 'elements/y4menc.c'; then $(CYGPATH_W) 'elements/y4menc.c'; else $(CYGPATH_W) '$(srcdir)/elements/y4menc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o y4menc.obj `if test -f 'elements/y4menc.c'; then $(CYGPATH_W) 'elements/y4menc.c'; else $(CYGPATH_W) '$(srcdir)/elements/y4menc.c'; fi` index.o: generic/index.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT index.o -MD -MP -MF $(DEPDIR)/index.Tpo -c -o index.o `test -f 'generic/index.c' || echo '$(srcdir)/'`generic/index.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/index.Tpo $(DEPDIR)/index.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/index.c' object='index.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/index.c' object='index.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o index.o `test -f 'generic/index.c' || echo '$(srcdir)/'`generic/index.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o index.o `test -f 'generic/index.c' || echo '$(srcdir)/'`generic/index.c index.obj: generic/index.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT index.obj -MD -MP -MF $(DEPDIR)/index.Tpo -c -o index.obj `if test -f 'generic/index.c'; then $(CYGPATH_W) 'generic/index.c'; else $(CYGPATH_W) '$(srcdir)/generic/index.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/index.Tpo $(DEPDIR)/index.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/index.c' object='index.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/index.c' object='index.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o index.obj `if test -f 'generic/index.c'; then $(CYGPATH_W) 'generic/index.c'; else $(CYGPATH_W) '$(srcdir)/generic/index.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o index.obj `if test -f 'generic/index.c'; then $(CYGPATH_W) 'generic/index.c'; else $(CYGPATH_W) '$(srcdir)/generic/index.c'; fi` states.o: generic/states.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.o -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c states.obj: generic/states.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.obj -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi` orc_deinterlace-deinterlace.o: orc/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -MT orc_deinterlace-deinterlace.o -MD -MP -MF $(DEPDIR)/orc_deinterlace-deinterlace.Tpo -c -o orc_deinterlace-deinterlace.o `test -f 'orc/deinterlace.c' || echo '$(srcdir)/'`orc/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_deinterlace-deinterlace.Tpo $(DEPDIR)/orc_deinterlace-deinterlace.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/deinterlace.c' object='orc_deinterlace-deinterlace.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/deinterlace.c' object='orc_deinterlace-deinterlace.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -c -o orc_deinterlace-deinterlace.o `test -f 'orc/deinterlace.c' || echo '$(srcdir)/'`orc/deinterlace.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -c -o orc_deinterlace-deinterlace.o `test -f 'orc/deinterlace.c' || echo '$(srcdir)/'`orc/deinterlace.c orc_deinterlace-deinterlace.obj: orc/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -MT orc_deinterlace-deinterlace.obj -MD -MP -MF $(DEPDIR)/orc_deinterlace-deinterlace.Tpo -c -o orc_deinterlace-deinterlace.obj `if test -f 'orc/deinterlace.c'; then $(CYGPATH_W) 'orc/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/orc/deinterlace.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_deinterlace-deinterlace.Tpo $(DEPDIR)/orc_deinterlace-deinterlace.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/deinterlace.c' object='orc_deinterlace-deinterlace.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/deinterlace.c' object='orc_deinterlace-deinterlace.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -c -o orc_deinterlace-deinterlace.obj `if test -f 'orc/deinterlace.c'; then $(CYGPATH_W) 'orc/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/orc/deinterlace.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -c -o orc_deinterlace-deinterlace.obj `if test -f 'orc/deinterlace.c'; then $(CYGPATH_W) 'orc/deinterlace.c'; else $(CYGPATH_W) '$(srcdir)/orc/deinterlace.c'; fi` orc_videobox-videobox.o: orc/videobox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -MT orc_videobox-videobox.o -MD -MP -MF $(DEPDIR)/orc_videobox-videobox.Tpo -c -o orc_videobox-videobox.o `test -f 'orc/videobox.c' || echo '$(srcdir)/'`orc/videobox.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videobox-videobox.Tpo $(DEPDIR)/orc_videobox-videobox.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videobox.c' object='orc_videobox-videobox.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videobox.c' object='orc_videobox-videobox.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -c -o orc_videobox-videobox.o `test -f 'orc/videobox.c' || echo '$(srcdir)/'`orc/videobox.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -c -o orc_videobox-videobox.o `test -f 'orc/videobox.c' || echo '$(srcdir)/'`orc/videobox.c orc_videobox-videobox.obj: orc/videobox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -MT orc_videobox-videobox.obj -MD -MP -MF $(DEPDIR)/orc_videobox-videobox.Tpo -c -o orc_videobox-videobox.obj `if test -f 'orc/videobox.c'; then $(CYGPATH_W) 'orc/videobox.c'; else $(CYGPATH_W) '$(srcdir)/orc/videobox.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videobox-videobox.Tpo $(DEPDIR)/orc_videobox-videobox.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videobox.c' object='orc_videobox-videobox.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videobox.c' object='orc_videobox-videobox.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -c -o orc_videobox-videobox.obj `if test -f 'orc/videobox.c'; then $(CYGPATH_W) 'orc/videobox.c'; else $(CYGPATH_W) '$(srcdir)/orc/videobox.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videobox_CFLAGS) $(CFLAGS) -c -o orc_videobox-videobox.obj `if test -f 'orc/videobox.c'; then $(CYGPATH_W) 'orc/videobox.c'; else $(CYGPATH_W) '$(srcdir)/orc/videobox.c'; fi` orc_videomixer-videomixer.o: orc/videomixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -MT orc_videomixer-videomixer.o -MD -MP -MF $(DEPDIR)/orc_videomixer-videomixer.Tpo -c -o orc_videomixer-videomixer.o `test -f 'orc/videomixer.c' || echo '$(srcdir)/'`orc/videomixer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videomixer-videomixer.Tpo $(DEPDIR)/orc_videomixer-videomixer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videomixer.c' object='orc_videomixer-videomixer.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videomixer.c' object='orc_videomixer-videomixer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -c -o orc_videomixer-videomixer.o `test -f 'orc/videomixer.c' || echo '$(srcdir)/'`orc/videomixer.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -c -o orc_videomixer-videomixer.o `test -f 'orc/videomixer.c' || echo '$(srcdir)/'`orc/videomixer.c orc_videomixer-videomixer.obj: orc/videomixer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -MT orc_videomixer-videomixer.obj -MD -MP -MF $(DEPDIR)/orc_videomixer-videomixer.Tpo -c -o orc_videomixer-videomixer.obj `if test -f 'orc/videomixer.c'; then $(CYGPATH_W) 'orc/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/orc/videomixer.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videomixer-videomixer.Tpo $(DEPDIR)/orc_videomixer-videomixer.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videomixer.c' object='orc_videomixer-videomixer.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videomixer.c' object='orc_videomixer-videomixer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -c -o orc_videomixer-videomixer.obj `if test -f 'orc/videomixer.c'; then $(CYGPATH_W) 'orc/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/orc/videomixer.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videomixer_CFLAGS) $(CFLAGS) -c -o orc_videomixer-videomixer.obj `if test -f 'orc/videomixer.c'; then $(CYGPATH_W) 'orc/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/orc/videomixer.c'; fi` effectv.o: pipelines/effectv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT effectv.o -MD -MP -MF $(DEPDIR)/effectv.Tpo -c -o effectv.o `test -f 'pipelines/effectv.c' || echo '$(srcdir)/'`pipelines/effectv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/effectv.Tpo $(DEPDIR)/effectv.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/effectv.c' object='effectv.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/effectv.c' object='effectv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o effectv.o `test -f 'pipelines/effectv.c' || echo '$(srcdir)/'`pipelines/effectv.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o effectv.o `test -f 'pipelines/effectv.c' || echo '$(srcdir)/'`pipelines/effectv.c effectv.obj: pipelines/effectv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT effectv.obj -MD -MP -MF $(DEPDIR)/effectv.Tpo -c -o effectv.obj `if test -f 'pipelines/effectv.c'; then $(CYGPATH_W) 'pipelines/effectv.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/effectv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/effectv.Tpo $(DEPDIR)/effectv.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/effectv.c' object='effectv.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/effectv.c' object='effectv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o effectv.obj `if test -f 'pipelines/effectv.c'; then $(CYGPATH_W) 'pipelines/effectv.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/effectv.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o effectv.obj `if test -f 'pipelines/effectv.c'; then $(CYGPATH_W) 'pipelines/effectv.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/effectv.c'; fi` flacdec.o: pipelines/flacdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flacdec.o -MD -MP -MF $(DEPDIR)/flacdec.Tpo -c -o flacdec.o `test -f 'pipelines/flacdec.c' || echo '$(srcdir)/'`pipelines/flacdec.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flacdec.Tpo $(DEPDIR)/flacdec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/flacdec.c' object='flacdec.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/flacdec.c' object='flacdec.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacdec.o `test -f 'pipelines/flacdec.c' || echo '$(srcdir)/'`pipelines/flacdec.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacdec.o `test -f 'pipelines/flacdec.c' || echo '$(srcdir)/'`pipelines/flacdec.c flacdec.obj: pipelines/flacdec.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT flacdec.obj -MD -MP -MF $(DEPDIR)/flacdec.Tpo -c -o flacdec.obj `if test -f 'pipelines/flacdec.c'; then $(CYGPATH_W) 'pipelines/flacdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/flacdec.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/flacdec.Tpo $(DEPDIR)/flacdec.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/flacdec.c' object='flacdec.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/flacdec.c' object='flacdec.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacdec.obj `if test -f 'pipelines/flacdec.c'; then $(CYGPATH_W) 'pipelines/flacdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/flacdec.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o flacdec.obj `if test -f 'pipelines/flacdec.c'; then $(CYGPATH_W) 'pipelines/flacdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/flacdec.c'; fi` simple-launch-lines.o: pipelines/simple-launch-lines.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT simple-launch-lines.o -MD -MP -MF $(DEPDIR)/simple-launch-lines.Tpo -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple-launch-lines.Tpo $(DEPDIR)/simple-launch-lines.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/simple-launch-lines.c' object='simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c simple-launch-lines.obj: pipelines/simple-launch-lines.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT simple-launch-lines.obj -MD -MP -MF $(DEPDIR)/simple-launch-lines.Tpo -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/simple-launch-lines.Tpo $(DEPDIR)/simple-launch-lines.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/simple-launch-lines.c' object='simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi` tagschecking.o: pipelines/tagschecking.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tagschecking.o -MD -MP -MF $(DEPDIR)/tagschecking.Tpo -c -o tagschecking.o `test -f 'pipelines/tagschecking.c' || echo '$(srcdir)/'`pipelines/tagschecking.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/tagschecking.Tpo $(DEPDIR)/tagschecking.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/tagschecking.c' object='tagschecking.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/tagschecking.c' object='tagschecking.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tagschecking.o `test -f 'pipelines/tagschecking.c' || echo '$(srcdir)/'`pipelines/tagschecking.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tagschecking.o `test -f 'pipelines/tagschecking.c' || echo '$(srcdir)/'`pipelines/tagschecking.c tagschecking.obj: pipelines/tagschecking.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tagschecking.obj -MD -MP -MF $(DEPDIR)/tagschecking.Tpo -c -o tagschecking.obj `if test -f 'pipelines/tagschecking.c'; then $(CYGPATH_W) 'pipelines/tagschecking.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/tagschecking.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/tagschecking.Tpo $(DEPDIR)/tagschecking.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/tagschecking.c' object='tagschecking.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/tagschecking.c' object='tagschecking.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tagschecking.obj `if test -f 'pipelines/tagschecking.c'; then $(CYGPATH_W) 'pipelines/tagschecking.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/tagschecking.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tagschecking.obj `if test -f 'pipelines/tagschecking.c'; then $(CYGPATH_W) 'pipelines/tagschecking.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/tagschecking.c'; fi` pipelines_wavenc-wavenc.o: pipelines/wavenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -MT pipelines_wavenc-wavenc.o -MD -MP -MF $(DEPDIR)/pipelines_wavenc-wavenc.Tpo -c -o pipelines_wavenc-wavenc.o `test -f 'pipelines/wavenc.c' || echo '$(srcdir)/'`pipelines/wavenc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_wavenc-wavenc.Tpo $(DEPDIR)/pipelines_wavenc-wavenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/wavenc.c' object='pipelines_wavenc-wavenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/wavenc.c' object='pipelines_wavenc-wavenc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -c -o pipelines_wavenc-wavenc.o `test -f 'pipelines/wavenc.c' || echo '$(srcdir)/'`pipelines/wavenc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -c -o pipelines_wavenc-wavenc.o `test -f 'pipelines/wavenc.c' || echo '$(srcdir)/'`pipelines/wavenc.c pipelines_wavenc-wavenc.obj: pipelines/wavenc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -MT pipelines_wavenc-wavenc.obj -MD -MP -MF $(DEPDIR)/pipelines_wavenc-wavenc.Tpo -c -o pipelines_wavenc-wavenc.obj `if test -f 'pipelines/wavenc.c'; then $(CYGPATH_W) 'pipelines/wavenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavenc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_wavenc-wavenc.Tpo $(DEPDIR)/pipelines_wavenc-wavenc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/wavenc.c' object='pipelines_wavenc-wavenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/wavenc.c' object='pipelines_wavenc-wavenc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -c -o pipelines_wavenc-wavenc.obj `if test -f 'pipelines/wavenc.c'; then $(CYGPATH_W) 'pipelines/wavenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavenc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavenc_CFLAGS) $(CFLAGS) -c -o pipelines_wavenc-wavenc.obj `if test -f 'pipelines/wavenc.c'; then $(CYGPATH_W) 'pipelines/wavenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavenc.c'; fi` pipelines_wavpack-wavpack.o: pipelines/wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -MT pipelines_wavpack-wavpack.o -MD -MP -MF $(DEPDIR)/pipelines_wavpack-wavpack.Tpo -c -o pipelines_wavpack-wavpack.o `test -f 'pipelines/wavpack.c' || echo '$(srcdir)/'`pipelines/wavpack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_wavpack-wavpack.Tpo $(DEPDIR)/pipelines_wavpack-wavpack.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/wavpack.c' object='pipelines_wavpack-wavpack.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/wavpack.c' object='pipelines_wavpack-wavpack.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -c -o pipelines_wavpack-wavpack.o `test -f 'pipelines/wavpack.c' || echo '$(srcdir)/'`pipelines/wavpack.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -c -o pipelines_wavpack-wavpack.o `test -f 'pipelines/wavpack.c' || echo '$(srcdir)/'`pipelines/wavpack.c pipelines_wavpack-wavpack.obj: pipelines/wavpack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -MT pipelines_wavpack-wavpack.obj -MD -MP -MF $(DEPDIR)/pipelines_wavpack-wavpack.Tpo -c -o pipelines_wavpack-wavpack.obj `if test -f 'pipelines/wavpack.c'; then $(CYGPATH_W) 'pipelines/wavpack.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavpack.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_wavpack-wavpack.Tpo $(DEPDIR)/pipelines_wavpack-wavpack.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/wavpack.c' object='pipelines_wavpack-wavpack.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/wavpack.c' object='pipelines_wavpack-wavpack.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -c -o pipelines_wavpack-wavpack.obj `if test -f 'pipelines/wavpack.c'; then $(CYGPATH_W) 'pipelines/wavpack.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavpack.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_wavpack_CFLAGS) $(CFLAGS) -c -o pipelines_wavpack-wavpack.obj `if test -f 'pipelines/wavpack.c'; then $(CYGPATH_W) 'pipelines/wavpack.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/wavpack.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -2767,14 +2648,15 @@ check-TESTS: $(TESTS) fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ + col="$$grn"; \ else \ - echo "$$red$$dashes"; \ + col="$$red"; \ fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi @@ -2824,10 +2706,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/check/elements/ac3parse.c b/tests/check/elements/ac3parse.c index 03e8e1d..eb25004 100644 --- a/tests/check/elements/ac3parse.c +++ b/tests/check/elements/ac3parse.c @@ -110,7 +110,7 @@ GST_END_TEST; GST_START_TEST (test_parse_detect_stream) { gst_parser_test_output_caps (ac3_frame, sizeof (ac3_frame), - NULL, SINK_CAPS_TMPL ",channels=1,rate=48000"); + NULL, SINK_CAPS_TMPL ",channels=1,rate=48000,alignment=frame"); } GST_END_TEST; diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c index 0eb798b..21f9bb5 100644 --- a/tests/check/elements/autodetect.c +++ b/tests/check/elements/autodetect.c @@ -62,6 +62,12 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case) /* this should fail, there's no such format */ state_ret = gst_element_set_state (pipeline, GST_STATE_PAUSED); + if (state_ret == GST_STATE_CHANGE_ASYNC) { + /* make sure we wait for the actual success/failure to happen */ + GstState state; + state_ret = + gst_element_get_state (pipeline, &state, &state, GST_CLOCK_TIME_NONE); + } fail_unless (state_ret == GST_STATE_CHANGE_FAILURE, "pipeline _set_state() to PAUSED succeeded but should have failed"); diff --git a/tests/check/elements/cmmldec.c b/tests/check/elements/cmmldec.c index 1ba8fb4..a6b8559 100644 --- a/tests/check/elements/cmmldec.c +++ b/tests/check/elements/cmmldec.c @@ -25,7 +25,7 @@ #include #define SINK_CAPS "text/x-cmml" -#define SRC_CAPS "text/x-cmml" +#define SRC_CAPS "text/x-cmml, encoded=(boolean)TRUE" #define IDENT_HEADER \ "CMML\x00\x00\x00\x00"\ diff --git a/tests/check/elements/cmmlenc.c b/tests/check/elements/cmmlenc.c index 4424a72..4b95d71 100644 --- a/tests/check/elements/cmmlenc.c +++ b/tests/check/elements/cmmlenc.c @@ -26,7 +26,7 @@ #include #define SINK_CAPS "text/x-cmml" -#define SRC_CAPS "text/x-cmml" +#define SRC_CAPS "text/x-cmml,encoded=(boolean)FALSE" #define IDENT_HEADER \ "CMML\x00\x00\x00\x00"\ diff --git a/tests/check/elements/flacparse.c b/tests/check/elements/flacparse.c index aed1d9c..ebff9b4 100644 --- a/tests/check/elements/flacparse.c +++ b/tests/check/elements/flacparse.c @@ -230,10 +230,12 @@ GST_START_TEST (test_parse_flac_detect_stream) buf = g_value_peek_pointer (bufval); if (i == 0) { fail_unless (GST_BUFFER_SIZE (buf) == sizeof (streaminfo_header)); - fail_unless (memcmp (buf, streaminfo_header, sizeof (streaminfo_header))); + fail_unless (memcmp (GST_BUFFER_DATA (buf), streaminfo_header, + sizeof (streaminfo_header)) == 0); } else if (i == 1) { fail_unless (GST_BUFFER_SIZE (buf) == sizeof (comment_header)); - fail_unless (memcmp (buf, comment_header, sizeof (comment_header))); + fail_unless (memcmp (GST_BUFFER_DATA (buf), comment_header, + sizeof (comment_header)) == 0); } } diff --git a/tests/check/elements/flvmux.c b/tests/check/elements/flvmux.c index 6930ac7..fe10282 100644 --- a/tests/check/elements/flvmux.c +++ b/tests/check/elements/flvmux.c @@ -50,6 +50,7 @@ static void mux_pcm_audio (guint num_buffers, guint repeat) { GstElement *src, *sink, *flvmux, *conv, *pipeline; + GstPad *sinkpad, *srcpad; gint counter; GST_LOG ("num_buffers = %u", num_buffers); @@ -83,24 +84,23 @@ mux_pcm_audio (guint num_buffers, guint repeat) fail_unless (gst_element_link (src, conv)); fail_unless (gst_element_link (flvmux, sink)); - do { - GstStateChangeReturn state_ret; - GstMessage *msg; - GstPad *sinkpad, *srcpad; + /* now link the elements */ + sinkpad = gst_element_get_request_pad (flvmux, "audio"); + fail_unless (sinkpad != NULL, "Could not get audio request pad"); - GST_LOG ("repeat=%d", repeat); + srcpad = gst_element_get_static_pad (conv, "src"); + fail_unless (srcpad != NULL, "Could not get audioconvert's source pad"); - /* now link the elements */ - sinkpad = gst_element_get_request_pad (flvmux, "audio"); - fail_unless (sinkpad != NULL, "Could not get audio request pad"); + fail_unless_equals_int (gst_pad_link (srcpad, sinkpad), GST_PAD_LINK_OK); - srcpad = gst_element_get_static_pad (conv, "src"); - fail_unless (srcpad != NULL, "Could not get audioconvert's source pad"); + gst_object_unref (srcpad); + gst_object_unref (sinkpad); - fail_unless_equals_int (gst_pad_link (srcpad, sinkpad), GST_PAD_LINK_OK); + do { + GstStateChangeReturn state_ret; + GstMessage *msg; - gst_object_unref (srcpad); - gst_object_unref (sinkpad); + GST_LOG ("repeat=%d", repeat); counter = 0; diff --git a/tests/check/elements/matroskaparse.c b/tests/check/elements/matroskaparse.c new file mode 100644 index 0000000..e1d5e41 --- /dev/null +++ b/tests/check/elements/matroskaparse.c @@ -0,0 +1,118 @@ +/* GStreamer unit tests for matroskaparse + * Copyright (C) 2011 Tim-Philipp Müller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include + +#include + +static void +run_check_for_file (const gchar * file_name, gboolean push_mode) +{ + GstStateChangeReturn state_ret; + GstMessage *msg; + GstElement *src, *sep, *sink, *matroskaparse, *pipeline; + GstBus *bus; + gchar *path; + + pipeline = gst_pipeline_new ("pipeline"); + fail_unless (pipeline != NULL, "Failed to create pipeline!"); + + bus = gst_element_get_bus (pipeline); + + src = gst_element_factory_make ("filesrc", "filesrc"); + fail_unless (src != NULL, "Failed to create 'filesrc' element!"); + + if (push_mode) { + sep = gst_element_factory_make ("queue", "queue"); + fail_unless (sep != NULL, "Failed to create 'queue' element"); + } else { + sep = gst_element_factory_make ("identity", "identity"); + fail_unless (sep != NULL, "Failed to create 'identity' element"); + } + + matroskaparse = gst_element_factory_make ("matroskaparse", "matroskaparse"); + fail_unless (matroskaparse != NULL, "Failed to create matroskaparse element"); + + sink = gst_element_factory_make ("fakesink", "fakesink"); + fail_unless (sink != NULL, "Failed to create 'fakesink' element!"); + + gst_bin_add_many (GST_BIN (pipeline), src, sep, matroskaparse, sink, NULL); + + fail_unless (gst_element_link (src, sep)); + fail_unless (gst_element_link (sep, matroskaparse)); + fail_unless (gst_element_link (matroskaparse, sink)); + + path = g_build_filename (GST_TEST_FILES_PATH, file_name, NULL); + GST_LOG ("reading file '%s'", path); + g_object_set (src, "location", path, NULL); + + state_ret = gst_element_set_state (pipeline, GST_STATE_PAUSED); + fail_unless (state_ret != GST_STATE_CHANGE_FAILURE); + + if (state_ret == GST_STATE_CHANGE_ASYNC) { + GST_LOG ("waiting for pipeline to reach PAUSED state"); + state_ret = gst_element_get_state (pipeline, NULL, NULL, -1); + fail_unless_equals_int (state_ret, GST_STATE_CHANGE_SUCCESS); + } + + GST_LOG ("PAUSED, let's play a little.."); + state_ret = gst_element_set_state (pipeline, GST_STATE_PLAYING); + fail_unless (state_ret != GST_STATE_CHANGE_FAILURE); + + msg = gst_bus_poll (bus, GST_MESSAGE_EOS, -1); + fail_unless (msg != NULL, "Expected EOS message on bus! (%s)", file_name); + + gst_message_unref (msg); + gst_object_unref (bus); + + fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL), + GST_STATE_CHANGE_SUCCESS); + gst_object_unref (pipeline); + + g_free (path); +} + +GST_START_TEST (test_parse_file_pull) +{ + run_check_for_file ("pinknoise-vorbis.mkv", TRUE); +} + +GST_END_TEST; + +GST_START_TEST (test_parse_file_push) +{ + run_check_for_file ("pinknoise-vorbis.mkv", FALSE); +} + +GST_END_TEST; + +static Suite * +matroskaparse_suite (void) +{ + Suite *s = suite_create ("matroskaparse"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_parse_file_pull); + tcase_add_test (tc_chain, test_parse_file_push); + + return s; +} + +GST_CHECK_MAIN (matroskaparse) diff --git a/tests/check/elements/mpegaudioparse.c b/tests/check/elements/mpegaudioparse.c index 69a0864..2bb2699 100644 --- a/tests/check/elements/mpegaudioparse.c +++ b/tests/check/elements/mpegaudioparse.c @@ -41,8 +41,6 @@ GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (SRC_CAPS_TMPL) ); -const gchar *factory = "aacparse"; - /* some data */ static guint8 mp3_frame[384] = { 0xff, 0xfb, 0x94, 0xc4, 0xff, 0x83, 0xc0, 0x00, diff --git a/tests/check/elements/multifile.c b/tests/check/elements/multifile.c index 6fe527e..0a4849a 100644 --- a/tests/check/elements/multifile.c +++ b/tests/check/elements/multifile.c @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -40,21 +41,21 @@ run_pipeline (GstElement * pipeline) gst_element_set_state (pipeline, GST_STATE_NULL); } +#if !GLIB_CHECK_VERSION(2,30,0) static gchar * -g_mkdtemp (const gchar * template) +g_mkdtemp (gchar * template) { - gchar *s; gchar *tmpdir; - s = g_strdup (template); - tmpdir = mkdtemp (s); + tmpdir = mkdtemp (template); if (tmpdir == NULL) { - g_free (s); + g_free (template); } return tmpdir; } +#endif -GST_START_TEST (test_multifilesink) +GST_START_TEST (test_multifilesink_key_frame) { GstElement *pipeline; GstElement *mfs; @@ -71,10 +72,10 @@ GST_START_TEST (test_multifilesink) pipeline = gst_parse_launch - ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink", + ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink name=mfs", NULL); fail_if (pipeline == NULL); - mfs = gst_bin_get_by_name (GST_BIN (pipeline), "multifilesink0"); + mfs = gst_bin_get_by_name (GST_BIN (pipeline), "mfs"); fail_if (mfs == NULL); mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); g_object_set (G_OBJECT (mfs), "location", mfs_pattern, NULL); @@ -93,7 +94,115 @@ GST_START_TEST (test_multifilesink) g_free (mfs_pattern); g_free (my_tmpdir); - g_free (template); +} + +GST_END_TEST; + +GST_START_TEST (test_multifilesink_max_files) +{ + GstElement *pipeline; + GstElement *mfs; + int i; + const gchar *tmpdir; + gchar *my_tmpdir; + gchar *template; + gchar *mfs_pattern; + + tmpdir = g_get_tmp_dir (); + template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL); + my_tmpdir = g_mkdtemp (template); + fail_if (my_tmpdir == NULL); + + pipeline = + gst_parse_launch + ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink name=mfs", + NULL); + fail_if (pipeline == NULL); + mfs = gst_bin_get_by_name (GST_BIN (pipeline), "mfs"); + fail_if (mfs == NULL); + mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); + g_object_set (G_OBJECT (mfs), "location", mfs_pattern, "max-files", 3, NULL); + g_object_unref (mfs); + run_pipeline (pipeline); + gst_object_unref (pipeline); + + for (i = 0; i < 7; i++) { + char *s; + + s = g_strdup_printf (mfs_pattern, i); + fail_unless (g_remove (s) != 0); + g_free (s); + } + for (i = 7; i < 10; i++) { + char *s; + + s = g_strdup_printf (mfs_pattern, i); + fail_if (g_remove (s) != 0); + g_free (s); + } + fail_if (g_remove (my_tmpdir) != 0); + + g_free (mfs_pattern); + g_free (my_tmpdir); +} + +GST_END_TEST; + +GST_START_TEST (test_multifilesink_key_unit) +{ + GstElement *mfs; + int i; + const gchar *tmpdir; + gchar *my_tmpdir; + gchar *template; + gchar *mfs_pattern; + GstBuffer *buf; + GstPad *sink; + + tmpdir = g_get_tmp_dir (); + template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL); + my_tmpdir = g_mkdtemp (template); + fail_if (my_tmpdir == NULL); + + mfs = gst_element_factory_make ("multifilesink", NULL); + fail_if (mfs == NULL); + mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); + g_object_set (G_OBJECT (mfs), "location", mfs_pattern, "next-file", 3, NULL); + fail_if (gst_element_set_state (mfs, + GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE); + + sink = gst_element_get_static_pad (mfs, "sink"); + buf = gst_buffer_new_and_alloc (4); + + memcpy (GST_BUFFER_DATA (buf), "foo", 4); + fail_if (gst_pad_chain (sink, gst_buffer_ref (buf)) != GST_FLOW_OK); + + memcpy (GST_BUFFER_DATA (buf), "bar", 4); + fail_if (gst_pad_chain (sink, gst_buffer_ref (buf)) != GST_FLOW_OK); + + fail_unless (gst_pad_send_event (sink, + gst_video_event_new_downstream_force_key_unit (GST_CLOCK_TIME_NONE, + GST_CLOCK_TIME_NONE, GST_CLOCK_TIME_NONE, TRUE, 1))); + + memcpy (GST_BUFFER_DATA (buf), "baz", 4); + fail_if (gst_pad_chain (sink, buf) != GST_FLOW_OK); + + fail_if (gst_element_set_state (mfs, + GST_STATE_NULL) == GST_STATE_CHANGE_FAILURE); + + for (i = 0; i < 2; i++) { + char *s; + + s = g_strdup_printf (mfs_pattern, i); + fail_if (g_remove (s) != 0); + g_free (s); + } + fail_if (g_remove (my_tmpdir) != 0); + + g_free (mfs_pattern); + g_free (my_tmpdir); + gst_object_unref (sink); + gst_object_unref (mfs); } GST_END_TEST; @@ -115,10 +224,10 @@ GST_START_TEST (test_multifilesrc) pipeline = gst_parse_launch - ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink", + ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink name=mfs", NULL); fail_if (pipeline == NULL); - mfs = gst_bin_get_by_name (GST_BIN (pipeline), "multifilesink0"); + mfs = gst_bin_get_by_name (GST_BIN (pipeline), "mfs"); fail_if (mfs == NULL); mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); g_object_set (G_OBJECT (mfs), "location", mfs_pattern, NULL); @@ -151,7 +260,6 @@ GST_START_TEST (test_multifilesrc) g_free (mfs_pattern); g_free (my_tmpdir); - g_free (template); } GST_END_TEST; @@ -164,7 +272,9 @@ libvisual_suite (void) suite_add_tcase (s, tc_chain); - tcase_add_test (tc_chain, test_multifilesink); + tcase_add_test (tc_chain, test_multifilesink_key_frame); + tcase_add_test (tc_chain, test_multifilesink_max_files); + tcase_add_test (tc_chain, test_multifilesink_key_unit); tcase_add_test (tc_chain, test_multifilesrc); return s; diff --git a/tests/check/elements/parser.c b/tests/check/elements/parser.c index 7596889..4da658b 100644 --- a/tests/check/elements/parser.c +++ b/tests/check/elements/parser.c @@ -346,7 +346,9 @@ gst_parser_test_drain_garbage (guint8 * data, guint size, guint8 * garbage, { GstParserTest ptest; - gst_parser_test_init (&ptest, data, size, 1); + /* provide enough initial frames since it may take some parsers some + * time to be convinced of proper sync */ + gst_parser_test_init (&ptest, data, size, 10); ptest.series[1].data = garbage; ptest.series[1].size = gsize; ptest.series[1].num = 1; diff --git a/tests/check/elements/qtmux.c b/tests/check/elements/qtmux.c index a70e345..a9364c9 100644 --- a/tests/check/elements/qtmux.c +++ b/tests/check/elements/qtmux.c @@ -28,6 +28,8 @@ #include #endif +#include + #include #include @@ -41,12 +43,37 @@ static GstPad *mysrcpad, *mysinkpad; "layer = (int) 3, " \ "channels = (int) 2, " \ "rate = (int) 48000" + +#define AUDIO_AAC_CAPS_STRING "audio/mpeg, " \ + "mpegversion=(int)4, " \ + "channels=(int)1, " \ + "rate=(int)44100, " \ + "stream-format=(string)raw, " \ + "level=(string)2, " \ + "base-profile=(string)lc, " \ + "profile=(string)lc, " \ + "codec_data=(buffer)1208" + #define VIDEO_CAPS_STRING "video/mpeg, " \ "mpegversion = (int) 4, " \ + "systemstream = (boolean) false, " \ "width = (int) 384, " \ "height = (int) 288, " \ "framerate = (fraction) 25/1" +#define VIDEO_CAPS_H264_STRING "video/x-h264, " \ + "width=(int)320, " \ + "height=(int)240, " \ + "framerate=(fraction)30/1, " \ + "pixel-aspect-ratio=(fraction)1/1, " \ + "codec_data=(buffer)01640014ffe1001867640014a" \ + "cd94141fb0110000003001773594000f14299600" \ + "1000568ebecb22c, " \ + "stream-format=(string)avc, " \ + "alignment=(string)au, " \ + "level=(string)2, " \ + "profile=(string)high" + static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, @@ -56,11 +83,22 @@ static GstStaticPadTemplate srcvideotemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_ALWAYS, GST_STATIC_CAPS (VIDEO_CAPS_STRING)); +static GstStaticPadTemplate srcvideoh264template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (VIDEO_CAPS_H264_STRING)); + static GstStaticPadTemplate srcaudiotemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS (AUDIO_CAPS_STRING)); +static GstStaticPadTemplate srcaudioaactemplate = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (AUDIO_AAC_CAPS_STRING)); /* setup and teardown needs some special handling for muxer */ static GstPad * @@ -517,7 +555,7 @@ create_qtmux_profile (const gchar * variant) return cprof; } -GST_START_TEST (test_encodebin) +GST_START_TEST (test_encodebin_qtmux) { GstEncodingContainerProfile *cprof; GstElement *enc; @@ -553,6 +591,274 @@ GST_START_TEST (test_encodebin) GST_END_TEST; +/* Fake mp3 encoder for test */ +typedef GstElement TestMp3Enc; +typedef GstElementClass TestMp3EncClass; + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, layer=[1,3]") + ); + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int") + ); + +static GType test_mp3_enc_get_type (void); + +GST_BOILERPLATE (TestMp3Enc, test_mp3_enc, GstElement, GST_TYPE_ELEMENT); + +static void +test_mp3_enc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_static_pad_template (element_class, &sink_template); + gst_element_class_add_static_pad_template (element_class, &src_template); + + gst_element_class_set_details_simple (element_class, "MPEG1 Audio Encoder", + "Codec/Encoder/Audio", "Pretends to encode mp3", "Foo Bar "); +} + +static void +test_mp3_enc_class_init (TestMp3EncClass * klass) +{ + /* doesn't actually need to do anything for this test */ +} + +static void +test_mp3_enc_init (TestMp3Enc * mp3enc, TestMp3EncClass * klass) +{ + GstPad *pad; + + pad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_element_add_pad (mp3enc, pad); + + pad = gst_pad_new_from_static_template (&src_template, "src"); + gst_element_add_pad (mp3enc, pad); +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "testmp3enc", GST_RANK_NONE, + test_mp3_enc_get_type ()); +} + +static GstEncodingContainerProfile * +create_mp4mux_profile (void) +{ + GstEncodingContainerProfile *cprof; + GstCaps *caps; + + caps = gst_caps_new_simple ("video/quicktime", + "variant", G_TYPE_STRING, "iso", NULL); + + cprof = gst_encoding_container_profile_new ("Name", "blah", caps, NULL); + gst_caps_unref (caps); + + caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1, + "layer", G_TYPE_INT, 3, "channels", G_TYPE_INT, 2, "rate", G_TYPE_INT, + 44100, NULL); + gst_encoding_container_profile_add_profile (cprof, + GST_ENCODING_PROFILE (gst_encoding_audio_profile_new (caps, NULL, NULL, + 1))); + gst_caps_unref (caps); + + return cprof; +} + +GST_START_TEST (test_encodebin_mp4mux) +{ + GstEncodingContainerProfile *cprof; + GstPluginFeature *feature; + GstElement *enc, *mux; + GstPad *pad; + + /* need a fake mp3 encoder because mp4 only accepts encoded formats */ + gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR, + "fakemp3enc", "fakemp3enc", plugin_init, VERSION, "LGPL", + "gst-plugins-good", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); + + feature = gst_default_registry_find_feature ("testmp3enc", + GST_TYPE_ELEMENT_FACTORY); + gst_plugin_feature_set_rank (feature, GST_RANK_PRIMARY + 100); + + enc = gst_element_factory_make ("encodebin", NULL); + if (enc == NULL) + return; + + /* Make sure encodebin finds mp4mux even though qtmux outputs a superset */ + cprof = create_mp4mux_profile (); + g_object_set (enc, "profile", cprof, NULL); + gst_encoding_profile_unref (cprof); + + /* should have created a pad after setting the profile */ + pad = gst_element_get_static_pad (enc, "audio_0"); + fail_unless (pad != NULL); + gst_object_unref (pad); + + mux = gst_bin_get_by_interface (GST_BIN (enc), GST_TYPE_TAG_SETTER); + fail_unless (mux != NULL); + { + GstElementFactory *f = gst_element_get_factory (mux); + + /* make sure we got mp4mux for variant=iso */ + GST_INFO ("muxer: %s", G_OBJECT_TYPE_NAME (mux)); + fail_unless_equals_string (GST_PLUGIN_FEATURE_NAME (f), "mp4mux"); + } + gst_object_unref (mux); + gst_object_unref (enc); + + gst_plugin_feature_set_rank (feature, GST_RANK_NONE); + gst_object_unref (feature); +} + +GST_END_TEST; + +static gboolean +extract_tags (const gchar * location, GstTagList ** taglist) +{ + gboolean ret = TRUE; + GstElement *src; + GstBus *bus; + GstElement *pipeline = + gst_parse_launch ("filesrc name=src ! qtdemux ! fakesink", NULL); + + src = gst_bin_get_by_name (GST_BIN (pipeline), "src"); + g_object_set (src, "location", location, NULL); + + bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); + fail_unless (gst_element_set_state (pipeline, GST_STATE_PLAYING) + != GST_STATE_CHANGE_FAILURE); + + if (*taglist == NULL) { + *taglist = gst_tag_list_new (); + } + + while (1) { + GstMessage *msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, + GST_MESSAGE_TAG | GST_MESSAGE_ERROR | GST_MESSAGE_EOS); + + if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS) { + gst_message_unref (msg); + break; + } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) { + ret = FALSE; + gst_message_unref (msg); + break; + } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_TAG) { + GstTagList *tags; + + gst_message_parse_tag (msg, &tags); + gst_tag_list_insert (*taglist, tags, GST_TAG_MERGE_REPLACE); + gst_tag_list_free (tags); + } + gst_message_unref (msg); + } + + gst_object_unref (bus); + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (src); + gst_object_unref (pipeline); + return ret; +} + +static void +test_average_bitrate_custom (const gchar * elementname, + GstStaticPadTemplate * tmpl, const gchar * sinkpadname) +{ + gchar *location; + GstElement *qtmux; + GstElement *filesink; + GstBuffer *inbuffer; + GstCaps *caps; + int i; + gint bytes[] = { 16, 22, 12 }; + gint64 durations[] = { GST_SECOND * 3, GST_SECOND * 5, GST_SECOND * 2 }; + gint64 total_bytes = 0; + GstClockTime total_duration = 0; + + location = g_strdup_printf ("%s/%s-%d", g_get_tmp_dir (), "qtmuxtest", + g_random_int ()); + GST_INFO ("Using location %s for bitrate test", location); + qtmux = gst_check_setup_element (elementname); + filesink = gst_element_factory_make ("filesink", NULL); + g_object_set (filesink, "location", location, NULL); + gst_element_link (qtmux, filesink); + mysrcpad = setup_src_pad (qtmux, tmpl, NULL, sinkpadname); + fail_unless (mysrcpad != NULL); + gst_pad_set_active (mysrcpad, TRUE); + + fail_unless (gst_element_set_state (filesink, + GST_STATE_PLAYING) != GST_STATE_CHANGE_FAILURE, + "could not set filesink to playing"); + fail_unless (gst_element_set_state (qtmux, + GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, + "could not set to playing"); + + for (i = 0; i < 3; i++) { + inbuffer = gst_buffer_new_and_alloc (bytes[i]); + caps = gst_caps_copy (gst_pad_get_pad_template_caps (mysrcpad)); + gst_buffer_set_caps (inbuffer, caps); + gst_caps_unref (caps); + GST_BUFFER_TIMESTAMP (inbuffer) = total_duration; + GST_BUFFER_DURATION (inbuffer) = (GstClockTime) durations[i]; + ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1); + + total_bytes += GST_BUFFER_SIZE (inbuffer); + total_duration += GST_BUFFER_DURATION (inbuffer); + fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK); + } + + /* send eos to have moov written */ + fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()) == TRUE); + + gst_element_set_state (qtmux, GST_STATE_NULL); + gst_element_set_state (filesink, GST_STATE_NULL); + + gst_pad_set_active (mysrcpad, FALSE); + teardown_src_pad (mysrcpad); + gst_object_unref (filesink); + gst_check_teardown_element (qtmux); + + /* check the bitrate tag */ + { + GstTagList *taglist = NULL; + guint bitrate = 0; + guint expected; + + fail_unless (extract_tags (location, &taglist)); + + fail_unless (gst_tag_list_get_uint (taglist, GST_TAG_BITRATE, &bitrate)); + + expected = + (guint) gst_util_uint64_scale_round ((guint64) total_bytes, + (guint64) 8 * GST_SECOND, (guint64) total_duration); + fail_unless (bitrate == expected); + gst_tag_list_free (taglist); + } + + /* delete file */ + g_unlink (location); + g_free (location); +} + +GST_START_TEST (test_average_bitrate) +{ + test_average_bitrate_custom ("mp4mux", &srcaudioaactemplate, "audio_%d"); + test_average_bitrate_custom ("mp4mux", &srcvideoh264template, "video_%d"); + + test_average_bitrate_custom ("qtmux", &srcaudioaactemplate, "audio_%d"); + test_average_bitrate_custom ("qtmux", &srcvideoh264template, "video_%d"); +} + +GST_END_TEST; + + static Suite * qtmux_suite (void) { @@ -581,8 +887,11 @@ qtmux_suite (void) tcase_add_test (tc_chain, test_video_pad_frag_asc_streamable); tcase_add_test (tc_chain, test_audio_pad_frag_asc_streamable); + tcase_add_test (tc_chain, test_average_bitrate); + tcase_add_test (tc_chain, test_reuse); - tcase_add_test (tc_chain, test_encodebin); + tcase_add_test (tc_chain, test_encodebin_qtmux); + tcase_add_test (tc_chain, test_encodebin_mp4mux); return s; } diff --git a/tests/check/elements/rgvolume.c b/tests/check/elements/rgvolume.c index 3add27a..5226259 100644 --- a/tests/check/elements/rgvolume.c +++ b/tests/check/elements/rgvolume.c @@ -49,6 +49,8 @@ static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (RG_VOLUME_CAPS_TEMPLATE_STRING) ); +static GstBuffer *test_buffer_new (gfloat value); + /* gstcheck sets up a chain function that appends buffers to a global list. * This is our equivalent of that for event handling. */ static gboolean @@ -79,6 +81,35 @@ setup_rgvolume (void) } static void +send_newsegment_and_empty_buffer (void) +{ + GstBuffer *buf; + GstEvent *ev; + + fail_unless (g_list_length (events) == 0); + + ev = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, -1, 0); + fail_unless (gst_pad_push_event (mysrcpad, ev), + "Pushing newsegment event failed"); + + buf = test_buffer_new (0.0); + GST_BUFFER_SIZE (buf) = 0; + GST_BUFFER_DURATION (buf) = 0; + GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET (buf); + fail_unless (gst_pad_push (mysrcpad, buf) == GST_FLOW_OK); + + fail_unless (g_list_length (events) == 1); + fail_unless (events->data == ev); + gst_mini_object_unref ((GstMiniObject *) events->data); + events = g_list_remove (events, ev); + + fail_unless (g_list_length (buffers) == 1); + fail_unless (buffers->data == buf); + gst_mini_object_unref ((GstMiniObject *) buffers->data); + buffers = g_list_remove (buffers, buf); +} + +static void cleanup_rgvolume (GstElement * element) { GST_DEBUG ("cleanup_rgvolume"); @@ -288,6 +319,8 @@ GST_START_TEST (test_events) set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, +4.95, GST_TAG_TRACK_PEAK, 0.59463, @@ -336,6 +369,8 @@ GST_START_TEST (test_simple) "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, -3.45, GST_TAG_TRACK_PEAK, 1.0, @@ -376,6 +411,8 @@ GST_START_TEST (test_fallback_gain) "pre-amp", -6.00, "fallback-gain", -3.00, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, +3.5, GST_TAG_TRACK_PEAK, 1.0, @@ -419,6 +456,8 @@ GST_START_TEST (test_fallback_track) "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, +2.11, GST_TAG_TRACK_PEAK, 1.0, NULL); @@ -444,6 +483,8 @@ GST_START_TEST (test_fallback_album) "pre-amp", -6.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_ALBUM_GAIN, +3.73, GST_TAG_ALBUM_PEAK, 1.0, NULL); @@ -466,6 +507,8 @@ GST_START_TEST (test_headroom) "pre-amp", +0.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, +3.50, GST_TAG_TRACK_PEAK, 1.0, NULL); @@ -508,6 +551,8 @@ GST_START_TEST (test_reference_level) "headroom", +0.00, "pre-amp", +0.00, "fallback-gain", +1.23, NULL); set_playing_state (element); + send_newsegment_and_empty_buffer (); + tag_list = gst_tag_list_new (); gst_tag_list_add (tag_list, GST_TAG_MERGE_REPLACE, GST_TAG_TRACK_GAIN, 0.00, GST_TAG_TRACK_PEAK, 0.2, diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c index ba15745..9fc8f7c 100644 --- a/tests/check/elements/souphttpsrc.c +++ b/tests/check/elements/souphttpsrc.c @@ -23,6 +23,8 @@ # include "config.h" #endif +#include + #include #include #include @@ -442,8 +444,11 @@ souphttpsrc_suite (void) TCase *tc_chain, *tc_internet; g_type_init (); + +#if !GLIB_CHECK_VERSION (2, 31, 0) if (!g_thread_supported ()) g_thread_init (NULL); +#endif s = suite_create ("souphttpsrc"); tc_chain = tcase_create ("general"); @@ -451,7 +456,7 @@ souphttpsrc_suite (void) suite_add_tcase (s, tc_chain); run_server (&http_port, &https_port); - g_atexit (stop_server); + atexit (stop_server); tcase_add_test (tc_chain, test_first_buffer_has_offset); tcase_add_test (tc_chain, test_redirect_yes); tcase_add_test (tc_chain, test_redirect_no); diff --git a/tests/check/elements/videocrop.c b/tests/check/elements/videocrop.c index 19b5c17..fc7c5dc 100644 --- a/tests/check/elements/videocrop.c +++ b/tests/check/elements/videocrop.c @@ -350,6 +350,7 @@ GST_START_TEST (test_crop_to_1x1) if (g_strcmp0 (gst_structure_get_name (s), "video/x-raw-gray") == 0) { /* videotestsrc does not support this format */ + gst_caps_unref (caps); continue; } diff --git a/tests/check/pipelines/wavenc.c b/tests/check/pipelines/wavenc.c index ab9f62b..c5344a7 100644 --- a/tests/check/pipelines/wavenc.c +++ b/tests/check/pipelines/wavenc.c @@ -54,7 +54,7 @@ bus_handler (GstBus * bus, GstMessage * message, gpointer data) /* * gst-launch \ - * audiotestsrc freq=440 num-buffers=100 ! interleave name=i ! wavenc ! filesink location=/tmp/mc.wav \ + * audiotestsrc freq=440 num-buffers=100 ! interleave name=i ! audioconvert ! wavenc ! filesink location=/tmp/mc.wav \ * audiotestsrc freq=880 num-buffers=100 ! i. * ... * @@ -65,7 +65,7 @@ static void make_n_channel_wav (const gint channels, const GValueArray * arr) { GstElement *pipeline; - GstElement **audiotestsrc, *interleave, *wavenc, *fakesink; + GstElement **audiotestsrc, *interleave, *wavenc, *conv, *fakesink; GstBus *bus; GMainLoop *loop; guint i; @@ -81,10 +81,21 @@ make_n_channel_wav (const gint channels, const GValueArray * arr) g_object_set (interleave, "channel-positions", arr, NULL); gst_bin_add (GST_BIN (pipeline), interleave); + if (G_BYTE_ORDER == G_BIG_ENDIAN) { + /* we're not here to test orc; audioconvert misbehaves on ppc32 */ + g_setenv ("ORC_CODE", "backup", 1); + conv = gst_element_factory_make ("audioconvert", NULL); + } else { + conv = gst_element_factory_make ("identity", NULL); + } + fail_unless (conv != NULL); + gst_bin_add (GST_BIN (pipeline), conv); + fail_unless (gst_element_link (interleave, conv)); + wavenc = gst_element_factory_make ("wavenc", NULL); fail_unless (wavenc != NULL); gst_bin_add (GST_BIN (pipeline), wavenc); - fail_unless (gst_element_link (interleave, wavenc)); + fail_unless (gst_element_link (conv, wavenc)); fakesink = gst_element_factory_make ("fakesink", NULL); fail_unless (fakesink != NULL); diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in index 9a20d95..5f9ce74 100644 --- a/tests/examples/Makefile.in +++ b/tests/examples/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -70,8 +70,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -85,11 +84,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -208,7 +207,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -283,7 +285,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -307,6 +308,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -341,18 +343,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -405,6 +399,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -439,7 +434,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -494,6 +488,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; +$(top_srcdir)/common/parallel-subdirs.mak: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -718,10 +713,15 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in index 622cec2..d55ae51 100644 --- a/tests/examples/audiofx/Makefile.in +++ b/tests/examples/audiofx/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -89,8 +88,8 @@ firfilter_example_OBJECTS = \ am__DEPENDENCIES_1 = firfilter_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent firfilter_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -115,21 +114,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = firfilter-example.c iirfilter-example.c DIST_SOURCES = firfilter-example.c iirfilter-example.c @@ -211,7 +210,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -286,7 +288,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -310,6 +311,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -344,18 +346,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -408,6 +402,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -442,7 +437,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -510,10 +504,10 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -firfilter-example$(EXEEXT): $(firfilter_example_OBJECTS) $(firfilter_example_DEPENDENCIES) +firfilter-example$(EXEEXT): $(firfilter_example_OBJECTS) $(firfilter_example_DEPENDENCIES) $(EXTRA_firfilter_example_DEPENDENCIES) @rm -f firfilter-example$(EXEEXT) $(AM_V_CCLD)$(firfilter_example_LINK) $(firfilter_example_OBJECTS) $(firfilter_example_LDADD) $(LIBS) -iirfilter-example$(EXEEXT): $(iirfilter_example_OBJECTS) $(iirfilter_example_DEPENDENCIES) +iirfilter-example$(EXEEXT): $(iirfilter_example_OBJECTS) $(iirfilter_example_DEPENDENCIES) $(EXTRA_iirfilter_example_DEPENDENCIES) @rm -f iirfilter-example$(EXEEXT) $(AM_V_CCLD)$(iirfilter_example_LINK) $(iirfilter_example_OBJECTS) $(iirfilter_example_LDADD) $(LIBS) @@ -529,58 +523,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< firfilter_example-firfilter-example.o: firfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -MT firfilter_example-firfilter-example.o -MD -MP -MF $(DEPDIR)/firfilter_example-firfilter-example.Tpo -c -o firfilter_example-firfilter-example.o `test -f 'firfilter-example.c' || echo '$(srcdir)/'`firfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/firfilter_example-firfilter-example.Tpo $(DEPDIR)/firfilter_example-firfilter-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='firfilter-example.c' object='firfilter_example-firfilter-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='firfilter-example.c' object='firfilter_example-firfilter-example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -c -o firfilter_example-firfilter-example.o `test -f 'firfilter-example.c' || echo '$(srcdir)/'`firfilter-example.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -c -o firfilter_example-firfilter-example.o `test -f 'firfilter-example.c' || echo '$(srcdir)/'`firfilter-example.c firfilter_example-firfilter-example.obj: firfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -MT firfilter_example-firfilter-example.obj -MD -MP -MF $(DEPDIR)/firfilter_example-firfilter-example.Tpo -c -o firfilter_example-firfilter-example.obj `if test -f 'firfilter-example.c'; then $(CYGPATH_W) 'firfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/firfilter-example.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/firfilter_example-firfilter-example.Tpo $(DEPDIR)/firfilter_example-firfilter-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='firfilter-example.c' object='firfilter_example-firfilter-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='firfilter-example.c' object='firfilter_example-firfilter-example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -c -o firfilter_example-firfilter-example.obj `if test -f 'firfilter-example.c'; then $(CYGPATH_W) 'firfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/firfilter-example.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(firfilter_example_CFLAGS) $(CFLAGS) -c -o firfilter_example-firfilter-example.obj `if test -f 'firfilter-example.c'; then $(CYGPATH_W) 'firfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/firfilter-example.c'; fi` iirfilter_example-iirfilter-example.o: iirfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -MT iirfilter_example-iirfilter-example.o -MD -MP -MF $(DEPDIR)/iirfilter_example-iirfilter-example.Tpo -c -o iirfilter_example-iirfilter-example.o `test -f 'iirfilter-example.c' || echo '$(srcdir)/'`iirfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iirfilter_example-iirfilter-example.Tpo $(DEPDIR)/iirfilter_example-iirfilter-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iirfilter-example.c' object='iirfilter_example-iirfilter-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iirfilter-example.c' object='iirfilter_example-iirfilter-example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -c -o iirfilter_example-iirfilter-example.o `test -f 'iirfilter-example.c' || echo '$(srcdir)/'`iirfilter-example.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -c -o iirfilter_example-iirfilter-example.o `test -f 'iirfilter-example.c' || echo '$(srcdir)/'`iirfilter-example.c iirfilter_example-iirfilter-example.obj: iirfilter-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -MT iirfilter_example-iirfilter-example.obj -MD -MP -MF $(DEPDIR)/iirfilter_example-iirfilter-example.Tpo -c -o iirfilter_example-iirfilter-example.obj `if test -f 'iirfilter-example.c'; then $(CYGPATH_W) 'iirfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/iirfilter-example.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iirfilter_example-iirfilter-example.Tpo $(DEPDIR)/iirfilter_example-iirfilter-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iirfilter-example.c' object='iirfilter_example-iirfilter-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iirfilter-example.c' object='iirfilter_example-iirfilter-example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -c -o iirfilter_example-iirfilter-example.obj `if test -f 'iirfilter-example.c'; then $(CYGPATH_W) 'iirfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/iirfilter-example.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iirfilter_example_CFLAGS) $(CFLAGS) -c -o iirfilter_example-iirfilter-example.obj `if test -f 'iirfilter-example.c'; then $(CYGPATH_W) 'iirfilter-example.c'; else $(CYGPATH_W) '$(srcdir)/iirfilter-example.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -684,10 +671,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/cairo/Makefile.am b/tests/examples/cairo/Makefile.am index 45f5468..3a5eb58 100644 --- a/tests/examples/cairo/Makefile.am +++ b/tests/examples/cairo/Makefile.am @@ -4,4 +4,4 @@ endif cairo_overlay_SOURCES = cairo_overlay.c cairo_overlay_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(CAIRO_CFLAGS) -cairo_overlay_LDADD = -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(CAIRO_LIBS) +cairo_overlay_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(CAIRO_LIBS) diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in index d9f38fe..aad215c 100644 --- a/tests/examples/cairo/Makefile.in +++ b/tests/examples/cairo/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -86,9 +85,9 @@ am_cairo_overlay_OBJECTS = cairo_overlay-cairo_overlay.$(OBJEXT) cairo_overlay_OBJECTS = $(am_cairo_overlay_OBJECTS) am__DEPENDENCIES_1 = cairo_overlay_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent cairo_overlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(cairo_overlay_CFLAGS) \ @@ -103,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(cairo_overlay_SOURCES) DIST_SOURCES = $(cairo_overlay_SOURCES) @@ -199,7 +198,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -274,7 +276,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -298,6 +299,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -332,18 +334,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -396,6 +390,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -430,7 +425,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -453,7 +447,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ cairo_overlay_SOURCES = cairo_overlay.c cairo_overlay_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(CAIRO_CFLAGS) -cairo_overlay_LDADD = -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(CAIRO_LIBS) +cairo_overlay_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) $(GST_LIBS) $(CAIRO_LIBS) all: all-am .SUFFIXES: @@ -497,7 +491,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -cairo_overlay$(EXEEXT): $(cairo_overlay_OBJECTS) $(cairo_overlay_DEPENDENCIES) +cairo_overlay$(EXEEXT): $(cairo_overlay_OBJECTS) $(cairo_overlay_DEPENDENCIES) $(EXTRA_cairo_overlay_DEPENDENCIES) @rm -f cairo_overlay$(EXEEXT) $(AM_V_CCLD)$(cairo_overlay_LINK) $(cairo_overlay_OBJECTS) $(cairo_overlay_LDADD) $(LIBS) @@ -512,42 +506,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< cairo_overlay-cairo_overlay.o: cairo_overlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -MT cairo_overlay-cairo_overlay.o -MD -MP -MF $(DEPDIR)/cairo_overlay-cairo_overlay.Tpo -c -o cairo_overlay-cairo_overlay.o `test -f 'cairo_overlay.c' || echo '$(srcdir)/'`cairo_overlay.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_overlay-cairo_overlay.Tpo $(DEPDIR)/cairo_overlay-cairo_overlay.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo_overlay.c' object='cairo_overlay-cairo_overlay.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cairo_overlay.c' object='cairo_overlay-cairo_overlay.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -c -o cairo_overlay-cairo_overlay.o `test -f 'cairo_overlay.c' || echo '$(srcdir)/'`cairo_overlay.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -c -o cairo_overlay-cairo_overlay.o `test -f 'cairo_overlay.c' || echo '$(srcdir)/'`cairo_overlay.c cairo_overlay-cairo_overlay.obj: cairo_overlay.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -MT cairo_overlay-cairo_overlay.obj -MD -MP -MF $(DEPDIR)/cairo_overlay-cairo_overlay.Tpo -c -o cairo_overlay-cairo_overlay.obj `if test -f 'cairo_overlay.c'; then $(CYGPATH_W) 'cairo_overlay.c'; else $(CYGPATH_W) '$(srcdir)/cairo_overlay.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_overlay-cairo_overlay.Tpo $(DEPDIR)/cairo_overlay-cairo_overlay.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo_overlay.c' object='cairo_overlay-cairo_overlay.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cairo_overlay.c' object='cairo_overlay-cairo_overlay.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -c -o cairo_overlay-cairo_overlay.obj `if test -f 'cairo_overlay.c'; then $(CYGPATH_W) 'cairo_overlay.c'; else $(CYGPATH_W) '$(srcdir)/cairo_overlay.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_overlay_CFLAGS) $(CFLAGS) -c -o cairo_overlay-cairo_overlay.obj `if test -f 'cairo_overlay.c'; then $(CYGPATH_W) 'cairo_overlay.c'; else $(CYGPATH_W) '$(srcdir)/cairo_overlay.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -651,10 +640,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in index 89c81fb..de371a2 100644 --- a/tests/examples/equalizer/Makefile.in +++ b/tests/examples/equalizer/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -87,8 +86,8 @@ demo_OBJECTS = $(am_demo_OBJECTS) am__DEPENDENCIES_1 = demo_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent demo_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(demo_CFLAGS) $(CFLAGS) \ @@ -103,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(demo_SOURCES) DIST_SOURCES = $(demo_SOURCES) @@ -199,7 +198,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -274,7 +276,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -298,6 +299,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -332,18 +334,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -396,6 +390,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -430,7 +425,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -497,7 +491,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -demo$(EXEEXT): $(demo_OBJECTS) $(demo_DEPENDENCIES) +demo$(EXEEXT): $(demo_OBJECTS) $(demo_DEPENDENCIES) $(EXTRA_demo_DEPENDENCIES) @rm -f demo$(EXEEXT) $(AM_V_CCLD)$(demo_LINK) $(demo_OBJECTS) $(demo_LDADD) $(LIBS) @@ -512,42 +506,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< demo-demo.o: demo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -MT demo-demo.o -MD -MP -MF $(DEPDIR)/demo-demo.Tpo -c -o demo-demo.o `test -f 'demo.c' || echo '$(srcdir)/'`demo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo-demo.Tpo $(DEPDIR)/demo-demo.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo.c' object='demo-demo.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo.c' object='demo-demo.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -c -o demo-demo.o `test -f 'demo.c' || echo '$(srcdir)/'`demo.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -c -o demo-demo.o `test -f 'demo.c' || echo '$(srcdir)/'`demo.c demo-demo.obj: demo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -MT demo-demo.obj -MD -MP -MF $(DEPDIR)/demo-demo.Tpo -c -o demo-demo.obj `if test -f 'demo.c'; then $(CYGPATH_W) 'demo.c'; else $(CYGPATH_W) '$(srcdir)/demo.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo-demo.Tpo $(DEPDIR)/demo-demo.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo.c' object='demo-demo.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo.c' object='demo-demo.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -c -o demo-demo.obj `if test -f 'demo.c'; then $(CYGPATH_W) 'demo.c'; else $(CYGPATH_W) '$(srcdir)/demo.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_CFLAGS) $(CFLAGS) -c -o demo-demo.obj `if test -f 'demo.c'; then $(CYGPATH_W) 'demo.c'; else $(CYGPATH_W) '$(srcdir)/demo.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -651,10 +640,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in index 95ac89c..bf112c0 100644 --- a/tests/examples/jack/Makefile.in +++ b/tests/examples/jack/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -86,8 +85,8 @@ PROGRAMS = $(noinst_PROGRAMS) am_jack_client_OBJECTS = jack_client-jack_client.$(OBJEXT) jack_client_OBJECTS = $(am_jack_client_OBJECTS) jack_client_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent jack_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(jack_client_CFLAGS) \ @@ -102,21 +101,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(jack_client_SOURCES) DIST_SOURCES = $(jack_client_SOURCES) @@ -198,7 +197,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -273,7 +275,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -297,6 +298,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -331,18 +333,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -395,6 +389,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -429,7 +424,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -498,7 +492,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -jack_client$(EXEEXT): $(jack_client_OBJECTS) $(jack_client_DEPENDENCIES) +jack_client$(EXEEXT): $(jack_client_OBJECTS) $(jack_client_DEPENDENCIES) $(EXTRA_jack_client_DEPENDENCIES) @rm -f jack_client$(EXEEXT) $(AM_V_CCLD)$(jack_client_LINK) $(jack_client_OBJECTS) $(jack_client_LDADD) $(LIBS) @@ -513,42 +507,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< jack_client-jack_client.o: jack_client.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -MT jack_client-jack_client.o -MD -MP -MF $(DEPDIR)/jack_client-jack_client.Tpo -c -o jack_client-jack_client.o `test -f 'jack_client.c' || echo '$(srcdir)/'`jack_client.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jack_client-jack_client.Tpo $(DEPDIR)/jack_client-jack_client.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jack_client.c' object='jack_client-jack_client.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jack_client.c' object='jack_client-jack_client.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -c -o jack_client-jack_client.o `test -f 'jack_client.c' || echo '$(srcdir)/'`jack_client.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -c -o jack_client-jack_client.o `test -f 'jack_client.c' || echo '$(srcdir)/'`jack_client.c jack_client-jack_client.obj: jack_client.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -MT jack_client-jack_client.obj -MD -MP -MF $(DEPDIR)/jack_client-jack_client.Tpo -c -o jack_client-jack_client.obj `if test -f 'jack_client.c'; then $(CYGPATH_W) 'jack_client.c'; else $(CYGPATH_W) '$(srcdir)/jack_client.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/jack_client-jack_client.Tpo $(DEPDIR)/jack_client-jack_client.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jack_client.c' object='jack_client-jack_client.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='jack_client.c' object='jack_client-jack_client.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -c -o jack_client-jack_client.obj `if test -f 'jack_client.c'; then $(CYGPATH_W) 'jack_client.c'; else $(CYGPATH_W) '$(srcdir)/jack_client.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jack_client_CFLAGS) $(CFLAGS) -c -o jack_client-jack_client.obj `if test -f 'jack_client.c'; then $(CYGPATH_W) 'jack_client.c'; else $(CYGPATH_W) '$(srcdir)/jack_client.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -652,10 +641,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in index 9d2514e..3ec0a10 100644 --- a/tests/examples/level/Makefile.in +++ b/tests/examples/level/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -87,8 +86,8 @@ level_example_OBJECTS = level_example-level-example.$(OBJEXT) am__DEPENDENCIES_1 = level_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent level_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(level_example_CFLAGS) \ @@ -103,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = level-example.c DIST_SOURCES = level-example.c @@ -199,7 +198,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -274,7 +276,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -298,6 +299,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -332,18 +334,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -396,6 +390,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -430,7 +425,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -496,7 +490,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -level-example$(EXEEXT): $(level_example_OBJECTS) $(level_example_DEPENDENCIES) +level-example$(EXEEXT): $(level_example_OBJECTS) $(level_example_DEPENDENCIES) $(EXTRA_level_example_DEPENDENCIES) @rm -f level-example$(EXEEXT) $(AM_V_CCLD)$(level_example_LINK) $(level_example_OBJECTS) $(level_example_LDADD) $(LIBS) @@ -511,42 +505,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< level_example-level-example.o: level-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -MT level_example-level-example.o -MD -MP -MF $(DEPDIR)/level_example-level-example.Tpo -c -o level_example-level-example.o `test -f 'level-example.c' || echo '$(srcdir)/'`level-example.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/level_example-level-example.Tpo $(DEPDIR)/level_example-level-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='level-example.c' object='level_example-level-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='level-example.c' object='level_example-level-example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -c -o level_example-level-example.o `test -f 'level-example.c' || echo '$(srcdir)/'`level-example.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -c -o level_example-level-example.o `test -f 'level-example.c' || echo '$(srcdir)/'`level-example.c level_example-level-example.obj: level-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -MT level_example-level-example.obj -MD -MP -MF $(DEPDIR)/level_example-level-example.Tpo -c -o level_example-level-example.obj `if test -f 'level-example.c'; then $(CYGPATH_W) 'level-example.c'; else $(CYGPATH_W) '$(srcdir)/level-example.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/level_example-level-example.Tpo $(DEPDIR)/level_example-level-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='level-example.c' object='level_example-level-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='level-example.c' object='level_example-level-example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -c -o level_example-level-example.obj `if test -f 'level-example.c'; then $(CYGPATH_W) 'level-example.c'; else $(CYGPATH_W) '$(srcdir)/level-example.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(level_example_CFLAGS) $(CFLAGS) -c -o level_example-level-example.obj `if test -f 'level-example.c'; then $(CYGPATH_W) 'level-example.c'; else $(CYGPATH_W) '$(srcdir)/level-example.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -650,10 +639,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in index 03b6d94..da82e6e 100644 --- a/tests/examples/pulse/Makefile.in +++ b/tests/examples/pulse/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -87,8 +86,8 @@ pulse_OBJECTS = pulse-pulse.$(OBJEXT) am__DEPENDENCIES_1 = pulse_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent pulse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(pulse_CFLAGS) $(CFLAGS) \ @@ -103,21 +102,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = pulse.c DIST_SOURCES = pulse.c @@ -199,7 +198,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -274,7 +276,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -298,6 +299,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -332,18 +334,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -396,6 +390,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -430,7 +425,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -496,7 +490,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -pulse$(EXEEXT): $(pulse_OBJECTS) $(pulse_DEPENDENCIES) +pulse$(EXEEXT): $(pulse_OBJECTS) $(pulse_DEPENDENCIES) $(EXTRA_pulse_DEPENDENCIES) @rm -f pulse$(EXEEXT) $(AM_V_CCLD)$(pulse_LINK) $(pulse_OBJECTS) $(pulse_LDADD) $(LIBS) @@ -511,42 +505,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< pulse-pulse.o: pulse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -MT pulse-pulse.o -MD -MP -MF $(DEPDIR)/pulse-pulse.Tpo -c -o pulse-pulse.o `test -f 'pulse.c' || echo '$(srcdir)/'`pulse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pulse-pulse.Tpo $(DEPDIR)/pulse-pulse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulse.c' object='pulse-pulse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulse.c' object='pulse-pulse.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -c -o pulse-pulse.o `test -f 'pulse.c' || echo '$(srcdir)/'`pulse.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -c -o pulse-pulse.o `test -f 'pulse.c' || echo '$(srcdir)/'`pulse.c pulse-pulse.obj: pulse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -MT pulse-pulse.obj -MD -MP -MF $(DEPDIR)/pulse-pulse.Tpo -c -o pulse-pulse.obj `if test -f 'pulse.c'; then $(CYGPATH_W) 'pulse.c'; else $(CYGPATH_W) '$(srcdir)/pulse.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pulse-pulse.Tpo $(DEPDIR)/pulse-pulse.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulse.c' object='pulse-pulse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulse.c' object='pulse-pulse.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -c -o pulse-pulse.obj `if test -f 'pulse.c'; then $(CYGPATH_W) 'pulse.c'; else $(CYGPATH_W) '$(srcdir)/pulse.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pulse_CFLAGS) $(CFLAGS) -c -o pulse-pulse.obj `if test -f 'pulse.c'; then $(CYGPATH_W) 'pulse.c'; else $(CYGPATH_W) '$(srcdir)/pulse.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -650,10 +639,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in index 9946d3e..56e5948 100644 --- a/tests/examples/rtp/Makefile.in +++ b/tests/examples/rtp/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -67,8 +67,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -87,8 +86,8 @@ am_client_PCMA_OBJECTS = client_PCMA-client-PCMA.$(OBJEXT) client_PCMA_OBJECTS = $(am_client_PCMA_OBJECTS) am__DEPENDENCIES_1 = client_PCMA_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent client_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(client_PCMA_CFLAGS) \ @@ -113,21 +112,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) DIST_SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) @@ -209,7 +208,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -284,7 +286,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -308,6 +309,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -342,18 +344,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -406,6 +400,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -440,7 +435,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -523,10 +517,10 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -client-PCMA$(EXEEXT): $(client_PCMA_OBJECTS) $(client_PCMA_DEPENDENCIES) +client-PCMA$(EXEEXT): $(client_PCMA_OBJECTS) $(client_PCMA_DEPENDENCIES) $(EXTRA_client_PCMA_DEPENDENCIES) @rm -f client-PCMA$(EXEEXT) $(AM_V_CCLD)$(client_PCMA_LINK) $(client_PCMA_OBJECTS) $(client_PCMA_LDADD) $(LIBS) -server-alsasrc-PCMA$(EXEEXT): $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_DEPENDENCIES) +server-alsasrc-PCMA$(EXEEXT): $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_DEPENDENCIES) $(EXTRA_server_alsasrc_PCMA_DEPENDENCIES) @rm -f server-alsasrc-PCMA$(EXEEXT) $(AM_V_CCLD)$(server_alsasrc_PCMA_LINK) $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_LDADD) $(LIBS) @@ -542,58 +536,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< client_PCMA-client-PCMA.o: client-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -MT client_PCMA-client-PCMA.o -MD -MP -MF $(DEPDIR)/client_PCMA-client-PCMA.Tpo -c -o client_PCMA-client-PCMA.o `test -f 'client-PCMA.c' || echo '$(srcdir)/'`client-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/client_PCMA-client-PCMA.Tpo $(DEPDIR)/client_PCMA-client-PCMA.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='client-PCMA.c' object='client_PCMA-client-PCMA.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client-PCMA.c' object='client_PCMA-client-PCMA.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -c -o client_PCMA-client-PCMA.o `test -f 'client-PCMA.c' || echo '$(srcdir)/'`client-PCMA.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -c -o client_PCMA-client-PCMA.o `test -f 'client-PCMA.c' || echo '$(srcdir)/'`client-PCMA.c client_PCMA-client-PCMA.obj: client-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -MT client_PCMA-client-PCMA.obj -MD -MP -MF $(DEPDIR)/client_PCMA-client-PCMA.Tpo -c -o client_PCMA-client-PCMA.obj `if test -f 'client-PCMA.c'; then $(CYGPATH_W) 'client-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/client-PCMA.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/client_PCMA-client-PCMA.Tpo $(DEPDIR)/client_PCMA-client-PCMA.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='client-PCMA.c' object='client_PCMA-client-PCMA.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client-PCMA.c' object='client_PCMA-client-PCMA.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -c -o client_PCMA-client-PCMA.obj `if test -f 'client-PCMA.c'; then $(CYGPATH_W) 'client-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/client-PCMA.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_PCMA_CFLAGS) $(CFLAGS) -c -o client_PCMA-client-PCMA.obj `if test -f 'client-PCMA.c'; then $(CYGPATH_W) 'client-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/client-PCMA.c'; fi` server_alsasrc_PCMA-server-alsasrc-PCMA.o: server-alsasrc-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -MT server_alsasrc_PCMA-server-alsasrc-PCMA.o -MD -MP -MF $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.o `test -f 'server-alsasrc-PCMA.c' || echo '$(srcdir)/'`server-alsasrc-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='server-alsasrc-PCMA.c' object='server_alsasrc_PCMA-server-alsasrc-PCMA.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server-alsasrc-PCMA.c' object='server_alsasrc_PCMA-server-alsasrc-PCMA.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.o `test -f 'server-alsasrc-PCMA.c' || echo '$(srcdir)/'`server-alsasrc-PCMA.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.o `test -f 'server-alsasrc-PCMA.c' || echo '$(srcdir)/'`server-alsasrc-PCMA.c server_alsasrc_PCMA-server-alsasrc-PCMA.obj: server-alsasrc-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -MT server_alsasrc_PCMA-server-alsasrc-PCMA.obj -MD -MP -MF $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.obj `if test -f 'server-alsasrc-PCMA.c'; then $(CYGPATH_W) 'server-alsasrc-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/server-alsasrc-PCMA.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='server-alsasrc-PCMA.c' object='server_alsasrc_PCMA-server-alsasrc-PCMA.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server-alsasrc-PCMA.c' object='server_alsasrc_PCMA-server-alsasrc-PCMA.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.obj `if test -f 'server-alsasrc-PCMA.c'; then $(CYGPATH_W) 'server-alsasrc-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/server-alsasrc-PCMA.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.obj `if test -f 'server-alsasrc-PCMA.c'; then $(CYGPATH_W) 'server-alsasrc-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/server-alsasrc-PCMA.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -697,10 +684,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in index 9aa102c..f403d6f 100644 --- a/tests/examples/shapewipe/Makefile.in +++ b/tests/examples/shapewipe/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -68,8 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -90,8 +89,8 @@ shapewipe_example_OBJECTS = $(am_shapewipe_example_OBJECTS) am__DEPENDENCIES_1 = shapewipe_example_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent shapewipe_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -107,21 +106,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(shapewipe_example_SOURCES) DIST_SOURCES = $(shapewipe_example_SOURCES) @@ -204,7 +203,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -279,7 +281,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -303,6 +304,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -337,18 +339,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -401,6 +395,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -435,7 +430,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -503,7 +497,7 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -shapewipe-example$(EXEEXT): $(shapewipe_example_OBJECTS) $(shapewipe_example_DEPENDENCIES) +shapewipe-example$(EXEEXT): $(shapewipe_example_OBJECTS) $(shapewipe_example_DEPENDENCIES) $(EXTRA_shapewipe_example_DEPENDENCIES) @rm -f shapewipe-example$(EXEEXT) $(AM_V_CCLD)$(shapewipe_example_LINK) $(shapewipe_example_OBJECTS) $(shapewipe_example_LDADD) $(LIBS) @@ -518,42 +512,37 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< shapewipe_example-shapewipe-example.o: shapewipe-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -MT shapewipe_example-shapewipe-example.o -MD -MP -MF $(DEPDIR)/shapewipe_example-shapewipe-example.Tpo -c -o shapewipe_example-shapewipe-example.o `test -f 'shapewipe-example.c' || echo '$(srcdir)/'`shapewipe-example.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe_example-shapewipe-example.Tpo $(DEPDIR)/shapewipe_example-shapewipe-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shapewipe-example.c' object='shapewipe_example-shapewipe-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shapewipe-example.c' object='shapewipe_example-shapewipe-example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -c -o shapewipe_example-shapewipe-example.o `test -f 'shapewipe-example.c' || echo '$(srcdir)/'`shapewipe-example.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -c -o shapewipe_example-shapewipe-example.o `test -f 'shapewipe-example.c' || echo '$(srcdir)/'`shapewipe-example.c shapewipe_example-shapewipe-example.obj: shapewipe-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -MT shapewipe_example-shapewipe-example.obj -MD -MP -MF $(DEPDIR)/shapewipe_example-shapewipe-example.Tpo -c -o shapewipe_example-shapewipe-example.obj `if test -f 'shapewipe-example.c'; then $(CYGPATH_W) 'shapewipe-example.c'; else $(CYGPATH_W) '$(srcdir)/shapewipe-example.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapewipe_example-shapewipe-example.Tpo $(DEPDIR)/shapewipe_example-shapewipe-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='shapewipe-example.c' object='shapewipe_example-shapewipe-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shapewipe-example.c' object='shapewipe_example-shapewipe-example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -c -o shapewipe_example-shapewipe-example.obj `if test -f 'shapewipe-example.c'; then $(CYGPATH_W) 'shapewipe-example.c'; else $(CYGPATH_W) '$(srcdir)/shapewipe-example.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shapewipe_example_CFLAGS) $(CFLAGS) -c -o shapewipe_example-shapewipe-example.obj `if test -f 'shapewipe-example.c'; then $(CYGPATH_W) 'shapewipe-example.c'; else $(CYGPATH_W) '$(srcdir)/shapewipe-example.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -657,10 +646,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in index 0c1da57..c535310 100644 --- a/tests/examples/spectrum/Makefile.in +++ b/tests/examples/spectrum/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -68,8 +68,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -89,8 +88,8 @@ demo_audiotest_OBJECTS = $(am_demo_audiotest_OBJECTS) am__DEPENDENCIES_1 = demo_audiotest_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent demo_audiotest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -122,21 +121,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(demo_audiotest_SOURCES) $(demo_osssrc_SOURCES) \ $(spectrum_example_SOURCES) @@ -220,7 +219,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -295,7 +297,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -319,6 +320,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -353,18 +355,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -417,6 +411,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -451,7 +446,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -524,13 +518,13 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -demo-audiotest$(EXEEXT): $(demo_audiotest_OBJECTS) $(demo_audiotest_DEPENDENCIES) +demo-audiotest$(EXEEXT): $(demo_audiotest_OBJECTS) $(demo_audiotest_DEPENDENCIES) $(EXTRA_demo_audiotest_DEPENDENCIES) @rm -f demo-audiotest$(EXEEXT) $(AM_V_CCLD)$(demo_audiotest_LINK) $(demo_audiotest_OBJECTS) $(demo_audiotest_LDADD) $(LIBS) -demo-osssrc$(EXEEXT): $(demo_osssrc_OBJECTS) $(demo_osssrc_DEPENDENCIES) +demo-osssrc$(EXEEXT): $(demo_osssrc_OBJECTS) $(demo_osssrc_DEPENDENCIES) $(EXTRA_demo_osssrc_DEPENDENCIES) @rm -f demo-osssrc$(EXEEXT) $(AM_V_CCLD)$(demo_osssrc_LINK) $(demo_osssrc_OBJECTS) $(demo_osssrc_LDADD) $(LIBS) -spectrum-example$(EXEEXT): $(spectrum_example_OBJECTS) $(spectrum_example_DEPENDENCIES) +spectrum-example$(EXEEXT): $(spectrum_example_OBJECTS) $(spectrum_example_DEPENDENCIES) $(EXTRA_spectrum_example_DEPENDENCIES) @rm -f spectrum-example$(EXEEXT) $(AM_V_CCLD)$(spectrum_example_LINK) $(spectrum_example_OBJECTS) $(spectrum_example_LDADD) $(LIBS) @@ -547,74 +541,65 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< demo_audiotest-demo-audiotest.o: demo-audiotest.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -MT demo_audiotest-demo-audiotest.o -MD -MP -MF $(DEPDIR)/demo_audiotest-demo-audiotest.Tpo -c -o demo_audiotest-demo-audiotest.o `test -f 'demo-audiotest.c' || echo '$(srcdir)/'`demo-audiotest.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo_audiotest-demo-audiotest.Tpo $(DEPDIR)/demo_audiotest-demo-audiotest.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-audiotest.c' object='demo_audiotest-demo-audiotest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-audiotest.c' object='demo_audiotest-demo-audiotest.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -c -o demo_audiotest-demo-audiotest.o `test -f 'demo-audiotest.c' || echo '$(srcdir)/'`demo-audiotest.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -c -o demo_audiotest-demo-audiotest.o `test -f 'demo-audiotest.c' || echo '$(srcdir)/'`demo-audiotest.c demo_audiotest-demo-audiotest.obj: demo-audiotest.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -MT demo_audiotest-demo-audiotest.obj -MD -MP -MF $(DEPDIR)/demo_audiotest-demo-audiotest.Tpo -c -o demo_audiotest-demo-audiotest.obj `if test -f 'demo-audiotest.c'; then $(CYGPATH_W) 'demo-audiotest.c'; else $(CYGPATH_W) '$(srcdir)/demo-audiotest.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo_audiotest-demo-audiotest.Tpo $(DEPDIR)/demo_audiotest-demo-audiotest.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-audiotest.c' object='demo_audiotest-demo-audiotest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-audiotest.c' object='demo_audiotest-demo-audiotest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -c -o demo_audiotest-demo-audiotest.obj `if test -f 'demo-audiotest.c'; then $(CYGPATH_W) 'demo-audiotest.c'; else $(CYGPATH_W) '$(srcdir)/demo-audiotest.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_audiotest_CFLAGS) $(CFLAGS) -c -o demo_audiotest-demo-audiotest.obj `if test -f 'demo-audiotest.c'; then $(CYGPATH_W) 'demo-audiotest.c'; else $(CYGPATH_W) '$(srcdir)/demo-audiotest.c'; fi` demo_osssrc-demo-osssrc.o: demo-osssrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -MT demo_osssrc-demo-osssrc.o -MD -MP -MF $(DEPDIR)/demo_osssrc-demo-osssrc.Tpo -c -o demo_osssrc-demo-osssrc.o `test -f 'demo-osssrc.c' || echo '$(srcdir)/'`demo-osssrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo_osssrc-demo-osssrc.Tpo $(DEPDIR)/demo_osssrc-demo-osssrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-osssrc.c' object='demo_osssrc-demo-osssrc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-osssrc.c' object='demo_osssrc-demo-osssrc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -c -o demo_osssrc-demo-osssrc.o `test -f 'demo-osssrc.c' || echo '$(srcdir)/'`demo-osssrc.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -c -o demo_osssrc-demo-osssrc.o `test -f 'demo-osssrc.c' || echo '$(srcdir)/'`demo-osssrc.c demo_osssrc-demo-osssrc.obj: demo-osssrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -MT demo_osssrc-demo-osssrc.obj -MD -MP -MF $(DEPDIR)/demo_osssrc-demo-osssrc.Tpo -c -o demo_osssrc-demo-osssrc.obj `if test -f 'demo-osssrc.c'; then $(CYGPATH_W) 'demo-osssrc.c'; else $(CYGPATH_W) '$(srcdir)/demo-osssrc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/demo_osssrc-demo-osssrc.Tpo $(DEPDIR)/demo_osssrc-demo-osssrc.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='demo-osssrc.c' object='demo_osssrc-demo-osssrc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='demo-osssrc.c' object='demo_osssrc-demo-osssrc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -c -o demo_osssrc-demo-osssrc.obj `if test -f 'demo-osssrc.c'; then $(CYGPATH_W) 'demo-osssrc.c'; else $(CYGPATH_W) '$(srcdir)/demo-osssrc.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(demo_osssrc_CFLAGS) $(CFLAGS) -c -o demo_osssrc-demo-osssrc.obj `if test -f 'demo-osssrc.c'; then $(CYGPATH_W) 'demo-osssrc.c'; else $(CYGPATH_W) '$(srcdir)/demo-osssrc.c'; fi` spectrum_example-spectrum-example.o: spectrum-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -MT spectrum_example-spectrum-example.o -MD -MP -MF $(DEPDIR)/spectrum_example-spectrum-example.Tpo -c -o spectrum_example-spectrum-example.o `test -f 'spectrum-example.c' || echo '$(srcdir)/'`spectrum-example.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/spectrum_example-spectrum-example.Tpo $(DEPDIR)/spectrum_example-spectrum-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spectrum-example.c' object='spectrum_example-spectrum-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spectrum-example.c' object='spectrum_example-spectrum-example.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -c -o spectrum_example-spectrum-example.o `test -f 'spectrum-example.c' || echo '$(srcdir)/'`spectrum-example.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -c -o spectrum_example-spectrum-example.o `test -f 'spectrum-example.c' || echo '$(srcdir)/'`spectrum-example.c spectrum_example-spectrum-example.obj: spectrum-example.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -MT spectrum_example-spectrum-example.obj -MD -MP -MF $(DEPDIR)/spectrum_example-spectrum-example.Tpo -c -o spectrum_example-spectrum-example.obj `if test -f 'spectrum-example.c'; then $(CYGPATH_W) 'spectrum-example.c'; else $(CYGPATH_W) '$(srcdir)/spectrum-example.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/spectrum_example-spectrum-example.Tpo $(DEPDIR)/spectrum_example-spectrum-example.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='spectrum-example.c' object='spectrum_example-spectrum-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spectrum-example.c' object='spectrum_example-spectrum-example.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -c -o spectrum_example-spectrum-example.obj `if test -f 'spectrum-example.c'; then $(CYGPATH_W) 'spectrum-example.c'; else $(CYGPATH_W) '$(srcdir)/spectrum-example.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(spectrum_example_CFLAGS) $(CFLAGS) -c -o spectrum_example-spectrum-example.obj `if test -f 'spectrum-example.c'; then $(CYGPATH_W) 'spectrum-example.c'; else $(CYGPATH_W) '$(srcdir)/spectrum-example.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -718,10 +703,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in index 071b0f5..cd89368 100644 --- a/tests/examples/v4l2/Makefile.in +++ b/tests/examples/v4l2/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -66,8 +66,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -87,8 +86,8 @@ camctrl_OBJECTS = $(am_camctrl_OBJECTS) am__DEPENDENCIES_1 = camctrl_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent camctrl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(camctrl_CFLAGS) \ @@ -110,21 +109,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(camctrl_SOURCES) $(probe_SOURCES) DIST_SOURCES = $(camctrl_SOURCES) $(probe_SOURCES) @@ -206,7 +205,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -281,7 +283,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -305,6 +306,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -339,18 +341,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -403,6 +397,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -437,7 +432,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -507,10 +501,10 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -camctrl$(EXEEXT): $(camctrl_OBJECTS) $(camctrl_DEPENDENCIES) +camctrl$(EXEEXT): $(camctrl_OBJECTS) $(camctrl_DEPENDENCIES) $(EXTRA_camctrl_DEPENDENCIES) @rm -f camctrl$(EXEEXT) $(AM_V_CCLD)$(camctrl_LINK) $(camctrl_OBJECTS) $(camctrl_LDADD) $(LIBS) -probe$(EXEEXT): $(probe_OBJECTS) $(probe_DEPENDENCIES) +probe$(EXEEXT): $(probe_OBJECTS) $(probe_DEPENDENCIES) $(EXTRA_probe_DEPENDENCIES) @rm -f probe$(EXEEXT) $(AM_V_CCLD)$(probe_LINK) $(probe_OBJECTS) $(probe_LDADD) $(LIBS) @@ -526,58 +520,51 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< camctrl-camctrl.o: camctrl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -MT camctrl-camctrl.o -MD -MP -MF $(DEPDIR)/camctrl-camctrl.Tpo -c -o camctrl-camctrl.o `test -f 'camctrl.c' || echo '$(srcdir)/'`camctrl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/camctrl-camctrl.Tpo $(DEPDIR)/camctrl-camctrl.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camctrl.c' object='camctrl-camctrl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camctrl.c' object='camctrl-camctrl.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -c -o camctrl-camctrl.o `test -f 'camctrl.c' || echo '$(srcdir)/'`camctrl.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -c -o camctrl-camctrl.o `test -f 'camctrl.c' || echo '$(srcdir)/'`camctrl.c camctrl-camctrl.obj: camctrl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -MT camctrl-camctrl.obj -MD -MP -MF $(DEPDIR)/camctrl-camctrl.Tpo -c -o camctrl-camctrl.obj `if test -f 'camctrl.c'; then $(CYGPATH_W) 'camctrl.c'; else $(CYGPATH_W) '$(srcdir)/camctrl.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/camctrl-camctrl.Tpo $(DEPDIR)/camctrl-camctrl.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='camctrl.c' object='camctrl-camctrl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='camctrl.c' object='camctrl-camctrl.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -c -o camctrl-camctrl.obj `if test -f 'camctrl.c'; then $(CYGPATH_W) 'camctrl.c'; else $(CYGPATH_W) '$(srcdir)/camctrl.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(camctrl_CFLAGS) $(CFLAGS) -c -o camctrl-camctrl.obj `if test -f 'camctrl.c'; then $(CYGPATH_W) 'camctrl.c'; else $(CYGPATH_W) '$(srcdir)/camctrl.c'; fi` probe-probe.o: probe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -MT probe-probe.o -MD -MP -MF $(DEPDIR)/probe-probe.Tpo -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/probe-probe.Tpo $(DEPDIR)/probe-probe.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='probe.c' object='probe-probe.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='probe.c' object='probe-probe.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.o `test -f 'probe.c' || echo '$(srcdir)/'`probe.c probe-probe.obj: probe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -MT probe-probe.obj -MD -MP -MF $(DEPDIR)/probe-probe.Tpo -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/probe-probe.Tpo $(DEPDIR)/probe-probe.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='probe.c' object='probe-probe.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='probe.c' object='probe-probe.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(probe_CFLAGS) $(CFLAGS) -c -o probe-probe.obj `if test -f 'probe.c'; then $(CYGPATH_W) 'probe.c'; else $(CYGPATH_W) '$(srcdir)/probe.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -681,10 +668,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/files/Makefile.am b/tests/files/Makefile.am index a0a2829..ae08e1a 100644 --- a/tests/files/Makefile.am +++ b/tests/files/Makefile.am @@ -7,6 +7,7 @@ EXTRA_DIST = \ id3-577468-unsynced-tag.tag \ id3-588148-unsynced-v24.tag \ pcm16sine.flv \ + pinknoise-vorbis.mkv \ test-cert.pem \ test-key.pem diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in index 5c8ddbe..c80640f 100644 --- a/tests/files/Makefile.in +++ b/tests/files/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -64,8 +64,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -79,11 +78,11 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = @@ -163,7 +162,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -238,7 +240,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -262,6 +263,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -296,18 +298,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -360,6 +354,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -394,7 +389,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -423,6 +417,7 @@ EXTRA_DIST = \ id3-577468-unsynced-tag.tag \ id3-588148-unsynced-v24.tag \ pcm16sine.flv \ + pinknoise-vorbis.mkv \ test-cert.pem \ test-key.pem @@ -516,10 +511,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/files/pinknoise-vorbis.mkv b/tests/files/pinknoise-vorbis.mkv new file mode 100644 index 0000000..f83006c Binary files /dev/null and b/tests/files/pinknoise-vorbis.mkv differ diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in index 038d96f..22c3d08 100644 --- a/tests/icles/Makefile.in +++ b/tests/icles/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -69,8 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ $(top_srcdir)/m4/aalib.m4 $(top_srcdir)/m4/esd.m4 \ $(top_srcdir)/m4/gconf-2.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gst-fionread.m4 \ - $(top_srcdir)/m4/gst-shout2.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -93,8 +92,8 @@ am_equalizer_test_OBJECTS = equalizer_test-equalizer-test.$(OBJEXT) equalizer_test_OBJECTS = $(am_equalizer_test_OBJECTS) am__DEPENDENCIES_1 = equalizer_test_DEPENDENCIES = $(am__DEPENDENCIES_1) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent equalizer_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ @@ -166,21 +165,21 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(equalizer_test_SOURCES) $(gdkpixbufsink_test_SOURCES) \ $(test_oss4_SOURCES) $(v4l2src_test_SOURCES) \ @@ -269,7 +268,10 @@ GDK_PIXBUF_CFLAGS = @GDK_PIXBUF_CFLAGS@ GDK_PIXBUF_LIBS = @GDK_PIXBUF_LIBS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_PREFIX = @GLIB_PREFIX@ GLIB_REQ = @GLIB_REQ@ @@ -344,7 +346,6 @@ JPEG_LIBS = @JPEG_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBCACA_CFLAGS = @LIBCACA_CFLAGS@ -LIBCACA_CONFIG = @LIBCACA_CONFIG@ LIBCACA_LIBS = @LIBCACA_LIBS@ LIBDV_CFLAGS = @LIBDV_CFLAGS@ LIBDV_LIBS = @LIBDV_LIBS@ @@ -368,6 +369,7 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ @@ -402,18 +404,10 @@ PKG_CONFIG = @PKG_CONFIG@ PLUGINDIR = @PLUGINDIR@ POSUB = @POSUB@ PROFILE_CFLAGS = @PROFILE_CFLAGS@ -PULSE_0_9_11_CFLAGS = @PULSE_0_9_11_CFLAGS@ -PULSE_0_9_11_LIBS = @PULSE_0_9_11_LIBS@ -PULSE_0_9_12_CFLAGS = @PULSE_0_9_12_CFLAGS@ -PULSE_0_9_12_LIBS = @PULSE_0_9_12_LIBS@ -PULSE_0_9_13_CFLAGS = @PULSE_0_9_13_CFLAGS@ -PULSE_0_9_13_LIBS = @PULSE_0_9_13_LIBS@ -PULSE_0_9_15_CFLAGS = @PULSE_0_9_15_CFLAGS@ -PULSE_0_9_15_LIBS = @PULSE_0_9_15_LIBS@ -PULSE_0_9_16_CFLAGS = @PULSE_0_9_16_CFLAGS@ -PULSE_0_9_16_LIBS = @PULSE_0_9_16_LIBS@ PULSE_0_9_20_CFLAGS = @PULSE_0_9_20_CFLAGS@ PULSE_0_9_20_LIBS = @PULSE_0_9_20_LIBS@ +PULSE_1_0_CFLAGS = @PULSE_1_0_CFLAGS@ +PULSE_1_0_LIBS = @PULSE_1_0_LIBS@ PULSE_CFLAGS = @PULSE_CFLAGS@ PULSE_LIBS = @PULSE_LIBS@ PYTHON = @PYTHON@ @@ -466,6 +460,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -500,7 +495,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -597,28 +591,28 @@ clean-noinstPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list -equalizer-test$(EXEEXT): $(equalizer_test_OBJECTS) $(equalizer_test_DEPENDENCIES) +equalizer-test$(EXEEXT): $(equalizer_test_OBJECTS) $(equalizer_test_DEPENDENCIES) $(EXTRA_equalizer_test_DEPENDENCIES) @rm -f equalizer-test$(EXEEXT) $(AM_V_CCLD)$(equalizer_test_LINK) $(equalizer_test_OBJECTS) $(equalizer_test_LDADD) $(LIBS) -gdkpixbufsink-test$(EXEEXT): $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_DEPENDENCIES) +gdkpixbufsink-test$(EXEEXT): $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_DEPENDENCIES) $(EXTRA_gdkpixbufsink_test_DEPENDENCIES) @rm -f gdkpixbufsink-test$(EXEEXT) $(AM_V_CCLD)$(gdkpixbufsink_test_LINK) $(gdkpixbufsink_test_OBJECTS) $(gdkpixbufsink_test_LDADD) $(LIBS) -test-oss4$(EXEEXT): $(test_oss4_OBJECTS) $(test_oss4_DEPENDENCIES) +test-oss4$(EXEEXT): $(test_oss4_OBJECTS) $(test_oss4_DEPENDENCIES) $(EXTRA_test_oss4_DEPENDENCIES) @rm -f test-oss4$(EXEEXT) $(AM_V_CCLD)$(test_oss4_LINK) $(test_oss4_OBJECTS) $(test_oss4_LDADD) $(LIBS) -v4l2src-test$(EXEEXT): $(v4l2src_test_OBJECTS) $(v4l2src_test_DEPENDENCIES) +v4l2src-test$(EXEEXT): $(v4l2src_test_OBJECTS) $(v4l2src_test_DEPENDENCIES) $(EXTRA_v4l2src_test_DEPENDENCIES) @rm -f v4l2src-test$(EXEEXT) $(AM_V_CCLD)$(v4l2src_test_LINK) $(v4l2src_test_OBJECTS) $(v4l2src_test_LDADD) $(LIBS) -videobox-test$(EXEEXT): $(videobox_test_OBJECTS) $(videobox_test_DEPENDENCIES) +videobox-test$(EXEEXT): $(videobox_test_OBJECTS) $(videobox_test_DEPENDENCIES) $(EXTRA_videobox_test_DEPENDENCIES) @rm -f videobox-test$(EXEEXT) $(AM_V_CCLD)$(videobox_test_LINK) $(videobox_test_OBJECTS) $(videobox_test_LDADD) $(LIBS) -videocrop-test$(EXEEXT): $(videocrop_test_OBJECTS) $(videocrop_test_DEPENDENCIES) +videocrop-test$(EXEEXT): $(videocrop_test_OBJECTS) $(videocrop_test_DEPENDENCIES) $(EXTRA_videocrop_test_DEPENDENCIES) @rm -f videocrop-test$(EXEEXT) $(AM_V_CCLD)$(videocrop_test_LINK) $(videocrop_test_OBJECTS) $(videocrop_test_LDADD) $(LIBS) -videocrop2-test$(EXEEXT): $(videocrop2_test_OBJECTS) $(videocrop2_test_DEPENDENCIES) +videocrop2-test$(EXEEXT): $(videocrop2_test_OBJECTS) $(videocrop2_test_DEPENDENCIES) $(EXTRA_videocrop2_test_DEPENDENCIES) @rm -f videocrop2-test$(EXEEXT) $(AM_V_CCLD)$(videocrop2_test_LINK) $(videocrop2_test_OBJECTS) $(videocrop2_test_LDADD) $(LIBS) -ximagesrc-test$(EXEEXT): $(ximagesrc_test_OBJECTS) $(ximagesrc_test_DEPENDENCIES) +ximagesrc-test$(EXEEXT): $(ximagesrc_test_OBJECTS) $(ximagesrc_test_DEPENDENCIES) $(EXTRA_ximagesrc_test_DEPENDENCIES) @rm -f ximagesrc-test$(EXEEXT) $(AM_V_CCLD)$(ximagesrc_test_LINK) $(ximagesrc_test_OBJECTS) $(ximagesrc_test_LDADD) $(LIBS) @@ -640,154 +634,135 @@ distclean-compile: .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< equalizer_test-equalizer-test.o: equalizer-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -MT equalizer_test-equalizer-test.o -MD -MP -MF $(DEPDIR)/equalizer_test-equalizer-test.Tpo -c -o equalizer_test-equalizer-test.o `test -f 'equalizer-test.c' || echo '$(srcdir)/'`equalizer-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/equalizer_test-equalizer-test.Tpo $(DEPDIR)/equalizer_test-equalizer-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='equalizer-test.c' object='equalizer_test-equalizer-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='equalizer-test.c' object='equalizer_test-equalizer-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -c -o equalizer_test-equalizer-test.o `test -f 'equalizer-test.c' || echo '$(srcdir)/'`equalizer-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -c -o equalizer_test-equalizer-test.o `test -f 'equalizer-test.c' || echo '$(srcdir)/'`equalizer-test.c equalizer_test-equalizer-test.obj: equalizer-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -MT equalizer_test-equalizer-test.obj -MD -MP -MF $(DEPDIR)/equalizer_test-equalizer-test.Tpo -c -o equalizer_test-equalizer-test.obj `if test -f 'equalizer-test.c'; then $(CYGPATH_W) 'equalizer-test.c'; else $(CYGPATH_W) '$(srcdir)/equalizer-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/equalizer_test-equalizer-test.Tpo $(DEPDIR)/equalizer_test-equalizer-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='equalizer-test.c' object='equalizer_test-equalizer-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='equalizer-test.c' object='equalizer_test-equalizer-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -c -o equalizer_test-equalizer-test.obj `if test -f 'equalizer-test.c'; then $(CYGPATH_W) 'equalizer-test.c'; else $(CYGPATH_W) '$(srcdir)/equalizer-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(equalizer_test_CFLAGS) $(CFLAGS) -c -o equalizer_test-equalizer-test.obj `if test -f 'equalizer-test.c'; then $(CYGPATH_W) 'equalizer-test.c'; else $(CYGPATH_W) '$(srcdir)/equalizer-test.c'; fi` gdkpixbufsink_test-gdkpixbufsink-test.o: gdkpixbufsink-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -MT gdkpixbufsink_test-gdkpixbufsink-test.o -MD -MP -MF $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Tpo -c -o gdkpixbufsink_test-gdkpixbufsink-test.o `test -f 'gdkpixbufsink-test.c' || echo '$(srcdir)/'`gdkpixbufsink-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Tpo $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gdkpixbufsink-test.c' object='gdkpixbufsink_test-gdkpixbufsink-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdkpixbufsink-test.c' object='gdkpixbufsink_test-gdkpixbufsink-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -c -o gdkpixbufsink_test-gdkpixbufsink-test.o `test -f 'gdkpixbufsink-test.c' || echo '$(srcdir)/'`gdkpixbufsink-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -c -o gdkpixbufsink_test-gdkpixbufsink-test.o `test -f 'gdkpixbufsink-test.c' || echo '$(srcdir)/'`gdkpixbufsink-test.c gdkpixbufsink_test-gdkpixbufsink-test.obj: gdkpixbufsink-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -MT gdkpixbufsink_test-gdkpixbufsink-test.obj -MD -MP -MF $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Tpo -c -o gdkpixbufsink_test-gdkpixbufsink-test.obj `if test -f 'gdkpixbufsink-test.c'; then $(CYGPATH_W) 'gdkpixbufsink-test.c'; else $(CYGPATH_W) '$(srcdir)/gdkpixbufsink-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Tpo $(DEPDIR)/gdkpixbufsink_test-gdkpixbufsink-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gdkpixbufsink-test.c' object='gdkpixbufsink_test-gdkpixbufsink-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gdkpixbufsink-test.c' object='gdkpixbufsink_test-gdkpixbufsink-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -c -o gdkpixbufsink_test-gdkpixbufsink-test.obj `if test -f 'gdkpixbufsink-test.c'; then $(CYGPATH_W) 'gdkpixbufsink-test.c'; else $(CYGPATH_W) '$(srcdir)/gdkpixbufsink-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gdkpixbufsink_test_CFLAGS) $(CFLAGS) -c -o gdkpixbufsink_test-gdkpixbufsink-test.obj `if test -f 'gdkpixbufsink-test.c'; then $(CYGPATH_W) 'gdkpixbufsink-test.c'; else $(CYGPATH_W) '$(srcdir)/gdkpixbufsink-test.c'; fi` test_oss4-test-oss4.o: test-oss4.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -MT test_oss4-test-oss4.o -MD -MP -MF $(DEPDIR)/test_oss4-test-oss4.Tpo -c -o test_oss4-test-oss4.o `test -f 'test-oss4.c' || echo '$(srcdir)/'`test-oss4.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_oss4-test-oss4.Tpo $(DEPDIR)/test_oss4-test-oss4.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-oss4.c' object='test_oss4-test-oss4.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-oss4.c' object='test_oss4-test-oss4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -c -o test_oss4-test-oss4.o `test -f 'test-oss4.c' || echo '$(srcdir)/'`test-oss4.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -c -o test_oss4-test-oss4.o `test -f 'test-oss4.c' || echo '$(srcdir)/'`test-oss4.c test_oss4-test-oss4.obj: test-oss4.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -MT test_oss4-test-oss4.obj -MD -MP -MF $(DEPDIR)/test_oss4-test-oss4.Tpo -c -o test_oss4-test-oss4.obj `if test -f 'test-oss4.c'; then $(CYGPATH_W) 'test-oss4.c'; else $(CYGPATH_W) '$(srcdir)/test-oss4.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_oss4-test-oss4.Tpo $(DEPDIR)/test_oss4-test-oss4.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-oss4.c' object='test_oss4-test-oss4.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-oss4.c' object='test_oss4-test-oss4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -c -o test_oss4-test-oss4.obj `if test -f 'test-oss4.c'; then $(CYGPATH_W) 'test-oss4.c'; else $(CYGPATH_W) '$(srcdir)/test-oss4.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_oss4_CFLAGS) $(CFLAGS) -c -o test_oss4-test-oss4.obj `if test -f 'test-oss4.c'; then $(CYGPATH_W) 'test-oss4.c'; else $(CYGPATH_W) '$(srcdir)/test-oss4.c'; fi` v4l2src_test-v4l2src-test.o: v4l2src-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -MT v4l2src_test-v4l2src-test.o -MD -MP -MF $(DEPDIR)/v4l2src_test-v4l2src-test.Tpo -c -o v4l2src_test-v4l2src-test.o `test -f 'v4l2src-test.c' || echo '$(srcdir)/'`v4l2src-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/v4l2src_test-v4l2src-test.Tpo $(DEPDIR)/v4l2src_test-v4l2src-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4l2src-test.c' object='v4l2src_test-v4l2src-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2src-test.c' object='v4l2src_test-v4l2src-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -c -o v4l2src_test-v4l2src-test.o `test -f 'v4l2src-test.c' || echo '$(srcdir)/'`v4l2src-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -c -o v4l2src_test-v4l2src-test.o `test -f 'v4l2src-test.c' || echo '$(srcdir)/'`v4l2src-test.c v4l2src_test-v4l2src-test.obj: v4l2src-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -MT v4l2src_test-v4l2src-test.obj -MD -MP -MF $(DEPDIR)/v4l2src_test-v4l2src-test.Tpo -c -o v4l2src_test-v4l2src-test.obj `if test -f 'v4l2src-test.c'; then $(CYGPATH_W) 'v4l2src-test.c'; else $(CYGPATH_W) '$(srcdir)/v4l2src-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/v4l2src_test-v4l2src-test.Tpo $(DEPDIR)/v4l2src_test-v4l2src-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4l2src-test.c' object='v4l2src_test-v4l2src-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l2src-test.c' object='v4l2src_test-v4l2src-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -c -o v4l2src_test-v4l2src-test.obj `if test -f 'v4l2src-test.c'; then $(CYGPATH_W) 'v4l2src-test.c'; else $(CYGPATH_W) '$(srcdir)/v4l2src-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(v4l2src_test_CFLAGS) $(CFLAGS) -c -o v4l2src_test-v4l2src-test.obj `if test -f 'v4l2src-test.c'; then $(CYGPATH_W) 'v4l2src-test.c'; else $(CYGPATH_W) '$(srcdir)/v4l2src-test.c'; fi` videobox_test-videobox-test.o: videobox-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -MT videobox_test-videobox-test.o -MD -MP -MF $(DEPDIR)/videobox_test-videobox-test.Tpo -c -o videobox_test-videobox-test.o `test -f 'videobox-test.c' || echo '$(srcdir)/'`videobox-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videobox_test-videobox-test.Tpo $(DEPDIR)/videobox_test-videobox-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videobox-test.c' object='videobox_test-videobox-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videobox-test.c' object='videobox_test-videobox-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -c -o videobox_test-videobox-test.o `test -f 'videobox-test.c' || echo '$(srcdir)/'`videobox-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -c -o videobox_test-videobox-test.o `test -f 'videobox-test.c' || echo '$(srcdir)/'`videobox-test.c videobox_test-videobox-test.obj: videobox-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -MT videobox_test-videobox-test.obj -MD -MP -MF $(DEPDIR)/videobox_test-videobox-test.Tpo -c -o videobox_test-videobox-test.obj `if test -f 'videobox-test.c'; then $(CYGPATH_W) 'videobox-test.c'; else $(CYGPATH_W) '$(srcdir)/videobox-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videobox_test-videobox-test.Tpo $(DEPDIR)/videobox_test-videobox-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videobox-test.c' object='videobox_test-videobox-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videobox-test.c' object='videobox_test-videobox-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -c -o videobox_test-videobox-test.obj `if test -f 'videobox-test.c'; then $(CYGPATH_W) 'videobox-test.c'; else $(CYGPATH_W) '$(srcdir)/videobox-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videobox_test_CFLAGS) $(CFLAGS) -c -o videobox_test-videobox-test.obj `if test -f 'videobox-test.c'; then $(CYGPATH_W) 'videobox-test.c'; else $(CYGPATH_W) '$(srcdir)/videobox-test.c'; fi` videocrop_test-videocrop-test.o: videocrop-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -MT videocrop_test-videocrop-test.o -MD -MP -MF $(DEPDIR)/videocrop_test-videocrop-test.Tpo -c -o videocrop_test-videocrop-test.o `test -f 'videocrop-test.c' || echo '$(srcdir)/'`videocrop-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videocrop_test-videocrop-test.Tpo $(DEPDIR)/videocrop_test-videocrop-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videocrop-test.c' object='videocrop_test-videocrop-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videocrop-test.c' object='videocrop_test-videocrop-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -c -o videocrop_test-videocrop-test.o `test -f 'videocrop-test.c' || echo '$(srcdir)/'`videocrop-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -c -o videocrop_test-videocrop-test.o `test -f 'videocrop-test.c' || echo '$(srcdir)/'`videocrop-test.c videocrop_test-videocrop-test.obj: videocrop-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -MT videocrop_test-videocrop-test.obj -MD -MP -MF $(DEPDIR)/videocrop_test-videocrop-test.Tpo -c -o videocrop_test-videocrop-test.obj `if test -f 'videocrop-test.c'; then $(CYGPATH_W) 'videocrop-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videocrop_test-videocrop-test.Tpo $(DEPDIR)/videocrop_test-videocrop-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videocrop-test.c' object='videocrop_test-videocrop-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videocrop-test.c' object='videocrop_test-videocrop-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -c -o videocrop_test-videocrop-test.obj `if test -f 'videocrop-test.c'; then $(CYGPATH_W) 'videocrop-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop_test_CFLAGS) $(CFLAGS) -c -o videocrop_test-videocrop-test.obj `if test -f 'videocrop-test.c'; then $(CYGPATH_W) 'videocrop-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop-test.c'; fi` videocrop2_test-videocrop2-test.o: videocrop2-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -MT videocrop2_test-videocrop2-test.o -MD -MP -MF $(DEPDIR)/videocrop2_test-videocrop2-test.Tpo -c -o videocrop2_test-videocrop2-test.o `test -f 'videocrop2-test.c' || echo '$(srcdir)/'`videocrop2-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videocrop2_test-videocrop2-test.Tpo $(DEPDIR)/videocrop2_test-videocrop2-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videocrop2-test.c' object='videocrop2_test-videocrop2-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videocrop2-test.c' object='videocrop2_test-videocrop2-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -c -o videocrop2_test-videocrop2-test.o `test -f 'videocrop2-test.c' || echo '$(srcdir)/'`videocrop2-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -c -o videocrop2_test-videocrop2-test.o `test -f 'videocrop2-test.c' || echo '$(srcdir)/'`videocrop2-test.c videocrop2_test-videocrop2-test.obj: videocrop2-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -MT videocrop2_test-videocrop2-test.obj -MD -MP -MF $(DEPDIR)/videocrop2_test-videocrop2-test.Tpo -c -o videocrop2_test-videocrop2-test.obj `if test -f 'videocrop2-test.c'; then $(CYGPATH_W) 'videocrop2-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop2-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videocrop2_test-videocrop2-test.Tpo $(DEPDIR)/videocrop2_test-videocrop2-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videocrop2-test.c' object='videocrop2_test-videocrop2-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videocrop2-test.c' object='videocrop2_test-videocrop2-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -c -o videocrop2_test-videocrop2-test.obj `if test -f 'videocrop2-test.c'; then $(CYGPATH_W) 'videocrop2-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop2-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(videocrop2_test_CFLAGS) $(CFLAGS) -c -o videocrop2_test-videocrop2-test.obj `if test -f 'videocrop2-test.c'; then $(CYGPATH_W) 'videocrop2-test.c'; else $(CYGPATH_W) '$(srcdir)/videocrop2-test.c'; fi` ximagesrc_test-ximagesrc-test.o: ximagesrc-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -MT ximagesrc_test-ximagesrc-test.o -MD -MP -MF $(DEPDIR)/ximagesrc_test-ximagesrc-test.Tpo -c -o ximagesrc_test-ximagesrc-test.o `test -f 'ximagesrc-test.c' || echo '$(srcdir)/'`ximagesrc-test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ximagesrc_test-ximagesrc-test.Tpo $(DEPDIR)/ximagesrc_test-ximagesrc-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ximagesrc-test.c' object='ximagesrc_test-ximagesrc-test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ximagesrc-test.c' object='ximagesrc_test-ximagesrc-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -c -o ximagesrc_test-ximagesrc-test.o `test -f 'ximagesrc-test.c' || echo '$(srcdir)/'`ximagesrc-test.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -c -o ximagesrc_test-ximagesrc-test.o `test -f 'ximagesrc-test.c' || echo '$(srcdir)/'`ximagesrc-test.c ximagesrc_test-ximagesrc-test.obj: ximagesrc-test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -MT ximagesrc_test-ximagesrc-test.obj -MD -MP -MF $(DEPDIR)/ximagesrc_test-ximagesrc-test.Tpo -c -o ximagesrc_test-ximagesrc-test.obj `if test -f 'ximagesrc-test.c'; then $(CYGPATH_W) 'ximagesrc-test.c'; else $(CYGPATH_W) '$(srcdir)/ximagesrc-test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ximagesrc_test-ximagesrc-test.Tpo $(DEPDIR)/ximagesrc_test-ximagesrc-test.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ximagesrc-test.c' object='ximagesrc_test-ximagesrc-test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ximagesrc-test.c' object='ximagesrc_test-ximagesrc-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -c -o ximagesrc_test-ximagesrc-test.obj `if test -f 'ximagesrc-test.c'; then $(CYGPATH_W) 'ximagesrc-test.c'; else $(CYGPATH_W) '$(srcdir)/ximagesrc-test.c'; fi` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ximagesrc_test_CFLAGS) $(CFLAGS) -c -o ximagesrc_test-ximagesrc-test.obj `if test -f 'ximagesrc-test.c'; then $(CYGPATH_W) 'ximagesrc-test.c'; else $(CYGPATH_W) '$(srcdir)/ximagesrc-test.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -891,10 +866,15 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: diff --git a/tests/icles/equalizer-test.c b/tests/icles/equalizer-test.c index e8126fa..fc6d527 100644 --- a/tests/icles/equalizer-test.c +++ b/tests/icles/equalizer-test.c @@ -179,8 +179,10 @@ main (int argc, char **argv) GstPad *eq_sinkpad; gchar *uri; +#if !GLIB_CHECK_VERSION (2, 31, 0) if (!g_thread_supported ()) g_thread_init (NULL); +#endif /* command line option parsing */ ctx = g_option_context_new ("FILENAME"); diff --git a/tests/icles/gdkpixbufsink-test.c b/tests/icles/gdkpixbufsink-test.c index b09fe09..425e470 100644 --- a/tests/icles/gdkpixbufsink-test.c +++ b/tests/icles/gdkpixbufsink-test.c @@ -329,8 +329,10 @@ main (int argc, char **argv) GOptionContext *ctx; GError *opt_err = NULL; +#if !GLIB_CHECK_VERSION (2, 31, 0) if (!g_thread_supported ()) g_thread_init (NULL); +#endif gtk_init (&argc, &argv); diff --git a/tests/icles/test-oss4.c b/tests/icles/test-oss4.c index f15875d..233e891 100644 --- a/tests/icles/test-oss4.c +++ b/tests/icles/test-oss4.c @@ -233,8 +233,10 @@ main (int argc, char **argv) GOptionContext *ctx; GError *err = NULL; +#if !GLIB_CHECK_VERSION (2, 31, 0) if (!g_thread_supported ()) g_thread_init (NULL); +#endif ctx = g_option_context_new (""); g_option_context_add_main_entries (ctx, options, NULL); diff --git a/tests/icles/v4l2src-test.c b/tests/icles/v4l2src-test.c index 4fcf48b..dbcaef0 100644 --- a/tests/icles/v4l2src-test.c +++ b/tests/icles/v4l2src-test.c @@ -491,7 +491,13 @@ main (int argc, char *argv[]) gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING); loop = g_main_loop_new (NULL, FALSE); - if (!(input_thread = g_thread_create (read_user, source, TRUE, NULL))) { +#if !GLIB_CHECK_VERSION (2, 31, 0) + input_thread = g_thread_create (read_user, source, TRUE, NULL); +#else + input_thread = g_thread_try_new ("v4l2src-test", read_user, source, NULL); +#endif + + if (input_thread == NULL) { fprintf (stderr, "error: g_thread_create return NULL"); return -1; } diff --git a/tests/icles/videocrop-test.c b/tests/icles/videocrop-test.c index a4874e1..cc8f8d0 100644 --- a/tests/icles/videocrop-test.c +++ b/tests/icles/videocrop-test.c @@ -193,8 +193,10 @@ main (int argc, char **argv) GstCaps *filter_caps = NULL; GList *caps_list, *l; +#if !GLIB_CHECK_VERSION (2, 31, 0) if (!g_thread_supported ()) g_thread_init (NULL); +#endif /* command line option parsing */ ctx = g_option_context_new (""); diff --git a/win32/common/config.h b/win32/common/config.h index f998b03..ddc1bb1 100644 --- a/win32/common/config.h +++ b/win32/common/config.h @@ -49,7 +49,7 @@ #define GST_PACKAGE_ORIGIN "Unknown package origin" /* GStreamer package release date/time for plugins as YYYY-MM-DD */ -#define GST_PACKAGE_RELEASE_DATETIME "2011-05-10" +#define GST_PACKAGE_RELEASE_DATETIME "2012-02-20" /* struct v4l2_buffer missing */ #undef GST_V4L2_MISSING_BUFDECL @@ -277,24 +277,12 @@ /* Define to enable pulseaudio plug-in (used by pulseaudio). */ #undef HAVE_PULSE -/* defined if pulseaudio >= 0.9.11 is available */ -#undef HAVE_PULSE_0_9_11 - -/* defined if pulseaudio >= 0.9.12 is available */ -#undef HAVE_PULSE_0_9_12 - -/* defined if pulseaudio >= 0.9.13 is available */ -#undef HAVE_PULSE_0_9_13 - -/* defined if pulseaudio >= 0.9.15 is available */ -#undef HAVE_PULSE_0_9_15 - -/* defined if pulseaudio >= 0.9.16 is available */ -#undef HAVE_PULSE_0_9_16 - /* defined if pulseaudio >= 0.9.20 is available */ #undef HAVE_PULSE_0_9_20 +/* defined if pulseaudio >= 1.0 is available */ +#undef HAVE_PULSE_1_0 + /* Define if RDTSC is available */ #undef HAVE_RDTSC @@ -370,7 +358,7 @@ /* Define to enable X11 XVideo extensions. */ #undef HAVE_XVIDEO -/* Define to enable zlib support for id3demux/qtdemux/matroska. */ +/* Define to enable zlib support for qtdemux/matroska. */ #undef HAVE_ZLIB /* the host CPU */ @@ -396,7 +384,7 @@ #define PACKAGE_NAME "GStreamer Good Plug-ins" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer Good Plug-ins 0.10.29" +#define PACKAGE_STRING "GStreamer Good Plug-ins 0.10.31" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gst-plugins-good" @@ -405,7 +393,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "0.10.29" +#define PACKAGE_VERSION "0.10.31" /* directory where plugins are located */ #ifdef _DEBUG @@ -436,7 +424,7 @@ #undef STDC_HEADERS /* Version number of package */ -#define VERSION "0.10.29" +#define VERSION "0.10.31" /* old wavpack API */ #undef WAVPACK_OLD_API